diff --git a/test/built-ins/eval/S15.1.2.1_A4.1.js b/test/built-ins/eval/length-enumerable.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.1.js rename to test/built-ins/eval/length-enumerable.js diff --git a/test/built-ins/eval/S15.1.2.1_A4.2.js b/test/built-ins/eval/length-non-configurable.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.2.js rename to test/built-ins/eval/length-non-configurable.js diff --git a/test/built-ins/eval/S15.1.2.1_A4.3.js b/test/built-ins/eval/length-non-writable.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.3.js rename to test/built-ins/eval/length-non-writable.js diff --git a/test/built-ins/eval/S15.1.2.1_A4.4.js b/test/built-ins/eval/length-value.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.4.js rename to test/built-ins/eval/length-value.js diff --git a/test/built-ins/eval/S15.1.2.1_A4.7.js b/test/built-ins/eval/no-construct.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.7.js rename to test/built-ins/eval/no-construct.js diff --git a/test/built-ins/eval/S15.1.2.1_A4.6.js b/test/built-ins/eval/no-proto.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.6.js rename to test/built-ins/eval/no-proto.js diff --git a/test/built-ins/eval/S15.1.2.1_A4.5.js b/test/built-ins/eval/prop-desc-enumerable.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A4.5.js rename to test/built-ins/eval/prop-desc-enumerable.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T1.js b/test/language/eval-code/direct/cptn-nrml-empty-block.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T1.js rename to test/language/eval-code/direct/cptn-nrml-empty-block.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T6.js b/test/language/eval-code/direct/cptn-nrml-empty-do-while.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T6.js rename to test/language/eval-code/direct/cptn-nrml-empty-do-while.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T3.js b/test/language/eval-code/direct/cptn-nrml-empty-empty.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T3.js rename to test/language/eval-code/direct/cptn-nrml-empty-empty.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T8.js b/test/language/eval-code/direct/cptn-nrml-empty-for.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T8.js rename to test/language/eval-code/direct/cptn-nrml-empty-for.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T4.js b/test/language/eval-code/direct/cptn-nrml-empty-if.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T4.js rename to test/language/eval-code/direct/cptn-nrml-empty-if.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T5.js b/test/language/eval-code/direct/cptn-nrml-empty-switch.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T5.js rename to test/language/eval-code/direct/cptn-nrml-empty-switch.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T2.js b/test/language/eval-code/direct/cptn-nrml-empty-var.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T2.js rename to test/language/eval-code/direct/cptn-nrml-empty-var.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.2_T7.js b/test/language/eval-code/direct/cptn-nrml-empty-while.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.2_T7.js rename to test/language/eval-code/direct/cptn-nrml-empty-while.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.1_T2.js b/test/language/eval-code/direct/cptn-nrml-expr-obj.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.1_T2.js rename to test/language/eval-code/direct/cptn-nrml-expr-obj.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.1_T1.js b/test/language/eval-code/direct/cptn-nrml-expr-prim.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.1_T1.js rename to test/language/eval-code/direct/cptn-nrml-expr-prim.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.3_T4.js b/test/language/eval-code/direct/cptn-thrw-prim.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.3_T4.js rename to test/language/eval-code/direct/cptn-thrw-prim.js diff --git a/test/language/eval-code/export.js b/test/language/eval-code/direct/export.js similarity index 100% rename from test/language/eval-code/export.js rename to test/language/eval-code/direct/export.js diff --git a/test/language/eval-code/import.js b/test/language/eval-code/direct/import.js similarity index 100% rename from test/language/eval-code/import.js rename to test/language/eval-code/direct/import.js diff --git a/test/language/eval-code/non-definable-function-with-function.js b/test/language/eval-code/direct/non-definable-function-with-function.js old mode 100755 new mode 100644 similarity index 100% rename from test/language/eval-code/non-definable-function-with-function.js rename to test/language/eval-code/direct/non-definable-function-with-function.js diff --git a/test/language/eval-code/non-definable-function-with-variable.js b/test/language/eval-code/direct/non-definable-function-with-variable.js old mode 100755 new mode 100644 similarity index 100% rename from test/language/eval-code/non-definable-function-with-variable.js rename to test/language/eval-code/direct/non-definable-function-with-variable.js diff --git a/test/language/eval-code/non-definable-global-function.js b/test/language/eval-code/direct/non-definable-global-function.js old mode 100755 new mode 100644 similarity index 100% rename from test/language/eval-code/non-definable-global-function.js rename to test/language/eval-code/direct/non-definable-global-function.js diff --git a/test/language/eval-code/non-definable-global-generator.js b/test/language/eval-code/direct/non-definable-global-generator.js old mode 100755 new mode 100644 similarity index 100% rename from test/language/eval-code/non-definable-global-generator.js rename to test/language/eval-code/direct/non-definable-global-generator.js diff --git a/test/language/eval-code/non-definable-global-var.js b/test/language/eval-code/direct/non-definable-global-var.js old mode 100755 new mode 100644 similarity index 100% rename from test/language/eval-code/non-definable-global-var.js rename to test/language/eval-code/direct/non-definable-global-var.js diff --git a/test/built-ins/eval/S15.1.2.1_A1.1_T2.js b/test/language/eval-code/direct/non-string-object.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A1.1_T2.js rename to test/language/eval-code/direct/non-string-object.js diff --git a/test/built-ins/eval/S15.1.2.1_A1.1_T1.js b/test/language/eval-code/direct/non-string-primitive.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A1.1_T1.js rename to test/language/eval-code/direct/non-string-primitive.js diff --git a/test/built-ins/eval/S15.1.2.1_A2_T1.js b/test/language/eval-code/direct/parse-failure-1.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A2_T1.js rename to test/language/eval-code/direct/parse-failure-1.js diff --git a/test/built-ins/eval/S15.1.2.1_A2_T2.js b/test/language/eval-code/direct/parse-failure-2.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A2_T2.js rename to test/language/eval-code/direct/parse-failure-2.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.3_T1.js b/test/language/eval-code/direct/parse-failure-3.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.3_T1.js rename to test/language/eval-code/direct/parse-failure-3.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.3_T2.js b/test/language/eval-code/direct/parse-failure-4.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.3_T2.js rename to test/language/eval-code/direct/parse-failure-4.js diff --git a/test/built-ins/eval/S15.1.2.1_A3.3_T3.js b/test/language/eval-code/direct/parse-failure-5.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A3.3_T3.js rename to test/language/eval-code/direct/parse-failure-5.js diff --git a/test/language/eval-code/this-value-func-non-strict.js b/test/language/eval-code/direct/this-value-func-non-strict.js similarity index 100% rename from test/language/eval-code/this-value-func-non-strict.js rename to test/language/eval-code/direct/this-value-func-non-strict.js diff --git a/test/language/eval-code/this-value-func-strict.js b/test/language/eval-code/direct/this-value-func-strict.js similarity index 100% rename from test/language/eval-code/this-value-func-strict.js rename to test/language/eval-code/direct/this-value-func-strict.js diff --git a/test/language/eval-code/this-value-global.js b/test/language/eval-code/direct/this-value-global.js similarity index 100% rename from test/language/eval-code/this-value-global.js rename to test/language/eval-code/direct/this-value-global.js diff --git a/test/language/eval-code/10.4.2.1-2-s.js b/test/language/eval-code/direct/var-env-func-strict-caller-2.js similarity index 100% rename from test/language/eval-code/10.4.2.1-2-s.js rename to test/language/eval-code/direct/var-env-func-strict-caller-2.js diff --git a/test/language/eval-code/10.4.2-2-s.js b/test/language/eval-code/direct/var-env-func-strict-caller.js similarity index 100% rename from test/language/eval-code/10.4.2-2-s.js rename to test/language/eval-code/direct/var-env-func-strict-caller.js diff --git a/test/language/eval-code/10.4.2.1-4-s.js b/test/language/eval-code/direct/var-env-func-strict-source.js similarity index 100% rename from test/language/eval-code/10.4.2.1-4-s.js rename to test/language/eval-code/direct/var-env-func-strict-source.js diff --git a/test/language/eval-code/10.4.2-2-c-1.js b/test/language/eval-code/direct/var-env-var-non-strict.js similarity index 100% rename from test/language/eval-code/10.4.2-2-c-1.js rename to test/language/eval-code/direct/var-env-var-non-strict.js diff --git a/test/language/eval-code/10.4.2.1-1gs.js b/test/language/eval-code/direct/var-env-var-strict-caller-2.js similarity index 100% rename from test/language/eval-code/10.4.2.1-1gs.js rename to test/language/eval-code/direct/var-env-var-strict-caller-2.js diff --git a/test/language/eval-code/10.4.2-3-c-3-s.js b/test/language/eval-code/direct/var-env-var-strict-caller-3.js similarity index 100% rename from test/language/eval-code/10.4.2-3-c-3-s.js rename to test/language/eval-code/direct/var-env-var-strict-caller-3.js diff --git a/test/language/eval-code/10.4.2-3-c-2-s.js b/test/language/eval-code/direct/var-env-var-strict-caller.js similarity index 100% rename from test/language/eval-code/10.4.2-3-c-2-s.js rename to test/language/eval-code/direct/var-env-var-strict-caller.js diff --git a/test/language/eval-code/10.4.2-3-c-1-s.js b/test/language/eval-code/direct/var-env-var-strict-source.js similarity index 100% rename from test/language/eval-code/10.4.2-3-c-1-s.js rename to test/language/eval-code/direct/var-env-var-strict-source.js diff --git a/test/language/eval-code/S10.4.2.1_A1.js b/test/language/eval-code/indirect/var-env-var-strict.js similarity index 100% rename from test/language/eval-code/S10.4.2.1_A1.js rename to test/language/eval-code/indirect/var-env-var-strict.js diff --git a/test/built-ins/eval/S15.1.2.1_A1.2_T1.js b/test/language/expressions/call/eval-first-arg.js similarity index 100% rename from test/built-ins/eval/S15.1.2.1_A1.2_T1.js rename to test/language/expressions/call/eval-first-arg.js