From 830e80e9e58b88d041b12216990bd9dc68447069 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 1/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/config.py | 3 + test262/es2021_tests.txt | 848 ++++++++++++++++++++++++--------- test262/es2abc_skip_tests.json | 170 +++++++ test262/eshost.patch | 49 +- test262/not_module_tests.txt | 85 ++++ test262/run_sunspider.py | 35 +- test262/utils.py | 2 +- 7 files changed, 932 insertions(+), 260 deletions(-) create mode 100644 test262/not_module_tests.txt diff --git a/test262/config.py b/test262/config.py index e58a30fa51..08684fb0a8 100755 --- a/test262/config.py +++ b/test262/config.py @@ -62,10 +62,13 @@ ES2021_LIST_FILE = os.path.join("test262", "es2021_tests.txt") CI_LIST_FILE = os.path.join("test262", "CI_tests.txt") MODULE_LIST = [] DYNAMIC_IMPORT_LIST = [] +NOT_MODULE_LIST = [] with open(os.path.join("test262", "module_tests.txt")) as m_file: MODULE_LIST = m_file.read().splitlines() with open(os.path.join("test262", "dynamicImport_tests.txt")) as d_file: DYNAMIC_IMPORT_LIST = d_file.read().splitlines() +with open(os.path.join("test262", "not_module_tests.txt")) as n_file: + NOT_MODULE_LIST = n_file.read().splitlines() TEST262_GIT_HASH = "9ca13b12728b7e0089c7eb03fa2bd17f8abe297f" HARNESS_GIT_HASH = "9c499f028eb24e67781435c0bb442e00343eb39d" diff --git a/test262/es2021_tests.txt b/test262/es2021_tests.txt index f4e31babb9..05dab60702 100644 --- a/test262/es2021_tests.txt +++ b/test262/es2021_tests.txt @@ -463,239 +463,6 @@ built-ins/RegExp/named-groups/string-replace-undefined.js built-ins/RegExp/named-groups/unicode-match.js built-ins/RegExp/named-groups/string-replace-unclosed.js built-ins/RegExp/named-groups/unicode-references.js -language/expressions/dynamic-import/usage-from-eval.js -language/expressions/dynamic-import/returns-promise.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-block-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-12-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-if-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-with-expression-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-function-return-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-block-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-else-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-10-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-with-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-7-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-with-expression-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-function-return-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/top-level-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-do-while-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-13-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-16-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-17-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-function-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-with-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-5-lhs-equals-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-15-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-4-update-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-with-expression-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-do-while-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-3-update-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-while-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-function-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-14-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-8-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-2-update-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-with-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-while-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-if-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-6-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-1-update-expression.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-9-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional.js -language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-11-lhs-assignment-operator-assignment-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/nested-else-no-rest-param.js -language/expressions/dynamic-import/syntax/invalid/top-level-no-new-call-expression.js -language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js -language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js -language/expressions/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-else-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-do-while-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-else-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-with-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-if-braceless-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-with-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-function-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-await-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-await-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-function-return-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-block-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-block-labeled-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-if-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-while-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-arrow-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/top-level-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-else-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-if-braceless-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-arrow-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-nested-imports.js -language/expressions/dynamic-import/syntax/valid/callexpression-templateliteral.js -language/expressions/dynamic-import/syntax/valid/top-level-nested-imports.js -language/expressions/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-with-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-with-expression-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-while-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-if-braceless-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-block-labeled-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-block-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-block-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-do-while-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-if-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-function-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/new-covered-expression-is-valid.js -language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-arrow-nested-imports.js -language/expressions/dynamic-import/syntax/valid/callexpression-arguments.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-await-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-block-labeled-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-if-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-do-while-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-with-expression-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-else-braceless-empty-str-is-valid-assign-expr.js -language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-else-braceless-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-with-expression-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-else-braceless-nested-imports.js -language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-script-code-valid.js -language/expressions/dynamic-import/syntax/valid/nested-function-return-script-code-valid.js -language/expressions/dynamic-import/await-import-evaluation.js -language/expressions/dynamic-import/eval-export-dflt-cls-name-meth.js -language/expressions/dynamic-import/assign-expr-get-value-abrupt-throws.js -language/expressions/dynamic-import/escape-sequence-import.js -language/expressions/dynamic-import/eval-export-dflt-cls-anon.js -language/expressions/dynamic-import/indirect-resolution.js -language/expressions/dynamic-import/reuse-namespace-object-from-script.js -language/expressions/dynamic-import/eval-self-once-module.js -language/expressions/dynamic-import/for-await-resolution-and-error.js -language/expressions/dynamic-import/eval-rqstd-once.js -language/expressions/dynamic-import/eval-export-dflt-expr-cls-anon.js -language/expressions/dynamic-import/eval-export-dflt-expr-cls-named.js -language/expressions/dynamic-import/reuse-namespace-object.js -language/expressions/dynamic-import/update-to-dynamic-import.js -language/expressions/dynamic-import/eval-export-dflt-expr-gen-anon.js -language/expressions/dynamic-import/eval-export-dflt-expr-cls-name-meth.js -language/expressions/dynamic-import/always-create-new-promise.js -language/expressions/dynamic-import/for-await-resolution-and-error-agen.js -language/expressions/dynamic-import/eval-export-dflt-expr-in.js -language/expressions/dynamic-import/for-await-resolution-and-error-agen-yield.js -language/expressions/dynamic-import/eval-export-dflt-cls-named.js -language/expressions/dynamic-import/custom-primitive.js -language/expressions/dynamic-import/reuse-namespace-object-from-import.js -language/expressions/dynamic-import/eval-self-once-script.js -language/expressions/dynamic-import/eval-export-dflt-expr-gen-named.js -language/expressions/dynamic-import/eval-export-dflt-expr-fn-named.js -language/expressions/dynamic-import/eval-export-dflt-expr-fn-anon.js -language/expressions/dynamic-import/imported-self-update.js -language/expressions/dynamic-import/indirect-resolution-2_FIXTURE.js -language/expressions/dynamic-import/dynamic-import-module_FIXTURE.js -language/expressions/dynamic-import/await-import-evaluation_FIXTURE.js -language/expressions/dynamic-import/custom-tostring_FIXTURE.js -language/expressions/dynamic-import/empty_FIXTURE.js -language/expressions/dynamic-import/for-await-resolution-and-error-poisoned_FIXTURE.js -language/expressions/dynamic-import/update-to-dynamic-import_FIXTURE.js -language/expressions/dynamic-import/custom-valueof_FIXTURE.js -language/expressions/dynamic-import/for-await-resolution-and-error-b_FIXTURE.js -language/expressions/dynamic-import/eval-rqstd-once_FIXTURE.js -language/expressions/dynamic-import/indirect-resolution-1_FIXTURE.js -language/expressions/dynamic-import/for-await-resolution-and-error-a_FIXTURE.js -language/expressions/dynamic-import/module-code_FIXTURE.js -language/expressions/dynamic-import/update-to-dynamic-import-other_FIXTURE.js -language/expressions/dynamic-import/syntax/valid/empty_FIXTURE.js language/expressions/optional-chaining/call-expression.js language/expressions/optional-chaining/call-expression-super-no-base.js language/expressions/optional-chaining/early-errors-tail-position-null-optchain-template-string-esi.js @@ -734,3 +501,618 @@ language/expressions/optional-chaining/static-semantics-simple-assignment.js language/expressions/optional-chaining/super-property-optional-call.js language/expressions/optional-chaining/update-expression-postfix.js language/expressions/optional-chaining/update-expression-prefix.js +language/expressions/dynamic-import/custom-valueof_FIXTURE.js +language/expressions/dynamic-import/module-code_FIXTURE.js +language/expressions/dynamic-import/empty_FIXTURE.js +language/expressions/dynamic-import/indirect-resolution-1_FIXTURE.js +language/expressions/dynamic-import/for-await-resolution-and-error-a_FIXTURE.js +language/expressions/dynamic-import/usage/module-code_FIXTURE.js +language/expressions/dynamic-import/usage/eval-gtbndng-indirect-update-dflt_FIXTURE.js +language/expressions/dynamic-import/usage/eval-gtbndng-indirect-update_FIXTURE.js +language/expressions/dynamic-import/usage/dynamic-import-module_FIXTURE.js +language/expressions/dynamic-import/namespace/own-keys-sort_FIXTURE.js +language/expressions/dynamic-import/namespace/module-code_FIXTURE.js +language/expressions/dynamic-import/namespace/empty_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-props-nrml-1_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-prod_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-prod-end_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-named-end_FIXTURE.js +language/expressions/dynamic-import/namespace/define-own-property_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-props-nrml-2_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-named_FIXTURE.js +language/expressions/dynamic-import/namespace/get-nested-namespace-props-nrml-3_FIXTURE.js +language/expressions/dynamic-import/indirect-resolution-2_FIXTURE.js +language/expressions/dynamic-import/update-to-dynamic-import_FIXTURE.js +language/expressions/dynamic-import/catch/eval-rqstd-abrupt-err-uri_FIXTURE.js +language/expressions/dynamic-import/catch/instn-iee-err-circular-2_FIXTURE.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous_FIXTURE.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous-2_FIXTURE.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous-export_FIXTURE.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous-1_FIXTURE.js +language/expressions/dynamic-import/catch/eval-rqstd-abrupt-err-type_FIXTURE.js +language/expressions/dynamic-import/catch/script-code_FIXTURE.js +language/expressions/dynamic-import/catch/instn-iee-err-circular-1_FIXTURE.js +language/expressions/dynamic-import/for-await-resolution-and-error-poisoned_FIXTURE.js +language/expressions/dynamic-import/custom-tostring_FIXTURE.js +language/expressions/dynamic-import/assignment-expression/module-code_FIXTURE.js +language/expressions/dynamic-import/assignment-expression/module-code-other_FIXTURE.js +language/expressions/dynamic-import/syntax/valid/empty_FIXTURE.js +language/expressions/dynamic-import/await-import-evaluation_FIXTURE.js +language/expressions/dynamic-import/update-to-dynamic-import-other_FIXTURE.js +language/expressions/dynamic-import/for-await-resolution-and-error-b_FIXTURE.js +language/expressions/dynamic-import/eval-rqstd-once_FIXTURE.js +language/expressions/dynamic-import/dynamic-import-module_FIXTURE.js +language/expressions/dynamic-import/reuse-namespace-object-from-import.js +language/expressions/dynamic-import/for-await-resolution-and-error-agen.js +language/expressions/dynamic-import/eval-export-dflt-expr-gen-named.js +language/expressions/dynamic-import/custom-valueof_FIXTURE.js +language/expressions/dynamic-import/module-code_FIXTURE.js +language/expressions/dynamic-import/eval-export-dflt-expr-cls-anon.js +language/expressions/dynamic-import/assign-expr-get-value-abrupt-throws.js +language/expressions/dynamic-import/for-await-resolution-and-error.js +language/expressions/dynamic-import/empty_FIXTURE.js +language/expressions/dynamic-import/eval-self-once-module.js +language/expressions/dynamic-import/indirect-resolution-1_FIXTURE.js +language/expressions/dynamic-import/eval-export-dflt-expr-fn-anon.js +language/expressions/dynamic-import/indirect-resolution.js +language/expressions/dynamic-import/eval-self-once-script.js +language/expressions/dynamic-import/returns-promise.js +language/expressions/dynamic-import/await-import-evaluation.js +language/expressions/dynamic-import/for-await-resolution-and-error-a_FIXTURE.js +language/expressions/dynamic-import/usage/nested-do-while-returns-thenable.js +language/expressions/dynamic-import/usage/syntax-nested-block-labeled-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/syntax-nested-block-labeled-returns-thenable.js +language/expressions/dynamic-import/usage/top-level-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-else-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-block-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-async-function-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-while-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-function-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-async-function-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-function-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/module-code_FIXTURE.js +language/expressions/dynamic-import/usage/nested-while-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-function-await-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-gen-await-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-arrow-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-function-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-if-braceless-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-returns-thenable.js +language/expressions/dynamic-import/usage/nested-if-braceless-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-function-return-await-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-if-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-await-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-gen-await-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-function-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-function-await-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-gen-await-returns-thenable.js +language/expressions/dynamic-import/usage/nested-else-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-arrow-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-if-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-function-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-async-gen-await-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-else-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-function-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/top-level-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-gen-return-await-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-do-while-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-else-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-function-await-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-if-braceless-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-block-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-do-while-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-while-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-block-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-block-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-else-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/eval-gtbndng-indirect-update-dflt_FIXTURE.js +language/expressions/dynamic-import/usage/top-level-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-function-await-returns-thenable.js +language/expressions/dynamic-import/usage/nested-if-braceless-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-await-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-if-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-function-await-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-async-gen-await-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-function-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-block-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-do-while-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/eval-gtbndng-indirect-update_FIXTURE.js +language/expressions/dynamic-import/usage/nested-if-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-else-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-while-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-if-braceless-returns-thenable.js +language/expressions/dynamic-import/usage/top-level-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-returns-thenable.js +language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-block-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-async-function-await-specifier-tostring.js +language/expressions/dynamic-import/usage/top-level-import-then-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/nested-async-function-return-await-returns-thenable.js +language/expressions/dynamic-import/usage/nested-while-import-then-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-function-import-then-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-do-while-is-call-expression-square-brackets.js +language/expressions/dynamic-import/usage/syntax-nested-block-labeled-specifier-tostring.js +language/expressions/dynamic-import/usage/top-level-import-then-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-async-gen-return-await-returns-thenable.js +language/expressions/dynamic-import/usage/nested-if-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-gtbndng-indirect-update-dflt.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-await-returns-thenable.js +language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-arrow-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-async-function-returns-thenable.js +language/expressions/dynamic-import/usage/nested-do-while-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-async-function-return-await-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-async-gen-await-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-if-import-then-returns-thenable.js +language/expressions/dynamic-import/usage/nested-if-braceless-eval-gtbndng-indirect-update.js +language/expressions/dynamic-import/usage/nested-while-import-then-specifier-tostring.js +language/expressions/dynamic-import/usage/nested-async-function-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/dynamic-import-module_FIXTURE.js +language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-script-code-host-resolves-module-code.js +language/expressions/dynamic-import/usage/nested-async-gen-return-await-is-call-expression-square-brackets.js +language/expressions/dynamic-import/namespace/promise-then-ns-set-prototype-of-null.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-nested-namespace-dflt-indirect.js +language/expressions/dynamic-import/namespace/own-keys-sort_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-set-same-values-no-strict.js +language/expressions/dynamic-import/namespace/await-ns-get-sym-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-own-property-keys-sort.js +language/expressions/dynamic-import/namespace/await-ns-get-nested-namespace-dflt-indirect.js +language/expressions/dynamic-import/namespace/module-code_FIXTURE.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-own-property-str-not-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-Symbol-toStringTag.js +language/expressions/dynamic-import/namespace/await-ns-delete-exported-init-strict.js +language/expressions/dynamic-import/namespace/await-ns-delete-exported-init-no-strict.js +language/expressions/dynamic-import/namespace/await-ns-prototype.js +language/expressions/dynamic-import/namespace/empty_FIXTURE.js +language/expressions/dynamic-import/namespace/promise-then-ns-set-no-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-set-same-values-no-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-delete-non-exported-strict.js +language/expressions/dynamic-import/namespace/get-nested-namespace-props-nrml-1_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-has-property-sym-not-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-set-same-values-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-has-property-sym-found.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-prod_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-has-property-str-found-init.js +language/expressions/dynamic-import/namespace/await-ns-set-prototype-of-null.js +language/expressions/dynamic-import/namespace/promise-then-ns-extensible.js +language/expressions/dynamic-import/namespace/promise-then-ns-define-own-property.js +language/expressions/dynamic-import/namespace/promise-then-ns-prevent-extensions-reflect.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-prod-end_FIXTURE.js +language/expressions/dynamic-import/namespace/promise-then-ns-no-iterator.js +language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-found-init.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-named-end_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-prevent-extensions-reflect.js +language/expressions/dynamic-import/namespace/await-ns-set-same-values-strict.js +language/expressions/dynamic-import/namespace/await-ns-get-own-property-str-found-init.js +language/expressions/dynamic-import/namespace/promise-then-ns-set-prototype-of.js +language/expressions/dynamic-import/namespace/await-ns-get-own-property-str-not-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-has-property-sym-not-found.js +language/expressions/dynamic-import/namespace/await-ns-no-iterator.js +language/expressions/dynamic-import/namespace/define-own-property_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-get-nested-namespace-dflt-direct.js +language/expressions/dynamic-import/namespace/get-nested-namespace-props-nrml-2_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-get-str-not-found.js +language/expressions/dynamic-import/namespace/await-ns-own-property-keys-sort.js +language/expressions/dynamic-import/namespace/await-ns-get-own-property-sym.js +language/expressions/dynamic-import/namespace/await-ns-prevent-extensions-object.js +language/expressions/dynamic-import/namespace/default-property-not-set-own.js +language/expressions/dynamic-import/namespace/await-ns-get-nested-namespace-props-nrml.js +language/expressions/dynamic-import/namespace/await-ns-set-strict.js +language/expressions/dynamic-import/namespace/await-ns-Symbol-toStringTag.js +language/expressions/dynamic-import/namespace/get-nested-namespace-dflt-skip-named_FIXTURE.js +language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-not-found.js +language/expressions/dynamic-import/namespace/await-ns-has-property-str-not-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-delete-exported-init-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-delete-non-exported-no-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-prototype.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-own-property-sym.js +language/expressions/dynamic-import/namespace/await-ns-set-prototype-of.js +language/expressions/dynamic-import/namespace/await-ns-extensible.js +language/expressions/dynamic-import/namespace/await-ns-delete-non-exported-no-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-str-not-found.js +language/expressions/dynamic-import/namespace/await-ns-get-str-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-set-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-nested-namespace-props-nrml.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-str-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-sym-found.js +language/expressions/dynamic-import/namespace/await-ns-set-no-strict.js +language/expressions/dynamic-import/namespace/await-ns-delete-non-exported-strict.js +language/expressions/dynamic-import/namespace/promise-then-ns-prevent-extensions-object.js +language/expressions/dynamic-import/namespace/await-ns-prop-descs.js +language/expressions/dynamic-import/namespace/promise-then-ns-prop-descs.js +language/expressions/dynamic-import/namespace/await-ns-get-sym-not-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-delete-exported-init-no-strict.js +language/expressions/dynamic-import/namespace/get-nested-namespace-props-nrml-3_FIXTURE.js +language/expressions/dynamic-import/namespace/await-ns-define-own-property.js +language/expressions/dynamic-import/namespace/await-ns-has-property-sym-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-sym-not-found.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-own-property-str-found-init.js +language/expressions/dynamic-import/namespace/promise-then-ns-get-nested-namespace-dflt-direct.js +language/expressions/dynamic-import/eval-export-dflt-expr-gen-anon.js +language/expressions/dynamic-import/eval-export-dflt-expr-cls-name-meth.js +language/expressions/dynamic-import/indirect-resolution-2_FIXTURE.js +language/expressions/dynamic-import/update-to-dynamic-import_FIXTURE.js +language/expressions/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-else-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-function-await-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/eval-rqstd-abrupt-err-uri_FIXTURE.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/instn-iee-err-circular-2_FIXTURE.js +language/expressions/dynamic-import/catch/nested-block-labeled-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-gen-await-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous_FIXTURE.js +language/expressions/dynamic-import/catch/nested-block-labeled-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous-2_FIXTURE.js +language/expressions/dynamic-import/catch/nested-block-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-else-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous-export_FIXTURE.js +language/expressions/dynamic-import/catch/nested-function-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-function-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-gen-await-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-while-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-do-while-file-does-not-exist.js +language/expressions/dynamic-import/catch/instn-iee-err-ambiguous-1_FIXTURE.js +language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-eval-script-code-target.js +language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/top-level-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-function-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-while-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-gen-await-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-block-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-if-import-catch-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/top-level-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-async-function-await-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-do-while-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-do-while-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-script-code-target.js +language/expressions/dynamic-import/catch/eval-rqstd-abrupt-err-type_FIXTURE.js +language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/script-code_FIXTURE.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-ambiguous-import.js +language/expressions/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-typeerror.js +language/expressions/dynamic-import/catch/nested-if-import-catch-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-script-code-target.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-file-does-not-exist.js +language/expressions/dynamic-import/catch/instn-iee-err-circular-1_FIXTURE.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-urierror.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-circular.js +language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js +language/expressions/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js +language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-circular.js +language/expressions/dynamic-import/reuse-namespace-object-from-script.js +language/expressions/dynamic-import/eval-export-dflt-cls-name-meth.js +language/expressions/dynamic-import/usage-from-eval.js +language/expressions/dynamic-import/for-await-resolution-and-error-poisoned_FIXTURE.js +language/expressions/dynamic-import/always-create-new-promise.js +language/expressions/dynamic-import/eval-export-dflt-expr-cls-named.js +language/expressions/dynamic-import/eval-export-dflt-expr-in.js +language/expressions/dynamic-import/custom-tostring_FIXTURE.js +language/expressions/dynamic-import/assignment-expression/member-expr.js +language/expressions/dynamic-import/assignment-expression/arrow-function.js +language/expressions/dynamic-import/assignment-expression/import-meta.js +language/expressions/dynamic-import/assignment-expression/lhs-eq-assign-expr-nostrict.js +language/expressions/dynamic-import/assignment-expression/lhs-assign-operator-assign-expr.js +language/expressions/dynamic-import/assignment-expression/module-code_FIXTURE.js +language/expressions/dynamic-import/assignment-expression/logical-or-expr.js +language/expressions/dynamic-import/assignment-expression/yield-identifier.js +language/expressions/dynamic-import/assignment-expression/call-expr-identifier.js +language/expressions/dynamic-import/assignment-expression/await-identifier.js +language/expressions/dynamic-import/assignment-expression/yield-expr.js +language/expressions/dynamic-import/assignment-expression/yield-assign-expr.js +language/expressions/dynamic-import/assignment-expression/additive-expr.js +language/expressions/dynamic-import/assignment-expression/identifier.js +language/expressions/dynamic-import/assignment-expression/this.js +language/expressions/dynamic-import/assignment-expression/cover-parenthesized-expr.js +language/expressions/dynamic-import/assignment-expression/call-expr-expr.js +language/expressions/dynamic-import/assignment-expression/logical-and-expr.js +language/expressions/dynamic-import/assignment-expression/new-target.js +language/expressions/dynamic-import/assignment-expression/module-code-other_FIXTURE.js +language/expressions/dynamic-import/assignment-expression/lhs-eq-assign-expr.js +language/expressions/dynamic-import/assignment-expression/call-expr-arguments.js +language/expressions/dynamic-import/assignment-expression/yield-star.js +language/expressions/dynamic-import/assignment-expression/cover-call-expr.js +language/expressions/dynamic-import/assignment-expression/await-expr.js +language/expressions/dynamic-import/assignment-expression/object-literal.js +language/expressions/dynamic-import/assignment-expression/array-literal.js +language/expressions/dynamic-import/assignment-expression/ternary.js +language/expressions/dynamic-import/assignment-expression/unary-expr.js +language/expressions/dynamic-import/assignment-expression/tagged-function-call.js +language/expressions/dynamic-import/syntax/valid/nested-if-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-with-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/callexpression-arguments.js +language/expressions/dynamic-import/syntax/valid/nested-else-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/new-covered-expression-is-valid.js +language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-block-labeled-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-if-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/empty_FIXTURE.js +language/expressions/dynamic-import/syntax/valid/nested-block-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-else-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-else-braceless-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-while-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-function-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-do-while-nested-imports.js +language/expressions/dynamic-import/syntax/valid/top-level-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-with-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-if-braceless-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-while-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-function-return-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-else-braceless-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-arrow-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-await-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-else-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-function-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-with-expression-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/top-level-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-else-braceless-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-block-labeled-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-if-braceless-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-with-expression-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-block-labeled-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-if-braceless-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-await-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/top-level-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-function-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-block-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-do-while-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-function-return-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-async-function-await-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-do-while-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-arrow-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-while-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-empty-str-is-valid-assign-expr.js +language/expressions/dynamic-import/syntax/valid/nested-if-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/nested-with-expression-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-block-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-arrow-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-with-nested-imports.js +language/expressions/dynamic-import/syntax/valid/nested-function-return-script-code-valid.js +language/expressions/dynamic-import/syntax/valid/callexpression-templateliteral.js +language/expressions/dynamic-import/syntax/invalid/nested-function-return-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-12-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-with-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-with-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-17-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-if-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-5-lhs-equals-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-do-while-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-function-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-function-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-do-while-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-2-update-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-15-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-if-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-while-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-function-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-3-update-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-with-expression-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-while-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-4-update-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-with-expression-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-block-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-6-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-else-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-function-return-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-function-return-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-16-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-do-while-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-7-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-11-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-block-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-while-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-1-update-expression.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-9-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-if-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-10-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/top-level-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-block-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-else-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-14-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-with-expression-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-13-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/top-level-assignment-expr-not-optional.js +language/expressions/dynamic-import/syntax/invalid/top-level-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-8-lhs-assignment-operator-assignment-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-with-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-no-rest-param.js +language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-else-no-new-call-expression.js +language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js +language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js +language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-assignment-expr-not-optional.js +language/expressions/dynamic-import/eval-rqstd-once.js +language/expressions/dynamic-import/for-await-resolution-and-error-agen-yield.js +language/expressions/dynamic-import/eval-export-dflt-cls-anon.js +language/expressions/dynamic-import/imported-self-update.js +language/expressions/dynamic-import/eval-export-dflt-expr-fn-named.js +language/expressions/dynamic-import/await-import-evaluation_FIXTURE.js +language/expressions/dynamic-import/eval-export-dflt-cls-named.js +language/expressions/dynamic-import/custom-primitive.js +language/expressions/dynamic-import/update-to-dynamic-import.js +language/expressions/dynamic-import/update-to-dynamic-import-other_FIXTURE.js +language/expressions/dynamic-import/for-await-resolution-and-error-b_FIXTURE.js +language/expressions/dynamic-import/escape-sequence-import.js +language/expressions/dynamic-import/eval-rqstd-once_FIXTURE.js +language/expressions/dynamic-import/reuse-namespace-object.js +language/expressions/dynamic-import/dynamic-import-module_FIXTURE.js \ No newline at end of file diff --git a/test262/es2abc_skip_tests.json b/test262/es2abc_skip_tests.json index 7e59e76849..eba861ef2e 100644 --- a/test262/es2abc_skip_tests.json +++ b/test262/es2abc_skip_tests.json @@ -83,5 +83,175 @@ "language/expressions/dynamic-import/reuse-namespace-object-from-import.js", "language/expressions/dynamic-import/usage-from-eval.js" ] + }, + { + "reason" : "Dynamic Import failed testcases : ResolveFilenameFromNative:185 resolve absolute path fail", + "files": [ + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-do-while-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-file-does-not-exist.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :SyntaxError 'await' is not permitted as an identifier in module code", + "files": [ + "language/expressions/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/assignment-expression/await-identifier-strict.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :SyntaxError", + "files": [ + "language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-ambiguous-import.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :TypeError", + "files": [ + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-do-while-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-specifier-tostring-abrupt-rejects.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :URIError", + "files": [ + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-urierror.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :Can not get module", + "files": [ + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-script-code-target.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases", + "files": [ + "language/expressions/dynamic-import/assignment-expression/await-identifier.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-function-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/namespace/await-ns-Symbol-toStringTag.js", + "language/expressions/dynamic-import/namespace/await-ns-define-own-property.js", + "language/expressions/dynamic-import/namespace/promise-then-ns-Symbol-toStringTag.js", + "language/expressions/dynamic-import/namespace/promise-then-ns-define-own-property.js", + "language/expressions/dynamic-import/assignment-expression/ternary.js", + "language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-not-found.js", + "language/expressions/dynamic-import/namespace/promise-then-ns-prevent-extensions-object.js", + "language/expressions/dynamic-import/usage/nested-async-function-return-await-returns-thenable.js", + "language/expressions/dynamic-import/namespace/await-ns-set-prototype-of.js", + "language/expressions/dynamic-import/syntax/valid/nested-block-script-code-valid.js", + "language/expressions/dynamic-import/namespace/await-ns-has-property-str-not-found.js", + "language/expressions/dynamic-import/namespace/await-ns-prop-descs.js", + "language/expressions/dynamic-import/returns-promise.js" + ] + }, + { + "reason" : "module-code failed testcases", + "files": [ + "language/module-code/instn-iee-err-circular-as.js" + ] } ] diff --git a/test262/eshost.patch b/test262/eshost.patch index 7e6c2647b8..a079d718de 100644 --- a/test262/eshost.patch +++ b/test262/eshost.patch @@ -1,13 +1,13 @@ -From ed6584a8304882dc14a25cbd1f27f70961658147 Mon Sep 17 00:00:00 2001 -Date: Thu, 15 Jul 2021 09:34:47 +0800 +From f9fc0c21475bc5efb6f53d33d01fe793c0ec35de Mon Sep 17 00:00:00 2001 +Date: Tue, 18 Oct 2022 20:08:54 +0800 Subject: [PATCH] fix test --- lib/Agent.js | 1 + - lib/ConsoleAgent.js | 29 ++++++++++----- + lib/ConsoleAgent.js | 41 +++++++++++++-------- lib/agents/panda.js | 88 +++++++++++++++++++++++++++++++++++++++++++++ runtimes/panda.js | 44 +++++++++++++++++++++++ - 4 files changed, 154 insertions(+), 8 deletions(-) + 4 files changed, 160 insertions(+), 14 deletions(-) create mode 100644 lib/agents/panda.js create mode 100644 runtimes/panda.js @@ -20,17 +20,17 @@ index edcdf0e..7e655c5 100644 this.transform = options.transform || (x => x); this.out = options.out || ''; + this.test262Dir = options.test262Dir; - + if (typeof this.args === 'string') { this.args = this.args.includes(' ') ? diff --git a/lib/ConsoleAgent.js b/lib/ConsoleAgent.js -index 947c1db..dc14ded 100644 +index 947c1db..29cf9cf 100644 --- a/lib/ConsoleAgent.js +++ b/lib/ConsoleAgent.js @@ -19,7 +19,7 @@ const { const cpSym = Symbol.for('cp'); const tpSym = Symbol.for('tp'); - + -function generateTempFileName() { +function generateTempFileName(file) { const now = Date.now(); @@ -39,7 +39,7 @@ index 947c1db..dc14ded 100644 @@ -47,9 +47,23 @@ class ConsoleAgent extends Agent { } } - + + genTempFileName(code){ + let file = code.file; + let scenario = code.scenario === 'strict mode' ? 'strict' : code.scenario; @@ -59,13 +59,13 @@ index 947c1db..dc14ded 100644 + let tempfile = this.genTempFileName(code); + //let tempfile = path.join(this.out, generateTempFileName(code.file)); + let temppath = this.out; - + let isExpectingRawSource = false; let hasDependencies = false; @@ -57,10 +71,10 @@ class ConsoleAgent extends Agent { const sources = []; const dependencies = []; - + - if (this.out) { - tempfile = tempfile.replace(temppath, this.out); - temppath = this.out; @@ -74,16 +74,35 @@ index 947c1db..dc14ded 100644 + // tempfile = tempfile.replace(temppath, this.out); + // temppath = this.out; + // } - + // When evalScript is called with a test262-stream test record: if (typeof code === 'object' && code.contents) { +@@ -84,12 +98,12 @@ class ConsoleAgent extends Agent { + hasDependencies = false; + } + +- if (options.module || attrs.flags.module || +- hasModuleSpecifier(contents)) { +- // When testing module or dynamic import code that imports itself, +- // we must copy the test file with its actual name. +- tempfile = path.join(temppath, sourcebase); +- } ++ // if (options.module || attrs.flags.module || ++ // hasModuleSpecifier(contents)) { ++ // // When testing module or dynamic import code that imports itself, ++ // // we must copy the test file with its actual name. ++ // tempfile = path.join(temppath, sourcebase); ++ // } + + // The test record in "code" is no longer needed and + // all further operations expect the "code" argument to be @@ -161,7 +175,6 @@ class ConsoleAgent extends Agent { sources.forEach(({0: file}) => fs.unlink(file, () => { /* ignore */ })); - + const result = this.normalizeResult({ stderr, stdout }); - result.error = this.parseError(result.stderr); - + return result; diff --git a/lib/agents/panda.js b/lib/agents/panda.js new file mode 100644 @@ -230,4 +249,6 @@ index 0000000..0acbd09 + this.global[name] = value; +}; +$262.source = $SOURCE; --- \ No newline at end of file +-- +2.25.1 + diff --git a/test262/not_module_tests.txt b/test262/not_module_tests.txt new file mode 100644 index 0000000000..f90a946a3b --- /dev/null +++ b/test262/not_module_tests.txt @@ -0,0 +1,85 @@ +nested-arrow-import-then-eval-script-code-host-resolves-module-code.js +nested-async-function-eval-script-code-host-resolves-module-code.js +nested-while-import-then-eval-script-code-host-resolves-module-code.js +nested-block-import-then-eval-script-code-host-resolves-module-code.js +nested-function-import-then-eval-script-code-host-resolves-module-code.js +nested-if-import-then-eval-script-code-host-resolves-module-code.js +nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code.js +top-level-import-then-eval-script-code-host-resolves-module-code.js +nested-do-while-eval-script-code-host-resolves-module-code.js +nested-async-arrow-function-await-eval-script-code-host-resolves-module-code.js +syntax-nested-block-labeled-eval-script-code-host-resolves-module-code.js +nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code.js +nested-else-import-then-eval-script-code-host-resolves-module-code.js +nested-async-function-return-await-eval-script-code-host-resolves-module-code.js +nested-if-braceless-eval-script-code-host-resolves-module-code.js +nested-async-function-await-eval-script-code-host-resolves-module-code.js +nested-async-gen-return-await-instn-iee-err-ambiguous-import.js +nested-async-gen-return-await-instn-iee-err-circular.js +nested-async-function-await-instn-iee-err-circular.js +nested-async-function-instn-iee-err-ambiguous-import.js +nested-block-labeled-instn-iee-err-circular.js +nested-async-arrow-function-return-await-instn-iee-err-ambiguous-import.js +nested-async-function-await-instn-iee-err-ambiguous-import.js +nested-do-while-eval-script-code-target.js +nested-else-import-catch-eval-script-code-target.js +nested-arrow-import-catch-instn-iee-err-ambiguous-import.js +nested-async-function-await-eval-script-code-target.js +nested-function-import-catch-eval-script-code-target.js +nested-block-import-catch-eval-script-code-target.js +nested-async-gen-await-instn-iee-err-ambiguous-import.js +nested-do-while-instn-iee-err-ambiguous-import.js +nested-while-import-catch-instn-iee-err-circular.js +nested-function-import-catch-instn-iee-err-circular.js +nested-do-while-instn-iee-err-circular.js +nested-while-import-catch-eval-script-code-target.js +nested-if-import-catch-instn-iee-err-ambiguous-import.js +nested-async-function-return-await-instn-iee-err-circular.js +nested-else-import-catch-instn-iee-err-ambiguous-import.js +nested-async-function-return-await-eval-script-code-target.js +top-level-import-catch-instn-iee-err-circular.js +nested-async-arrow-function-await-instn-iee-err-circular.js +nested-async-arrow-function-return-await-instn-iee-err-circular.js +nested-arrow-import-catch-instn-iee-err-circular.js +nested-async-gen-await-instn-iee-err-circular.js +nested-async-function-eval-script-code-target.js +nested-block-labeled-eval-script-code-target.js +nested-block-labeled-instn-iee-err-ambiguous-import.js +nested-arrow-import-catch-eval-script-code-target.js +nested-async-arrow-function-await-instn-iee-err-ambiguous-import.js +nested-if-import-catch-eval-script-code-target.js +top-level-import-catch-eval-script-code-target.js +nested-async-arrow-function-return-await-eval-script-code-target.js +nested-while-import-catch-instn-iee-err-ambiguous-import.js +nested-else-import-catch-instn-iee-err-circular.js +top-level-import-catch-instn-iee-err-ambiguous-import.js +nested-async-gen-return-await-eval-script-code-target.js +nested-async-gen-await-eval-script-code-target.js +nested-block-import-catch-instn-iee-err-circular.js +nested-if-import-catch-instn-iee-err-circular.js +nested-function-import-catch-instn-iee-err-ambiguous-import.js +nested-async-arrow-function-await-eval-script-code-target.js +nested-block-import-catch-instn-iee-err-ambiguous-import.js +nested-async-function-return-await-instn-iee-err-ambiguous-import.js +nested-async-function-instn-iee-err-circular.js +assignment-expression/await-identifier.js +nested-while-script-code-valid.js +nested-async-function-await-script-code-valid.js +top-level-script-code-valid.js +nested-async-arrow-function-await-script-code-valid.js +nested-function-return-script-code-valid.js +nested-else-script-code-valid.js +nested-if-script-code-valid.js +nested-async-function-return-await-script-code-valid.js +nested-arrow-assignment-expression-script-code-valid.js +nested-block-labeled-script-code-valid.js +nested-async-gen-await-script-code-valid.js +nested-function-script-code-valid.js +nested-async-function-script-code-valid.js +nested-else-braceless-script-code-valid.js +nested-do-while-script-code-valid.js +nested-async-arrow-function-return-await-script-code-valid.js +nested-arrow-script-code-valid.js +nested-block-script-code-valid.js +nested-if-braceless-script-code-valid.js +script-code_FIXTURE.js \ No newline at end of file diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index ce5bce3555..9ab30855cd 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -175,6 +175,7 @@ class ArkProgram(): self.ark_frontend_binary = ARK_FRONTEND_BINARY self.module_list = [] self.dynamicImport_list = [] + self.not_module_list = [] self.js_file = "" self.module = False self.abc_file = "" @@ -220,6 +221,8 @@ class ArkProgram(): self.dynamicImport_list = DYNAMIC_IMPORT_LIST + self.not_module_list = NOT_MODULE_LIST + self.js_file = self.args.js_file self.arch = self.args.ark_arch @@ -228,8 +231,8 @@ class ArkProgram(): def gen_dependency_abc(self, dependency): cmd_args = [] - output_file = os.path.splitext(os.path.join(BASE_OUT_DIR, - os.path.split(dependency)[1]))[0] + temp_file = dependency.replace(DATA_DIR, BASE_OUT_DIR) + output_file = os.path.splitext(temp_file)[0] output_abc = f"{output_file}.abc" frontend_tool = self.ark_frontend_binary merge_abc_binary = self.args.merge_abc_binary @@ -238,11 +241,14 @@ class ArkProgram(): if merge_abc_mode != "0": proto_bin_file = output_file + "." + PROTO_BIN_SUFFIX cmd_args = [frontend_tool, dependency, '--outputProto', - proto_bin_file, '--module', '--merge-abc'] + proto_bin_file, '--merge-abc'] else: # for testing no-record-name abc - cmd_args = [frontend_tool, dependency, '--output', output_abc, - '--module'] + cmd_args = [frontend_tool, dependency, '--output', output_abc] + file_name = os.path.basename(dependency) + if file_name not in self.not_module_list: + mod_opt_index = 4 + cmd_args.insert(mod_opt_index, "--module") proc = subprocess.Popen(cmd_args) proc.wait() @@ -292,6 +298,8 @@ class ArkProgram(): js_file = self.js_file file_name_pre = os.path.splitext(js_file)[0] file_name = os.path.basename(js_file) + file_name_std = file_name.replace("-strict.js", ".js") + file_dir = os.path.split(js_file)[0] out_file = f"{file_name_pre}.abc" proto_bin_file = file_name_pre + "." + PROTO_BIN_SUFFIX self.abc_file = out_file @@ -303,10 +311,9 @@ class ArkProgram(): dependencies = [] # pre-generate the dependencies' abc when ark_frontend is [es2panda] - if (file_name in self.module_list or file_name in self.dynamicImport_list): - search_dir = "language/module-code" if file_name in self.module_list \ - else "language/expressions/dynamic-import" - dependencies = collect_module_dependencies(js_file, os.path.join(TEST_FULL_DIR, search_dir), []) + if (file_name_std in self.module_list or file_name_std in self.dynamicImport_list): + search_dir = os.path.dirname(js_file.replace(BASE_OUT_DIR, DATA_DIR)) + dependencies = collect_module_dependencies(js_file, search_dir, []) if (self.ark_frontend == ARK_FRONTEND_LIST[1]): for dependency in list(set(dependencies)): self.gen_dependency_abc(dependency) @@ -320,7 +327,7 @@ class ArkProgram(): # for testing no-record-name abc cmd_args = ['node', '--expose-gc', frontend_tool, js_file, '-o', out_file] - if file_name in self.module_list: + if file_name_std in self.module_list or file_name_std in self.dynamicImport_list: cmd_args.insert(mod_opt_index, "-m") self.module = True elif self.ark_frontend == ARK_FRONTEND_LIST[1]: @@ -336,8 +343,9 @@ class ArkProgram(): '--function-threads=' + str(self.es2abc_thread_count), '--output', out_file, js_file] - if file_name in self.module_list: - cmd_args.insert(mod_opt_index, "--module") + if file_name_std in self.module_list or file_name_std in self.dynamicImport_list: + if file_name_std not in self.not_module_list: + cmd_args.insert(mod_opt_index, "--module") self.module = True # get abc file list from import statement if merge_abc_mode == "0" and self.ark_aot and self.module: @@ -427,7 +435,10 @@ class ArkProgram(): os.environ["LD_LIBRARY_PATH"] = self.libs_dir else : sys.exit(f" test262 on {platform.system()} not supported"); + file_name = os.path.basename(self.js_file) file_name_pre = os.path.splitext(self.js_file)[0] + file_name_std = file_name.replace("-strict.js", ".js") + file_name_pre = file_name_pre.replace(os.path.splitext(file_name)[0], os.path.splitext(file_name_std)[0]) cmd_args = [] if self.arch == ARK_ARCH_LIST[1]: qemu_tool = "qemu-aarch64" diff --git a/test262/utils.py b/test262/utils.py index 6d38ded768..e43de78830 100755 --- a/test262/utils.py +++ b/test262/utils.py @@ -172,7 +172,7 @@ def collect_module_dependencies(file, directory, traversedDependencies): traversedDependencies.append(file) with open(file, 'r', encoding='utf-8') as f: content = f.read() - module_import_list = re.findall(r'(import|from)(?:\s*)\(?(\'(\.\/.*)\'|"(\.\/.*)")\)?', content) + module_import_list = re.findall(r'(export|import|from)(?:\s*)\(?(\'(\.\/.*)\'|"(\.\/.*)")\)?', content) for result in list(set(module_import_list)): specifier = result[2] if len(result[2]) != 0 else result[3] -- Gitee From b4eb25621ce8a74ba1a05a9e1da7d157f3c9ddd3 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 2/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/es2abc_skip_tests.json | 112 +++++++++++------------ test262/run_sunspider.py | 81 ++++++++++++++--- test262/run_test262.py | 8 +- test262/ts2abc_skip_tests.json | 156 +++++++++++++++++++++++++++++++++ 4 files changed, 279 insertions(+), 78 deletions(-) diff --git a/test262/es2abc_skip_tests.json b/test262/es2abc_skip_tests.json index eba861ef2e..5b071eca4e 100644 --- a/test262/es2abc_skip_tests.json +++ b/test262/es2abc_skip_tests.json @@ -85,30 +85,25 @@ ] }, { - "reason" : "Dynamic Import failed testcases : ResolveFilenameFromNative:185 resolve absolute path fail", - "files": [ - "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-typeerror.js", - "language/expressions/dynamic-import/catch/nested-async-gen-return-await-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-do-while-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-async-function-file-does-not-exist.js" - ] - }, - { - "reason" : "Dynamic Import failed testcases :SyntaxError 'await' is not permitted as an identifier in module code", + "reason" : "Dynamic Import failed testcases :Can not get module", "files": [ - "language/expressions/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js", - "language/expressions/dynamic-import/assignment-expression/await-identifier-strict.js" + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-script-code-target.js" ] }, { @@ -201,57 +196,48 @@ ] }, { - "reason" : "Dynamic Import failed testcases :Can not get module", + "reason" : "ecmascript", "files": [ - "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/top-level-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-block-labeled-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-async-function-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-async-gen-await-file-does-not-exist.js", - "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-async-function-await-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-script-code-target.js", - "language/expressions/dynamic-import/catch/nested-do-while-eval-script-code-target.js" + "language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-found-init.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-do-while-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/assignment-expression/call-expr-expr.js", + "language/expressions/dynamic-import/assignment-expression/await-identifier.js", + "language/expressions/dynamic-import/assignment-expression/lhs-eq-assign-expr.js", + "language/expressions/dynamic-import/namespace/await-ns-get-own-property-str-found-init.js" ] }, { - "reason" : "Dynamic Import failed testcases", + "reason" : "Expected no error, but got ", "files": [ - "language/expressions/dynamic-import/assignment-expression/await-identifier.js", - "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js", "language/expressions/dynamic-import/catch/nested-async-function-await-specifier-tostring-abrupt-rejects.js", "language/expressions/dynamic-import/catch/nested-async-function-return-await-specifier-tostring-abrupt-rejects.js", - "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js", - "language/expressions/dynamic-import/catch/nested-async-function-specifier-tostring-abrupt-rejects.js", - "language/expressions/dynamic-import/catch/nested-async-gen-await-specifier-tostring-abrupt-rejects.js", - "language/expressions/dynamic-import/catch/nested-async-gen-return-await-specifier-tostring-abrupt-rejects.js", - "language/expressions/dynamic-import/namespace/await-ns-Symbol-toStringTag.js", - "language/expressions/dynamic-import/namespace/await-ns-define-own-property.js", - "language/expressions/dynamic-import/namespace/promise-then-ns-Symbol-toStringTag.js", - "language/expressions/dynamic-import/namespace/promise-then-ns-define-own-property.js", - "language/expressions/dynamic-import/assignment-expression/ternary.js", - "language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-not-found.js", - "language/expressions/dynamic-import/namespace/promise-then-ns-prevent-extensions-object.js", - "language/expressions/dynamic-import/usage/nested-async-function-return-await-returns-thenable.js", - "language/expressions/dynamic-import/namespace/await-ns-set-prototype-of.js", - "language/expressions/dynamic-import/syntax/valid/nested-block-script-code-valid.js", - "language/expressions/dynamic-import/namespace/await-ns-has-property-str-not-found.js", - "language/expressions/dynamic-import/namespace/await-ns-prop-descs.js", - "language/expressions/dynamic-import/returns-promise.js" + "language/expressions/dynamic-import/catch/nested-async-function-specifier-tostring-abrupt-rejects.js" ] }, { - "reason" : "module-code failed testcases", + "reason" : "Expected SameValue(XXXX, XXXX) to be true", "files": [ - "language/module-code/instn-iee-err-circular-as.js" + "language/expressions/dynamic-import/namespace/promise-then-ns-Symbol-toStringTag.js", + "language/expressions/dynamic-import/namespace/promise-then-ns-define-own-property.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/namespace/await-ns-Symbol-toStringTag.js", + "language/expressions/dynamic-import/namespace/await-ns-define-own-property.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js" ] } ] diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index 9ab30855cd..1236c344c4 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -231,12 +231,12 @@ class ArkProgram(): def gen_dependency_abc(self, dependency): cmd_args = [] - temp_file = dependency.replace(DATA_DIR, BASE_OUT_DIR) - output_file = os.path.splitext(temp_file)[0] + output_file = os.path.splitext(dependency.replace(DATA_DIR, BASE_OUT_DIR))[0] output_abc = f"{output_file}.abc" frontend_tool = self.ark_frontend_binary merge_abc_binary = self.args.merge_abc_binary merge_abc_mode = self.merge_abc_mode + mod_opt_compile = 0 if merge_abc_mode != "0": proto_bin_file = output_file + "." + PROTO_BIN_SUFFIX @@ -245,13 +245,41 @@ class ArkProgram(): else: # for testing no-record-name abc cmd_args = [frontend_tool, dependency, '--output', output_abc] - file_name = os.path.basename(dependency) - if file_name not in self.not_module_list: + + with open(dependency, 'r', encoding='utf-8') as f: + context_file = f.read() + script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) + module_import_list = re.findall(r'(export)', context_file) + for script_improt in list(set(script_import_list)): + if len(script_improt[1]) != 0: + mod_opt_compile = 1 + for module_import in list(set(module_import_list)): + if len(module_import[0]) != 0: + mod_opt_compile = 0 + + if mod_opt_compile == 0: mod_opt_index = 4 cmd_args.insert(mod_opt_index, "--module") proc = subprocess.Popen(cmd_args) proc.wait() + def gen_apart_abc(self, dependencies, retcode): + merge_abc_binary = self.args.merge_abc_binary + for dependency in list(set(dependencies)): + cmd_args = [] + output_file = os.path.splitext(dependency.replace(DATA_DIR, BASE_OUT_DIR))[0] + output_abc = os.path.basename(f"{output_file}.abc") + file_dir = os.path.split(self.js_file)[0] + dependency_file_prefix = os.path.basename(dependency)[:-3] + dependency_bin_file = file_dir + "/" + \ + ".".join([dependency_file_prefix, + PROTO_BIN_SUFFIX]) + cmd_args = [merge_abc_binary, '--input', dependency_bin_file, + '--suffix', PROTO_BIN_SUFFIX, '--outputFilePath', + file_dir, '--output', output_abc] + retcode = exec_command(cmd_args) + return retcode + def gen_merged_abc(self, dependencies, file_name_pre, proto_bin_file, retcode): merge_abc_binary = self.args.merge_abc_binary file_dir = os.path.split(self.js_file)[0] @@ -304,20 +332,33 @@ class ArkProgram(): proto_bin_file = file_name_pre + "." + PROTO_BIN_SUFFIX self.abc_file = out_file mod_opt_index = 0 + mod_opt_compile = 0 cmd_args = [] dependency_cmd_args = [] frontend_tool = self.ark_frontend_binary merge_abc_mode = self.merge_abc_mode dependencies = [] + merge_abc_binary = self.args.merge_abc_binary # pre-generate the dependencies' abc when ark_frontend is [es2panda] - if (file_name_std in self.module_list or file_name_std in self.dynamicImport_list): + if (file_name in self.module_list or file_name in self.dynamicImport_list): search_dir = os.path.dirname(js_file.replace(BASE_OUT_DIR, DATA_DIR)) dependencies = collect_module_dependencies(js_file, search_dir, []) if (self.ark_frontend == ARK_FRONTEND_LIST[1]): for dependency in list(set(dependencies)): self.gen_dependency_abc(dependency) + with open(js_file, 'r', encoding='utf-8') as f: + context_file = f.read() + script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) + module_import_list = re.findall(r'(export)', context_file) + for script_improt in list(set(script_import_list)): + if len(script_improt[1]) != 0: + mod_opt_compile = 1 + for module_import in list(set(module_import_list)): + if len(module_import[0]) != 0: + mod_opt_compile = 0 + if self.ark_frontend == ARK_FRONTEND_LIST[0]: mod_opt_index = 3 if merge_abc_mode != "0": @@ -327,7 +368,7 @@ class ArkProgram(): # for testing no-record-name abc cmd_args = ['node', '--expose-gc', frontend_tool, js_file, '-o', out_file] - if file_name_std in self.module_list or file_name_std in self.dynamicImport_list: + if file_name in self.module_list or file_name in self.dynamicImport_list: cmd_args.insert(mod_opt_index, "-m") self.module = True elif self.ark_frontend == ARK_FRONTEND_LIST[1]: @@ -343,9 +384,8 @@ class ArkProgram(): '--function-threads=' + str(self.es2abc_thread_count), '--output', out_file, js_file] - if file_name_std in self.module_list or file_name_std in self.dynamicImport_list: - if file_name_std not in self.not_module_list: - cmd_args.insert(mod_opt_index, "--module") + if (file_name in self.module_list or file_name in self.dynamicImport_list) and mod_opt_compile == 0: + cmd_args.insert(mod_opt_index, "--module") self.module = True # get abc file list from import statement if merge_abc_mode == "0" and self.ark_aot and self.module: @@ -364,9 +404,28 @@ class ArkProgram(): retcode = exec_command(cmd_args) self.abc_cmd = cmd_args + if "dynamic-import" in js_file: + file_dir = os.path.split(self.js_file)[0] + proto_abc_file = ".".join([os.path.splitext(os.path.basename(self.js_file))[0], "abc"]) + cmd_args = [merge_abc_binary, '--input', proto_bin_file, + '--suffix', PROTO_BIN_SUFFIX, '--outputFilePath', + file_dir, '--output', proto_abc_file] + retcode = exec_command(cmd_args) + self.abc_cmd = cmd_args + + if len(dependencies) == 0 and "dynamic-import" in js_file: + return retcode + if merge_abc_mode != "0": - retcode = self.gen_merged_abc(dependencies, file_name_pre, - proto_bin_file, retcode) + if "dynamic-import" in js_file: + if file_name in self.module_list: + retcode = self.gen_merged_abc(dependencies, file_name_pre, + proto_bin_file, retcode) + else: + retcode = self.gen_apart_abc(dependencies, retcode) + else: + retcode = self.gen_merged_abc(dependencies, file_name_pre, + proto_bin_file, retcode) return retcode diff --git a/test262/run_test262.py b/test262/run_test262.py index 39569b3c9f..9b922f2c93 100755 --- a/test262/run_test262.py +++ b/test262/run_test262.py @@ -413,9 +413,9 @@ class TestPrepare(): mkdstdir(file, src_dir, self.out_dir) def run(self): - self.prepare_test262_code() - self.prepare_clean_data() - self.patching_the_plugin() + # self.prepare_test262_code() + # self.prepare_clean_data() + # self.patching_the_plugin() self.prepare_args_es51_es2021() self.prepare_out_dir() self.prepare_args_testdir() @@ -547,7 +547,7 @@ def run_test262_test(args): threads = get_threads(args) timeout = get_timeout(args, threads) - test_cmd = ["node", TEST262_RUNNER_SCRIPT] + test_cmd = ["node", TEST262_RUNNER_SCRIPT] # node run.js --hostType=xxx --hostPath=xxx test_cmd.append(f"--hostType={host_type}") test_cmd.append(f"--hostPath={host_path}") if host_args != "": diff --git a/test262/ts2abc_skip_tests.json b/test262/ts2abc_skip_tests.json index 5b0f3558ed..1a454736fc 100644 --- a/test262/ts2abc_skip_tests.json +++ b/test262/ts2abc_skip_tests.json @@ -177,5 +177,161 @@ "language/expressions/optional-chaining/update-expression-postfix.js", "language/expressions/optional-chaining/update-expression-prefix.js" ] + }, + { + "reason" : "Dynamic Import failed testcases :Can not get module", + "files": [ + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-script-code-target.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-script-code-target.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :SyntaxError", + "files": [ + "language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-do-while-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-function-instn-iee-err-ambiguous-import.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-circular.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-instn-iee-err-ambiguous-import.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :TypeError", + "files": [ + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-do-while-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-typeerror.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-specifier-tostring-abrupt-rejects.js" + ] + }, + { + "reason" : "Dynamic Import failed testcases :URIError", + "files": [ + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-do-while-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-function-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-eval-rqstd-abrupt-urierror.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-eval-rqstd-abrupt-urierror.js" + ] + }, + { + "reason" : "ecmascript", + "files": [ + "language/expressions/dynamic-import/namespace/promise-then-ns-has-property-str-found-init.js", + "language/expressions/dynamic-import/catch/top-level-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-while-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-function-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-if-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-do-while-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-else-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-block-labeled-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-function-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-file-does-not-exist.js", + "language/expressions/dynamic-import/catch/nested-arrow-import-catch-file-does-not-exist.js", + "language/expressions/dynamic-import/assignment-expression/call-expr-expr.js", + "language/expressions/dynamic-import/assignment-expression/await-identifier.js", + "language/expressions/dynamic-import/assignment-expression/lhs-eq-assign-expr.js", + "language/expressions/dynamic-import/namespace/await-ns-get-own-property-str-found-init.js" + ] + }, + { + "reason" : "Expected no error, but got ", + "files": [ + "language/expressions/dynamic-import/catch/nested-async-function-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-function-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-function-specifier-tostring-abrupt-rejects.js" + ] + }, + { + "reason" : "Expected SameValue(XXXX, XXXX) to be true", + "files": [ + "language/expressions/dynamic-import/namespace/promise-then-ns-Symbol-toStringTag.js", + "language/expressions/dynamic-import/namespace/promise-then-ns-define-own-property.js", + "language/expressions/dynamic-import/catch/nested-async-gen-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-gen-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/namespace/await-ns-Symbol-toStringTag.js", + "language/expressions/dynamic-import/namespace/await-ns-define-own-property.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js", + "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js" + ] } ] -- Gitee From b0a896a5d076b0de0aea530ee874a56ae28da743 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 3/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/config.py | 5 +-- test262/not_module_tests.txt | 85 ------------------------------------ test262/run_sunspider.py | 75 +++++++++++++++++++++++-------- 3 files changed, 57 insertions(+), 108 deletions(-) delete mode 100644 test262/not_module_tests.txt diff --git a/test262/config.py b/test262/config.py index 08684fb0a8..ab28e63a32 100755 --- a/test262/config.py +++ b/test262/config.py @@ -53,7 +53,7 @@ DEFAULT_HOST_PATH = "python3" DEFAULT_THREADS = min(cpu_count(), 32) DEFAULT_OTHER_ARGS = "--saveCompiledTests" TEST262_RUNNER_SCRIPT = os.path.join(HARNESS_DIR, "bin", "run.js") -DEFAULT_TIMEOUT = 60000 +DEFAULT_TIMEOUT = 120000 ES5_LIST_FILE = os.path.join("test262", "es5_tests.txt") ES2015_LIST_FILE = os.path.join("test262", "es2015_tests.txt") @@ -62,13 +62,10 @@ ES2021_LIST_FILE = os.path.join("test262", "es2021_tests.txt") CI_LIST_FILE = os.path.join("test262", "CI_tests.txt") MODULE_LIST = [] DYNAMIC_IMPORT_LIST = [] -NOT_MODULE_LIST = [] with open(os.path.join("test262", "module_tests.txt")) as m_file: MODULE_LIST = m_file.read().splitlines() with open(os.path.join("test262", "dynamicImport_tests.txt")) as d_file: DYNAMIC_IMPORT_LIST = d_file.read().splitlines() -with open(os.path.join("test262", "not_module_tests.txt")) as n_file: - NOT_MODULE_LIST = n_file.read().splitlines() TEST262_GIT_HASH = "9ca13b12728b7e0089c7eb03fa2bd17f8abe297f" HARNESS_GIT_HASH = "9c499f028eb24e67781435c0bb442e00343eb39d" diff --git a/test262/not_module_tests.txt b/test262/not_module_tests.txt deleted file mode 100644 index f90a946a3b..0000000000 --- a/test262/not_module_tests.txt +++ /dev/null @@ -1,85 +0,0 @@ -nested-arrow-import-then-eval-script-code-host-resolves-module-code.js -nested-async-function-eval-script-code-host-resolves-module-code.js -nested-while-import-then-eval-script-code-host-resolves-module-code.js -nested-block-import-then-eval-script-code-host-resolves-module-code.js -nested-function-import-then-eval-script-code-host-resolves-module-code.js -nested-if-import-then-eval-script-code-host-resolves-module-code.js -nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code.js -top-level-import-then-eval-script-code-host-resolves-module-code.js -nested-do-while-eval-script-code-host-resolves-module-code.js -nested-async-arrow-function-await-eval-script-code-host-resolves-module-code.js -syntax-nested-block-labeled-eval-script-code-host-resolves-module-code.js -nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code.js -nested-else-import-then-eval-script-code-host-resolves-module-code.js -nested-async-function-return-await-eval-script-code-host-resolves-module-code.js -nested-if-braceless-eval-script-code-host-resolves-module-code.js -nested-async-function-await-eval-script-code-host-resolves-module-code.js -nested-async-gen-return-await-instn-iee-err-ambiguous-import.js -nested-async-gen-return-await-instn-iee-err-circular.js -nested-async-function-await-instn-iee-err-circular.js -nested-async-function-instn-iee-err-ambiguous-import.js -nested-block-labeled-instn-iee-err-circular.js -nested-async-arrow-function-return-await-instn-iee-err-ambiguous-import.js -nested-async-function-await-instn-iee-err-ambiguous-import.js -nested-do-while-eval-script-code-target.js -nested-else-import-catch-eval-script-code-target.js -nested-arrow-import-catch-instn-iee-err-ambiguous-import.js -nested-async-function-await-eval-script-code-target.js -nested-function-import-catch-eval-script-code-target.js -nested-block-import-catch-eval-script-code-target.js -nested-async-gen-await-instn-iee-err-ambiguous-import.js -nested-do-while-instn-iee-err-ambiguous-import.js -nested-while-import-catch-instn-iee-err-circular.js -nested-function-import-catch-instn-iee-err-circular.js -nested-do-while-instn-iee-err-circular.js -nested-while-import-catch-eval-script-code-target.js -nested-if-import-catch-instn-iee-err-ambiguous-import.js -nested-async-function-return-await-instn-iee-err-circular.js -nested-else-import-catch-instn-iee-err-ambiguous-import.js -nested-async-function-return-await-eval-script-code-target.js -top-level-import-catch-instn-iee-err-circular.js -nested-async-arrow-function-await-instn-iee-err-circular.js -nested-async-arrow-function-return-await-instn-iee-err-circular.js -nested-arrow-import-catch-instn-iee-err-circular.js -nested-async-gen-await-instn-iee-err-circular.js -nested-async-function-eval-script-code-target.js -nested-block-labeled-eval-script-code-target.js -nested-block-labeled-instn-iee-err-ambiguous-import.js -nested-arrow-import-catch-eval-script-code-target.js -nested-async-arrow-function-await-instn-iee-err-ambiguous-import.js -nested-if-import-catch-eval-script-code-target.js -top-level-import-catch-eval-script-code-target.js -nested-async-arrow-function-return-await-eval-script-code-target.js -nested-while-import-catch-instn-iee-err-ambiguous-import.js -nested-else-import-catch-instn-iee-err-circular.js -top-level-import-catch-instn-iee-err-ambiguous-import.js -nested-async-gen-return-await-eval-script-code-target.js -nested-async-gen-await-eval-script-code-target.js -nested-block-import-catch-instn-iee-err-circular.js -nested-if-import-catch-instn-iee-err-circular.js -nested-function-import-catch-instn-iee-err-ambiguous-import.js -nested-async-arrow-function-await-eval-script-code-target.js -nested-block-import-catch-instn-iee-err-ambiguous-import.js -nested-async-function-return-await-instn-iee-err-ambiguous-import.js -nested-async-function-instn-iee-err-circular.js -assignment-expression/await-identifier.js -nested-while-script-code-valid.js -nested-async-function-await-script-code-valid.js -top-level-script-code-valid.js -nested-async-arrow-function-await-script-code-valid.js -nested-function-return-script-code-valid.js -nested-else-script-code-valid.js -nested-if-script-code-valid.js -nested-async-function-return-await-script-code-valid.js -nested-arrow-assignment-expression-script-code-valid.js -nested-block-labeled-script-code-valid.js -nested-async-gen-await-script-code-valid.js -nested-function-script-code-valid.js -nested-async-function-script-code-valid.js -nested-else-braceless-script-code-valid.js -nested-do-while-script-code-valid.js -nested-async-arrow-function-return-await-script-code-valid.js -nested-arrow-script-code-valid.js -nested-block-script-code-valid.js -nested-if-braceless-script-code-valid.js -script-code_FIXTURE.js \ No newline at end of file diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index 1236c344c4..76af7dc17f 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -175,7 +175,6 @@ class ArkProgram(): self.ark_frontend_binary = ARK_FRONTEND_BINARY self.module_list = [] self.dynamicImport_list = [] - self.not_module_list = [] self.js_file = "" self.module = False self.abc_file = "" @@ -221,8 +220,6 @@ class ArkProgram(): self.dynamicImport_list = DYNAMIC_IMPORT_LIST - self.not_module_list = NOT_MODULE_LIST - self.js_file = self.args.js_file self.arch = self.args.ark_arch @@ -263,6 +260,33 @@ class ArkProgram(): proc = subprocess.Popen(cmd_args) proc.wait() + def gen_ts_abc(self, dependency): + cmd_args = [] + output_file = os.path.splitext(dependency.replace(DATA_DIR, BASE_OUT_DIR))[0] + output_abc = f"{output_file}.abc" + frontend_tool = self.ark_frontend_binary + mod_opt_compile = 0 + + cmd_args = ['node', '--expose-gc', frontend_tool, dependency, + '-o', output_abc] + + with open(dependency, 'r', encoding='utf-8') as f: + context_file = f.read() + script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) + module_import_list = re.findall(r'(export)', context_file) + for script_improt in list(set(script_import_list)): + if len(script_improt[1]) != 0: + mod_opt_compile = 1 + for module_import in list(set(module_import_list)): + if len(module_import[0]) != 0: + mod_opt_compile = 0 + + if mod_opt_compile == 0: + mod_opt_index = 6 + cmd_args.insert(mod_opt_index, "--modules") + proc = subprocess.Popen(cmd_args) + proc.wait() + def gen_apart_abc(self, dependencies, retcode): merge_abc_binary = self.args.merge_abc_binary for dependency in list(set(dependencies)): @@ -276,7 +300,7 @@ class ArkProgram(): PROTO_BIN_SUFFIX]) cmd_args = [merge_abc_binary, '--input', dependency_bin_file, '--suffix', PROTO_BIN_SUFFIX, '--outputFilePath', - file_dir, '--output', output_abc] + file_dir, '--output', output_abc] retcode = exec_command(cmd_args) return retcode @@ -326,7 +350,6 @@ class ArkProgram(): js_file = self.js_file file_name_pre = os.path.splitext(js_file)[0] file_name = os.path.basename(js_file) - file_name_std = file_name.replace("-strict.js", ".js") file_dir = os.path.split(js_file)[0] out_file = f"{file_name_pre}.abc" proto_bin_file = file_name_pre + "." + PROTO_BIN_SUFFIX @@ -347,6 +370,20 @@ class ArkProgram(): if (self.ark_frontend == ARK_FRONTEND_LIST[1]): for dependency in list(set(dependencies)): self.gen_dependency_abc(dependency) + elif (self.ark_frontend == ARK_FRONTEND_LIST[0]): + for dependency in list(set(dependencies)): + self.gen_ts_abc(dependency) + + with open(js_file, 'r', encoding='utf-8') as f: + context_file = f.read() + script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) + module_import_list = re.findall(r'(export)', context_file) + for script_improt in list(set(script_import_list)): + if len(script_improt[1]) != 0: + mod_opt_compile = 1 + for module_import in list(set(module_import_list)): + if len(module_import[0]) != 0: + mod_opt_compile = 0 with open(js_file, 'r', encoding='utf-8') as f: context_file = f.read() @@ -361,14 +398,16 @@ class ArkProgram(): if self.ark_frontend == ARK_FRONTEND_LIST[0]: mod_opt_index = 3 + if "dynamic-import" in js_file: + merge_abc_mode = "0" if merge_abc_mode != "0": cmd_args = ['node', '--expose-gc', frontend_tool, js_file, '--output-proto', '--merge-abc'] else: # for testing no-record-name abc - cmd_args = ['node', '--expose-gc', frontend_tool, - js_file, '-o', out_file] - if file_name in self.module_list or file_name in self.dynamicImport_list: + cmd_args = ['node', '--expose-gc', frontend_tool, js_file, + '-o', out_file] + if (file_name in self.module_list or file_name in self.dynamicImport_list) and mod_opt_compile == 0: cmd_args.insert(mod_opt_index, "-m") self.module = True elif self.ark_frontend == ARK_FRONTEND_LIST[1]: @@ -404,14 +443,15 @@ class ArkProgram(): retcode = exec_command(cmd_args) self.abc_cmd = cmd_args - if "dynamic-import" in js_file: - file_dir = os.path.split(self.js_file)[0] - proto_abc_file = ".".join([os.path.splitext(os.path.basename(self.js_file))[0], "abc"]) - cmd_args = [merge_abc_binary, '--input', proto_bin_file, - '--suffix', PROTO_BIN_SUFFIX, '--outputFilePath', - file_dir, '--output', proto_abc_file] - retcode = exec_command(cmd_args) - self.abc_cmd = cmd_args + if self.ark_frontend == ARK_FRONTEND_LIST[1]: + if "dynamic-import" in js_file: + file_dir = os.path.split(self.js_file)[0] + proto_abc_file = ".".join([os.path.splitext(os.path.basename(self.js_file))[0], "abc"]) + cmd_args = [merge_abc_binary, '--input', proto_bin_file, + '--suffix', PROTO_BIN_SUFFIX, '--outputFilePath', + file_dir, '--output', proto_abc_file] + retcode = exec_command(cmd_args) + self.abc_cmd = cmd_args if len(dependencies) == 0 and "dynamic-import" in js_file: return retcode @@ -494,10 +534,7 @@ class ArkProgram(): os.environ["LD_LIBRARY_PATH"] = self.libs_dir else : sys.exit(f" test262 on {platform.system()} not supported"); - file_name = os.path.basename(self.js_file) file_name_pre = os.path.splitext(self.js_file)[0] - file_name_std = file_name.replace("-strict.js", ".js") - file_name_pre = file_name_pre.replace(os.path.splitext(file_name)[0], os.path.splitext(file_name_std)[0]) cmd_args = [] if self.arch == ARK_ARCH_LIST[1]: qemu_tool = "qemu-aarch64" -- Gitee From d916e58c27480f8bf9223c6a33135ab10dad1cb2 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 4/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/eshost.patch | 188 ++++------------------------------------- test262/run_test262.py | 8 +- 2 files changed, 22 insertions(+), 174 deletions(-) diff --git a/test262/eshost.patch b/test262/eshost.patch index a079d718de..e25e92f903 100644 --- a/test262/eshost.patch +++ b/test262/eshost.patch @@ -1,16 +1,3 @@ -From f9fc0c21475bc5efb6f53d33d01fe793c0ec35de Mon Sep 17 00:00:00 2001 -Date: Tue, 18 Oct 2022 20:08:54 +0800 -Subject: [PATCH] fix test - ---- - lib/Agent.js | 1 + - lib/ConsoleAgent.js | 41 +++++++++++++-------- - lib/agents/panda.js | 88 +++++++++++++++++++++++++++++++++++++++++++++ - runtimes/panda.js | 44 +++++++++++++++++++++++ - 4 files changed, 160 insertions(+), 14 deletions(-) - create mode 100644 lib/agents/panda.js - create mode 100644 runtimes/panda.js - diff --git a/lib/Agent.js b/lib/Agent.js index edcdf0e..7e655c5 100644 --- a/lib/Agent.js @@ -24,7 +11,7 @@ index edcdf0e..7e655c5 100644 if (typeof this.args === 'string') { this.args = this.args.includes(' ') ? diff --git a/lib/ConsoleAgent.js b/lib/ConsoleAgent.js -index 947c1db..29cf9cf 100644 +index 947c1db..18de7a3 100644 --- a/lib/ConsoleAgent.js +++ b/lib/ConsoleAgent.js @@ -19,7 +19,7 @@ const { @@ -36,19 +23,28 @@ index 947c1db..29cf9cf 100644 const now = Date.now(); return `f-${now}-${process.pid}-${(Math.random() * 0x100000000 + 1).toString(36)}.js`; } -@@ -47,9 +47,23 @@ class ConsoleAgent extends Agent { +@@ -47,9 +47,32 @@ class ConsoleAgent extends Agent { } } + genTempFileName(code){ + let file = code.file; -+ let scenario = code.scenario === 'strict mode' ? 'strict' : code.scenario; + let tmps = file.split(this.test262Dir); + let tempfile = path.join(this.out,tmps[1]); + tempfile = tempfile.substring(0,tempfile.indexOf('.js')); -+ tempfile = path.normalize( -+ `${tempfile}-${scenario}.js` -+ ); ++ ++ if (file.includes("built-ins/Set/set.js")) { ++ let scenario = code.scenario === 'strict mode' ? 'strict' : code.scenario; ++ tempfile = path.normalize( ++ `${tempfile}-${scenario}.js` ++ ); ++ } else { ++ let scenario = code.scenario === 'strict mode' ? '' : code.scenario; ++ tempfile = path.normalize( ++ `${tempfile}${scenario}.js` ++ ); ++ } ++ + return tempfile; + } + @@ -62,7 +58,7 @@ index 947c1db..29cf9cf 100644 let isExpectingRawSource = false; let hasDependencies = false; -@@ -57,10 +71,10 @@ class ConsoleAgent extends Agent { +@@ -57,10 +80,10 @@ class ConsoleAgent extends Agent { const sources = []; const dependencies = []; @@ -77,7 +73,7 @@ index 947c1db..29cf9cf 100644 // When evalScript is called with a test262-stream test record: if (typeof code === 'object' && code.contents) { -@@ -84,12 +98,12 @@ class ConsoleAgent extends Agent { +@@ -84,12 +107,12 @@ class ConsoleAgent extends Agent { hasDependencies = false; } @@ -96,7 +92,7 @@ index 947c1db..29cf9cf 100644 // The test record in "code" is no longer needed and // all further operations expect the "code" argument to be -@@ -161,7 +175,6 @@ class ConsoleAgent extends Agent { +@@ -161,7 +184,6 @@ class ConsoleAgent extends Agent { sources.forEach(({0: file}) => fs.unlink(file, () => { /* ignore */ })); const result = this.normalizeResult({ stderr, stdout }); @@ -104,151 +100,3 @@ index 947c1db..29cf9cf 100644 result.error = this.parseError(result.stderr); return result; -diff --git a/lib/agents/panda.js b/lib/agents/panda.js -new file mode 100644 -index 0000000..ab22b47 ---- /dev/null -+++ b/lib/agents/panda.js -@@ -0,0 +1,88 @@ -+'use strict'; -+ -+const fs = require('fs'); -+const runtimePath = require('../runtime-path'); -+const ConsoleAgent = require('../ConsoleAgent'); -+ -+const errorRe = /[(](\d+),(\d+)[)]: (.*)/; -+const errorRe1 = /^(\w+): (.*)$/m; -+// const errorRe2 = /^(?:(\w+): (.*))|(?:(\w+))$/m; -+const errorRe2 = /(\w+): (\w+): (.*)$/m; -+ -+function parseSyntaxError(syntaxErrorMessage) { -+ const matches = syntaxErrorMessage.match(); -+ if (matches && matches.length) { -+ return { -+ message: matches[3], -+ lineNumber: Number(matches[1]), -+ columnNumber: Number(matches[2]) -+ }; -+ } -+ return null; -+} -+ -+class PandaAgent extends ConsoleAgent{ -+ constructor(options) { -+ super(options); -+ } -+ -+ createChildProcess(args) { -+ let js_file = args[0] -+ args = [] -+ args.unshift(`--js-file=${js_file}`) -+ return super.createChildProcess(args); -+ } -+ -+ evalScript(code, options = {}) { -+ return super.evalScript(code, options); -+ } -+ -+ parseError(str) { -+ let match = str.match(errorRe1); -+ if (match) { -+ return { -+ name: match[1], -+ message: match[2], -+ stack: [], -+ }; -+ } else { -+ // Syntax errors don't have nice error messages... -+ let error = null; -+ let errors = str.match(/[(](\d+),(\d+)[)]: (.*)/gm); -+ -+ if (errors && errors.length) { -+ error = { -+ name: 'SyntaxError', -+ message: errors[0], -+ stack: [] -+ }; -+ -+ const stack = parseSyntaxError(errors[0]); -+ -+ if (stack) { -+ error.stack.push(stack); -+ error.message = stack.message; -+ } -+ } -+ -+ if (error) { -+ return error; -+ } -+ -+ // Last chance... -+ errors = str.match(errorRe2); -+ if (errors && errors.length >3) { -+ return { -+ name: errors[2], -+ message: errors[0], -+ stack: [], -+ }; -+ } -+ } -+ -+ return null; -+ } -+} -+ -+PandaAgent.runtime = fs.readFileSync(runtimePath.for('panda'), 'utf8'); -+module.exports = PandaAgent; -\ No newline at end of file -diff --git a/runtimes/panda.js b/runtimes/panda.js -new file mode 100644 -index 0000000..0acbd09 ---- /dev/null -+++ b/runtimes/panda.js -@@ -0,0 +1,44 @@ -+if (!globalThis.$262) { -+ globalThis.$262 = { -+ global: globalThis, -+ evalScript(code) { -+ try { -+ global.evalScript(code); -+ return { type: 'normal', value: undefined }; -+ } catch (e) { -+ return { type: 'throw', value: e }; -+ } -+ }, -+ gc() { -+ throw new Test262Error('gc() not yet supported.'); -+ }, -+ getGlobal(name) { -+ return global[name]; -+ }, -+ setGlobal(name, value) { -+ global[name] = value; -+ }, -+ agent: (function() { -+ function thrower() { -+ throw new Test262Error('agent.* not yet supported.'); -+ }; -+ return { -+ start: thrower, -+ broadcast: thrower, -+ getReport: thrower, -+ sleep: thrower, -+ monotonicNow: thrower, -+ }; -+ })(), -+ }; -+} -+ -+$262.IsHTMLDDA = function() {}; -+$262.destroy = function() {}; -+$262.getGlobal = function(name) { -+ return this.global[name]; -+}; -+$262.setGlobal = function(name, value) { -+ this.global[name] = value; -+}; -+$262.source = $SOURCE; --- -2.25.1 - diff --git a/test262/run_test262.py b/test262/run_test262.py index 9b922f2c93..39569b3c9f 100755 --- a/test262/run_test262.py +++ b/test262/run_test262.py @@ -413,9 +413,9 @@ class TestPrepare(): mkdstdir(file, src_dir, self.out_dir) def run(self): - # self.prepare_test262_code() - # self.prepare_clean_data() - # self.patching_the_plugin() + self.prepare_test262_code() + self.prepare_clean_data() + self.patching_the_plugin() self.prepare_args_es51_es2021() self.prepare_out_dir() self.prepare_args_testdir() @@ -547,7 +547,7 @@ def run_test262_test(args): threads = get_threads(args) timeout = get_timeout(args, threads) - test_cmd = ["node", TEST262_RUNNER_SCRIPT] # node run.js --hostType=xxx --hostPath=xxx + test_cmd = ["node", TEST262_RUNNER_SCRIPT] test_cmd.append(f"--hostType={host_type}") test_cmd.append(f"--hostPath={host_path}") if host_args != "": -- Gitee From ccf1faa1e61c3982bf90d61a17fe7583e08496d6 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 5/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/eshost.patch | 13 +++++++++++++ test262/run_sunspider.py | 11 ----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/test262/eshost.patch b/test262/eshost.patch index e25e92f903..5159a0293f 100644 --- a/test262/eshost.patch +++ b/test262/eshost.patch @@ -1,3 +1,16 @@ +From f9fc0c21475bc5efb6f53d33d01fe793c0ec35de Mon Sep 17 00:00:00 2001 +Date: Tue, 18 Oct 2022 20:08:54 +0800 +Subject: [PATCH] fix + +--- + lib/Agent.js | 1 + + lib/ConsoleAgent.js | 50 +++++++++++++-------- + lib/agents/panda.js | 88 +++++++++++++++++++++++++++++++++++++++++++++ + runtimes/panda.js | 44 +++++++++++++++++++++++ + 4 files changed, 160 insertions(+), 14 deletions(-) + create mode 100644 lib/agents/panda.js + create mode 100644 runtimes/panda.js + diff --git a/lib/Agent.js b/lib/Agent.js index edcdf0e..7e655c5 100644 --- a/lib/Agent.js diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index 76af7dc17f..474c4ee0ea 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -385,17 +385,6 @@ class ArkProgram(): if len(module_import[0]) != 0: mod_opt_compile = 0 - with open(js_file, 'r', encoding='utf-8') as f: - context_file = f.read() - script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) - module_import_list = re.findall(r'(export)', context_file) - for script_improt in list(set(script_import_list)): - if len(script_improt[1]) != 0: - mod_opt_compile = 1 - for module_import in list(set(module_import_list)): - if len(module_import[0]) != 0: - mod_opt_compile = 0 - if self.ark_frontend == ARK_FRONTEND_LIST[0]: mod_opt_index = 3 if "dynamic-import" in js_file: -- Gitee From 25176fa12591089dc26137743a698e5f352c0c3c Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 6/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/eshost.patch | 148 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/test262/eshost.patch b/test262/eshost.patch index 5159a0293f..7f63969545 100644 --- a/test262/eshost.patch +++ b/test262/eshost.patch @@ -113,3 +113,151 @@ index 947c1db..18de7a3 100644 result.error = this.parseError(result.stderr); return result; +diff --git a/lib/agents/panda.js b/lib/agents/panda.js +new file mode 100644 +index 0000000..ab22b47 +--- /dev/null ++++ b/lib/agents/panda.js +@@ -0,0 +1,88 @@ ++'use strict'; ++ ++const fs = require('fs'); ++const runtimePath = require('../runtime-path'); ++const ConsoleAgent = require('../ConsoleAgent'); ++ ++const errorRe = /[(](\d+),(\d+)[)]: (.*)/; ++const errorRe1 = /^(\w+): (.*)$/m; ++// const errorRe2 = /^(?:(\w+): (.*))|(?:(\w+))$/m; ++const errorRe2 = /(\w+): (\w+): (.*)$/m; ++ ++function parseSyntaxError(syntaxErrorMessage) { ++ const matches = syntaxErrorMessage.match(); ++ if (matches && matches.length) { ++ return { ++ message: matches[3], ++ lineNumber: Number(matches[1]), ++ columnNumber: Number(matches[2]) ++ }; ++ } ++ return null; ++} ++ ++class PandaAgent extends ConsoleAgent{ ++ constructor(options) { ++ super(options); ++ } ++ ++ createChildProcess(args) { ++ let js_file = args[0] ++ args = [] ++ args.unshift(`--js-file=${js_file}`) ++ return super.createChildProcess(args); ++ } ++ ++ evalScript(code, options = {}) { ++ return super.evalScript(code, options); ++ } ++ ++ parseError(str) { ++ let match = str.match(errorRe1); ++ if (match) { ++ return { ++ name: match[1], ++ message: match[2], ++ stack: [], ++ }; ++ } else { ++ // Syntax errors don't have nice error messages... ++ let error = null; ++ let errors = str.match(/[(](\d+),(\d+)[)]: (.*)/gm); ++ ++ if (errors && errors.length) { ++ error = { ++ name: 'SyntaxError', ++ message: errors[0], ++ stack: [] ++ }; ++ ++ const stack = parseSyntaxError(errors[0]); ++ ++ if (stack) { ++ error.stack.push(stack); ++ error.message = stack.message; ++ } ++ } ++ ++ if (error) { ++ return error; ++ } ++ ++ // Last chance... ++ errors = str.match(errorRe2); ++ if (errors && errors.length >3) { ++ return { ++ name: errors[2], ++ message: errors[0], ++ stack: [], ++ }; ++ } ++ } ++ ++ return null; ++ } ++} ++ ++PandaAgent.runtime = fs.readFileSync(runtimePath.for('panda'), 'utf8'); ++module.exports = PandaAgent; +\ No newline at end of file +diff --git a/runtimes/panda.js b/runtimes/panda.js +new file mode 100644 +index 0000000..0acbd09 +--- /dev/null ++++ b/runtimes/panda.js +@@ -0,0 +1,44 @@ ++if (!globalThis.$262) { ++ globalThis.$262 = { ++ global: globalThis, ++ evalScript(code) { ++ try { ++ global.evalScript(code); ++ return { type: 'normal', value: undefined }; ++ } catch (e) { ++ return { type: 'throw', value: e }; ++ } ++ }, ++ gc() { ++ throw new Test262Error('gc() not yet supported.'); ++ }, ++ getGlobal(name) { ++ return global[name]; ++ }, ++ setGlobal(name, value) { ++ global[name] = value; ++ }, ++ agent: (function() { ++ function thrower() { ++ throw new Test262Error('agent.* not yet supported.'); ++ }; ++ return { ++ start: thrower, ++ broadcast: thrower, ++ getReport: thrower, ++ sleep: thrower, ++ monotonicNow: thrower, ++ }; ++ })(), ++ }; ++} ++ ++$262.IsHTMLDDA = function() {}; ++$262.destroy = function() {}; ++$262.getGlobal = function(name) { ++ return this.global[name]; ++}; ++$262.setGlobal = function(name, value) { ++ this.global[name] = value; ++}; ++$262.source = $SOURCE; +-- +2.25.1 + -- Gitee From 0529ac0bf5edf642b3ff90289e98c8a98275da84 Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 7/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/config.py | 2 +- test262/run_sunspider.py | 94 ++++++++++++---------------------- test262/ts2abc_skip_tests.json | 6 +++ 3 files changed, 39 insertions(+), 63 deletions(-) diff --git a/test262/config.py b/test262/config.py index ab28e63a32..e58a30fa51 100755 --- a/test262/config.py +++ b/test262/config.py @@ -53,7 +53,7 @@ DEFAULT_HOST_PATH = "python3" DEFAULT_THREADS = min(cpu_count(), 32) DEFAULT_OTHER_ARGS = "--saveCompiledTests" TEST262_RUNNER_SCRIPT = os.path.join(HARNESS_DIR, "bin", "run.js") -DEFAULT_TIMEOUT = 120000 +DEFAULT_TIMEOUT = 60000 ES5_LIST_FILE = os.path.join("test262", "es5_tests.txt") ES2015_LIST_FILE = os.path.join("test262", "es2015_tests.txt") diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index 474c4ee0ea..d9f1d09d14 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -226,22 +226,7 @@ class ArkProgram(): self.arch_root = self.args.ark_arch_root - def gen_dependency_abc(self, dependency): - cmd_args = [] - output_file = os.path.splitext(dependency.replace(DATA_DIR, BASE_OUT_DIR))[0] - output_abc = f"{output_file}.abc" - frontend_tool = self.ark_frontend_binary - merge_abc_binary = self.args.merge_abc_binary - merge_abc_mode = self.merge_abc_mode - mod_opt_compile = 0 - - if merge_abc_mode != "0": - proto_bin_file = output_file + "." + PROTO_BIN_SUFFIX - cmd_args = [frontend_tool, dependency, '--outputProto', - proto_bin_file, '--merge-abc'] - else: - # for testing no-record-name abc - cmd_args = [frontend_tool, dependency, '--output', output_abc] + def get_mod_compile(self, dependency, mod_opt_compile): with open(dependency, 'r', encoding='utf-8') as f: context_file = f.read() @@ -254,36 +239,39 @@ class ArkProgram(): if len(module_import[0]) != 0: mod_opt_compile = 0 - if mod_opt_compile == 0: - mod_opt_index = 4 - cmd_args.insert(mod_opt_index, "--module") - proc = subprocess.Popen(cmd_args) - proc.wait() + return mod_opt_compile - def gen_ts_abc(self, dependency): + def gen_dependency_abc(self, dependency): cmd_args = [] output_file = os.path.splitext(dependency.replace(DATA_DIR, BASE_OUT_DIR))[0] output_abc = f"{output_file}.abc" frontend_tool = self.ark_frontend_binary + merge_abc_binary = self.args.merge_abc_binary + merge_abc_mode = self.merge_abc_mode mod_opt_compile = 0 - cmd_args = ['node', '--expose-gc', frontend_tool, dependency, - '-o', output_abc] + if self.ark_frontend == ARK_FRONTEND_LIST[1]: + if merge_abc_mode != "0": + proto_bin_file = output_file + "." + PROTO_BIN_SUFFIX + cmd_args = [frontend_tool, dependency, '--outputProto', + proto_bin_file, '--merge-abc'] + else: + # for testing no-record-name abc + cmd_args = [frontend_tool, dependency, '--output', output_abc] + elif self.ark_frontend == ARK_FRONTEND_LIST[0]: + cmd_args = ['node', '--expose-gc', frontend_tool, dependency, + '-o', output_abc] - with open(dependency, 'r', encoding='utf-8') as f: - context_file = f.read() - script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) - module_import_list = re.findall(r'(export)', context_file) - for script_improt in list(set(script_import_list)): - if len(script_improt[1]) != 0: - mod_opt_compile = 1 - for module_import in list(set(module_import_list)): - if len(module_import[0]) != 0: - mod_opt_compile = 0 + mod_opt_compile = self.get_mod_compile(dependency, mod_opt_compile) - if mod_opt_compile == 0: - mod_opt_index = 6 - cmd_args.insert(mod_opt_index, "--modules") + if self.ark_frontend == ARK_FRONTEND_LIST[1]: + if mod_opt_compile == 0: + mod_opt_index = 4 + cmd_args.insert(mod_opt_index, "--module") + elif self.ark_frontend == ARK_FRONTEND_LIST[0]: + if mod_opt_compile == 0: + mod_opt_index = 6 + cmd_args.insert(mod_opt_index, "--modules") proc = subprocess.Popen(cmd_args) proc.wait() @@ -367,23 +355,10 @@ class ArkProgram(): if (file_name in self.module_list or file_name in self.dynamicImport_list): search_dir = os.path.dirname(js_file.replace(BASE_OUT_DIR, DATA_DIR)) dependencies = collect_module_dependencies(js_file, search_dir, []) - if (self.ark_frontend == ARK_FRONTEND_LIST[1]): - for dependency in list(set(dependencies)): - self.gen_dependency_abc(dependency) - elif (self.ark_frontend == ARK_FRONTEND_LIST[0]): - for dependency in list(set(dependencies)): - self.gen_ts_abc(dependency) - - with open(js_file, 'r', encoding='utf-8') as f: - context_file = f.read() - script_import_list = re.findall(r'(import)\(((.)|(\'(\.\/.*))\'|"(\.\/.*)")\)', context_file) - module_import_list = re.findall(r'(export)', context_file) - for script_improt in list(set(script_import_list)): - if len(script_improt[1]) != 0: - mod_opt_compile = 1 - for module_import in list(set(module_import_list)): - if len(module_import[0]) != 0: - mod_opt_compile = 0 + for dependency in list(set(dependencies)): + self.gen_dependency_abc(dependency) + + mod_opt_compile = self.get_mod_compile(js_file, mod_opt_compile) if self.ark_frontend == ARK_FRONTEND_LIST[0]: mod_opt_index = 3 @@ -446,15 +421,10 @@ class ArkProgram(): return retcode if merge_abc_mode != "0": - if "dynamic-import" in js_file: - if file_name in self.module_list: - retcode = self.gen_merged_abc(dependencies, file_name_pre, - proto_bin_file, retcode) - else: - retcode = self.gen_apart_abc(dependencies, retcode) + if "dynamic-import" in js_file and file_name not in self.module_list: + return self.gen_apart_abc(dependencies, retcode) else: - retcode = self.gen_merged_abc(dependencies, file_name_pre, - proto_bin_file, retcode) + return self.gen_merged_abc(dependencies, file_name_pre, proto_bin_file, retcode) return retcode diff --git a/test262/ts2abc_skip_tests.json b/test262/ts2abc_skip_tests.json index 1a454736fc..691f4eafea 100644 --- a/test262/ts2abc_skip_tests.json +++ b/test262/ts2abc_skip_tests.json @@ -333,5 +333,11 @@ "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js", "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js" ] + }, + { + "reason" : "Expected test to throw error of type SyntaxError, but did not throw error", + "files": [ + "language/module-code/instn-resolve-empty-export.js" + ] } ] -- Gitee From 2012bdce1ee4cc73bb1189e82dbceab7fb32065d Mon Sep 17 00:00:00 2001 From: jiangkaiwen Date: Wed, 19 Oct 2022 11:45:51 +0800 Subject: [PATCH 8/8] Fix Dynamic import() problem 1. Fix the dependency of other folders with the same name 2. Fix the problem of the abc file that does not generate dependent modules 3. Fix the problem of SyntaxError Issue:I5W6NG Signed-off-by: jiangkaiwen Change-Id: Iceba7760cfcf1265c5a29bb48495d8a90d6ea54c --- test262/run_sunspider.py | 6 ++++-- test262/ts2abc_skip_tests.json | 6 ------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index d9f1d09d14..cfc5cacea6 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -241,7 +241,9 @@ class ArkProgram(): return mod_opt_compile - def gen_dependency_abc(self, dependency): + def gen_dependency_abc(self, dependency, js_file): + if "dynamic-import" not in js_file: + return cmd_args = [] output_file = os.path.splitext(dependency.replace(DATA_DIR, BASE_OUT_DIR))[0] output_abc = f"{output_file}.abc" @@ -356,7 +358,7 @@ class ArkProgram(): search_dir = os.path.dirname(js_file.replace(BASE_OUT_DIR, DATA_DIR)) dependencies = collect_module_dependencies(js_file, search_dir, []) for dependency in list(set(dependencies)): - self.gen_dependency_abc(dependency) + self.gen_dependency_abc(dependency, js_file) mod_opt_compile = self.get_mod_compile(js_file, mod_opt_compile) diff --git a/test262/ts2abc_skip_tests.json b/test262/ts2abc_skip_tests.json index 691f4eafea..1a454736fc 100644 --- a/test262/ts2abc_skip_tests.json +++ b/test262/ts2abc_skip_tests.json @@ -333,11 +333,5 @@ "language/expressions/dynamic-import/catch/nested-async-arrow-function-return-await-specifier-tostring-abrupt-rejects.js", "language/expressions/dynamic-import/catch/nested-async-arrow-function-await-specifier-tostring-abrupt-rejects.js" ] - }, - { - "reason" : "Expected test to throw error of type SyntaxError, but did not throw error", - "files": [ - "language/module-code/instn-resolve-empty-export.js" - ] } ] -- Gitee