diff --git a/test/annexB/B.2.4.js b/test/annexB/Date/prototype/getYear/B.2.4.js
similarity index 100%
rename from test/annexB/B.2.4.js
rename to test/annexB/Date/prototype/getYear/B.2.4.js
diff --git a/test/annexB/B.2.4.propertyCheck.js b/test/annexB/Date/prototype/getYear/B.2.4.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.4.propertyCheck.js
rename to test/annexB/Date/prototype/getYear/B.2.4.propertyCheck.js
diff --git a/test/annexB/B.2.5.js b/test/annexB/Date/prototype/setYear/B.2.5.js
similarity index 100%
rename from test/annexB/B.2.5.js
rename to test/annexB/Date/prototype/setYear/B.2.5.js
diff --git a/test/annexB/B.2.5.propertyCheck.js b/test/annexB/Date/prototype/setYear/B.2.5.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.5.propertyCheck.js
rename to test/annexB/Date/prototype/setYear/B.2.5.propertyCheck.js
diff --git a/test/annexB/B.2.6.js b/test/annexB/Date/prototype/toGMTString/B.2.6.js
similarity index 100%
rename from test/annexB/B.2.6.js
rename to test/annexB/Date/prototype/toGMTString/B.2.6.js
diff --git a/test/annexB/B.2.6.propertyCheck.js b/test/annexB/Date/prototype/toGMTString/B.2.6.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.6.propertyCheck.js
rename to test/annexB/Date/prototype/toGMTString/B.2.6.propertyCheck.js
diff --git a/test/annexB/B.2.2.1.1.js b/test/annexB/Object/prototype/__proto__/B.2.2.1.1.js
similarity index 100%
rename from test/annexB/B.2.2.1.1.js
rename to test/annexB/Object/prototype/__proto__/B.2.2.1.1.js
diff --git a/test/annexB/B.2.2.1.2.js b/test/annexB/Object/prototype/__proto__/B.2.2.1.2.js
similarity index 100%
rename from test/annexB/B.2.2.1.2.js
rename to test/annexB/Object/prototype/__proto__/B.2.2.1.2.js
diff --git a/test/annexB/RegExp-control-escape-russian-letter.js b/test/annexB/RegExp/RegExp-control-escape-russian-letter.js
similarity index 100%
rename from test/annexB/RegExp-control-escape-russian-letter.js
rename to test/annexB/RegExp/RegExp-control-escape-russian-letter.js
diff --git a/test/annexB/RegExp-decimal-escape-class-range.js b/test/annexB/RegExp/RegExp-decimal-escape-class-range.js
similarity index 100%
rename from test/annexB/RegExp-decimal-escape-class-range.js
rename to test/annexB/RegExp/RegExp-decimal-escape-class-range.js
diff --git a/test/annexB/RegExp-decimal-escape-not-capturing.js b/test/annexB/RegExp/RegExp-decimal-escape-not-capturing.js
similarity index 100%
rename from test/annexB/RegExp-decimal-escape-not-capturing.js
rename to test/annexB/RegExp/RegExp-decimal-escape-not-capturing.js
diff --git a/test/annexB/RegExp-leading-escape-BMP.js b/test/annexB/RegExp/RegExp-leading-escape-BMP.js
similarity index 100%
rename from test/annexB/RegExp-leading-escape-BMP.js
rename to test/annexB/RegExp/RegExp-leading-escape-BMP.js
diff --git a/test/annexB/RegExp-leading-escape.js b/test/annexB/RegExp/RegExp-leading-escape.js
similarity index 100%
rename from test/annexB/RegExp-leading-escape.js
rename to test/annexB/RegExp/RegExp-leading-escape.js
diff --git a/test/annexB/RegExp-trailing-escape-BMP.js b/test/annexB/RegExp/RegExp-trailing-escape-BMP.js
similarity index 100%
rename from test/annexB/RegExp-trailing-escape-BMP.js
rename to test/annexB/RegExp/RegExp-trailing-escape-BMP.js
diff --git a/test/annexB/RegExp-trailing-escape.js b/test/annexB/RegExp/RegExp-trailing-escape.js
similarity index 100%
rename from test/annexB/RegExp-trailing-escape.js
rename to test/annexB/RegExp/RegExp-trailing-escape.js
diff --git a/test/annexB/B.RegExp.prototype.compile.js b/test/annexB/RegExp/prototype/compile/B.RegExp.prototype.compile.js
similarity index 100%
rename from test/annexB/B.RegExp.prototype.compile.js
rename to test/annexB/RegExp/prototype/compile/B.RegExp.prototype.compile.js
diff --git a/test/annexB/B.2.3.2.js b/test/annexB/String/prototype/anchor/B.2.3.2.js
similarity index 100%
rename from test/annexB/B.2.3.2.js
rename to test/annexB/String/prototype/anchor/B.2.3.2.js
diff --git a/test/annexB/B.2.3.3.js b/test/annexB/String/prototype/big/B.2.3.3.js
similarity index 100%
rename from test/annexB/B.2.3.3.js
rename to test/annexB/String/prototype/big/B.2.3.3.js
diff --git a/test/annexB/B.2.3.4.js b/test/annexB/String/prototype/blink/B.2.3.4.js
similarity index 100%
rename from test/annexB/B.2.3.4.js
rename to test/annexB/String/prototype/blink/B.2.3.4.js
diff --git a/test/annexB/B.2.3.5.js b/test/annexB/String/prototype/bold/B.2.3.5.js
similarity index 100%
rename from test/annexB/B.2.3.5.js
rename to test/annexB/String/prototype/bold/B.2.3.5.js
diff --git a/test/annexB/B.2.3.6.js b/test/annexB/String/prototype/fixed/B.2.3.6.js
similarity index 100%
rename from test/annexB/B.2.3.6.js
rename to test/annexB/String/prototype/fixed/B.2.3.6.js
diff --git a/test/annexB/B.2.3.7.js b/test/annexB/String/prototype/fontcolor/B.2.3.7.js
similarity index 100%
rename from test/annexB/B.2.3.7.js
rename to test/annexB/String/prototype/fontcolor/B.2.3.7.js
diff --git a/test/annexB/B.2.3.8.js b/test/annexB/String/prototype/fontsize/B.2.3.8.js
similarity index 100%
rename from test/annexB/B.2.3.8.js
rename to test/annexB/String/prototype/fontsize/B.2.3.8.js
diff --git a/test/annexB/B.2.3.9.js b/test/annexB/String/prototype/italics/B.2.3.9.js
similarity index 100%
rename from test/annexB/B.2.3.9.js
rename to test/annexB/String/prototype/italics/B.2.3.9.js
diff --git a/test/annexB/B.2.3.10.js b/test/annexB/String/prototype/link/B.2.3.10.js
similarity index 100%
rename from test/annexB/B.2.3.10.js
rename to test/annexB/String/prototype/link/B.2.3.10.js
diff --git a/test/annexB/B.2.3.11.js b/test/annexB/String/prototype/small/B.2.3.11.js
similarity index 100%
rename from test/annexB/B.2.3.11.js
rename to test/annexB/String/prototype/small/B.2.3.11.js
diff --git a/test/annexB/B.2.3.12.js b/test/annexB/String/prototype/strike/B.2.3.12.js
similarity index 100%
rename from test/annexB/B.2.3.12.js
rename to test/annexB/String/prototype/strike/B.2.3.12.js
diff --git a/test/annexB/B.2.3.13.js b/test/annexB/String/prototype/sub/B.2.3.13.js
similarity index 100%
rename from test/annexB/B.2.3.13.js
rename to test/annexB/String/prototype/sub/B.2.3.13.js
diff --git a/test/annexB/B.2.3.js b/test/annexB/String/prototype/substr/B.2.3.js
similarity index 100%
rename from test/annexB/B.2.3.js
rename to test/annexB/String/prototype/substr/B.2.3.js
diff --git a/test/annexB/B.2.3.14.js b/test/annexB/String/prototype/sup/B.2.3.14.js
similarity index 100%
rename from test/annexB/B.2.3.14.js
rename to test/annexB/String/prototype/sup/B.2.3.14.js
diff --git a/test/annexB/B.2.1.js b/test/annexB/global/escape/B.2.1.js
similarity index 100%
rename from test/annexB/B.2.1.js
rename to test/annexB/global/escape/B.2.1.js
diff --git a/test/annexB/B.2.1.propertyCheck.js b/test/annexB/global/escape/B.2.1.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.1.propertyCheck.js
rename to test/annexB/global/escape/B.2.1.propertyCheck.js
diff --git a/test/annexB/B.2.2.js b/test/annexB/global/unescape/B.2.2.js
similarity index 100%
rename from test/annexB/B.2.2.js
rename to test/annexB/global/unescape/B.2.2.js
diff --git a/test/annexB/B.2.2.propertyCheck.js b/test/annexB/global/unescape/B.2.2.propertyCheck.js
similarity index 100%
rename from test/annexB/B.2.2.propertyCheck.js
rename to test/annexB/global/unescape/B.2.2.propertyCheck.js
diff --git a/test/built-ins/Array/symbol-species-name.js b/test/built-ins/Array/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Array/symbol-species-name.js
rename to test/built-ins/Array/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Array/symbol-species.js b/test/built-ins/Array/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Array/symbol-species.js
rename to test/built-ins/Array/Symbol.species/symbol-species.js
diff --git a/test/built-ins/ArrayBuffer/symbol-species-name.js b/test/built-ins/ArrayBuffer/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/ArrayBuffer/symbol-species-name.js
rename to test/built-ins/ArrayBuffer/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/ArrayBuffer/symbol-species.js b/test/built-ins/ArrayBuffer/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/ArrayBuffer/symbol-species.js
rename to test/built-ins/ArrayBuffer/Symbol.species/symbol-species.js
diff --git a/test/built-ins/Map/symbol-species-name.js b/test/built-ins/Map/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Map/symbol-species-name.js
rename to test/built-ins/Map/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Map/symbol-species.js b/test/built-ins/Map/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Map/symbol-species.js
rename to test/built-ins/Map/Symbol.species/symbol-species.js
diff --git a/test/built-ins/Error/message_property_native_error.js b/test/built-ins/NativeErrors/message_property_native_error.js
similarity index 100%
rename from test/built-ins/Error/message_property_native_error.js
rename to test/built-ins/NativeErrors/message_property_native_error.js
diff --git a/test/built-ins/Promise/symbol-species-name.js b/test/built-ins/Promise/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Promise/symbol-species-name.js
rename to test/built-ins/Promise/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Promise/symbol-species.js b/test/built-ins/Promise/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Promise/symbol-species.js
rename to test/built-ins/Promise/Symbol.species/symbol-species.js
diff --git a/test/built-ins/RegExp/symbol-species-name.js b/test/built-ins/RegExp/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/RegExp/symbol-species-name.js
rename to test/built-ins/RegExp/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/RegExp/symbol-species.js b/test/built-ins/RegExp/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/RegExp/symbol-species.js
rename to test/built-ins/RegExp/Symbol.species/symbol-species.js
diff --git a/test/built-ins/Set/symbol-species-name.js b/test/built-ins/Set/Symbol.species/symbol-species-name.js
similarity index 100%
rename from test/built-ins/Set/symbol-species-name.js
rename to test/built-ins/Set/Symbol.species/symbol-species-name.js
diff --git a/test/built-ins/Set/symbol-species.js b/test/built-ins/Set/Symbol.species/symbol-species.js
similarity index 100%
rename from test/built-ins/Set/symbol-species.js
rename to test/built-ins/Set/Symbol.species/symbol-species.js