From 4924f9fd315e9281a89d0621f278f3a6c1c7efd2 Mon Sep 17 00:00:00 2001 From: Szilagyi Adam Date: Mon, 31 Jan 2022 16:46:00 +0100 Subject: [PATCH] Remove ES_NEXT macro (#4915) - remove all '#JERRY_ESNEXT' macro - remove 5.1 build profile, update test runner accordingly (Note: all builtins are turn on by default) - move tests from tests/jerry/esnext into tests/jerry, concatenate files with same names - add skiplist to some snapshot tests that were supported only in 5.1 - fix doxygen issues that were hidden before (bc. of es.next macro) Co-authored-by: Martin Negyokru negyokru@inf.u-szeged.hu JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu --- .github/workflows/gh-actions.yml | 13 +- docs/02.API-REFERENCE.md | 50 -- jerry-core/api/jerry-snapshot.c | 12 +- jerry-core/api/jerryscript.c | 123 +---- jerry-core/config.h | 66 +-- jerry-core/debugger/debugger.c | 2 - .../ecma/base/ecma-error-messages.inc.h | 242 +++------ jerry-core/ecma/base/ecma-error-messages.ini | 4 - jerry-core/ecma/base/ecma-extended-info.c | 6 - jerry-core/ecma/base/ecma-extended-info.h | 4 - jerry-core/ecma/base/ecma-gc.c | 55 +- jerry-core/ecma/base/ecma-globals.h | 68 +-- .../ecma/base/ecma-helpers-collection.c | 4 - .../ecma/base/ecma-helpers-conversion.c | 16 +- jerry-core/ecma/base/ecma-helpers-string.c | 15 - jerry-core/ecma/base/ecma-helpers-value.c | 23 - jerry-core/ecma/base/ecma-helpers.c | 18 - jerry-core/ecma/base/ecma-helpers.h | 19 - jerry-core/ecma/base/ecma-init-finalize.c | 8 - jerry-core/ecma/base/ecma-literal-storage.c | 6 - .../ecma-builtin-aggregateerror-prototype.c | 4 - ...cma-builtin-aggregateerror-prototype.inc.h | 4 - .../ecma-builtin-aggregateerror.c | 4 - .../ecma-builtin-aggregateerror.inc.h | 4 - .../ecma-builtin-array-iterator-prototype.c | 4 - ...cma-builtin-array-iterator-prototype.inc.h | 4 - ...ecma-builtin-array-prototype-unscopables.c | 4 - ...-builtin-array-prototype-unscopables.inc.h | 4 - .../ecma-builtin-array-prototype.c | 164 +----- .../ecma-builtin-array-prototype.inc.h | 7 - .../ecma/builtin-objects/ecma-builtin-array.c | 11 - .../builtin-objects/ecma-builtin-array.inc.h | 5 - ...iltin-async-from-sync-iterator-prototype.c | 6 +- ...n-async-from-sync-iterator-prototype.inc.h | 4 - .../ecma-builtin-async-function-prototype.c | 4 - ...cma-builtin-async-function-prototype.inc.h | 4 - .../ecma-builtin-async-function.c | 4 - .../ecma-builtin-async-function.inc.h | 4 - .../ecma-builtin-async-generator-function.c | 6 +- ...cma-builtin-async-generator-function.inc.h | 4 - .../ecma-builtin-async-generator-prototype.c | 8 +- ...ma-builtin-async-generator-prototype.inc.h | 4 - .../ecma-builtin-async-generator.c | 4 - .../ecma-builtin-async-generator.inc.h | 4 - .../ecma-builtin-async-iterator-prototype.c | 4 - ...cma-builtin-async-iterator-prototype.inc.h | 4 - .../ecma-builtin-boolean.inc.h | 3 - .../ecma-builtin-date-prototype.c | 40 +- .../ecma-builtin-date-prototype.inc.h | 11 - .../ecma/builtin-objects/ecma-builtin-date.c | 29 +- .../builtin-objects/ecma-builtin-date.inc.h | 2 - .../ecma/builtin-objects/ecma-builtin-error.c | 4 - .../builtin-objects/ecma-builtin-error.inc.h | 2 - .../builtin-objects/ecma-builtin-evalerror.c | 4 - .../ecma-builtin-evalerror.inc.h | 2 - .../ecma-builtin-function-prototype.c | 16 - .../ecma-builtin-function-prototype.inc.h | 5 - .../ecma-builtin-function.inc.h | 3 - .../ecma-builtin-generator-function.c | 6 +- .../ecma-builtin-generator-function.inc.h | 4 - .../ecma-builtin-generator-prototype.c | 8 +- .../ecma-builtin-generator-prototype.inc.h | 4 - .../builtin-objects/ecma-builtin-generator.c | 4 - .../ecma-builtin-generator.inc.h | 4 - .../builtin-objects/ecma-builtin-global.c | 2 - .../builtin-objects/ecma-builtin-global.inc.h | 8 +- .../builtin-objects/ecma-builtin-handlers.c | 12 +- .../builtin-objects/ecma-builtin-handlers.h | 9 +- .../ecma-builtin-helpers-macro-defines.inc.h | 2 - .../ecma-builtin-helpers-macro-undefs.inc.h | 2 - .../builtin-objects/ecma-builtin-helpers.c | 62 +-- .../builtin-objects/ecma-builtin-helpers.h | 34 +- ...a-builtin-internal-routines-template.inc.h | 2 - .../builtin-objects/ecma-builtin-intrinsic.c | 68 +-- .../ecma-builtin-intrinsic.inc.h | 4 +- .../ecma-builtin-iterator-prototype.c | 4 - .../ecma-builtin-iterator-prototype.inc.h | 4 - .../ecma/builtin-objects/ecma-builtin-json.c | 15 +- .../builtin-objects/ecma-builtin-json.inc.h | 2 - .../ecma/builtin-objects/ecma-builtin-math.c | 17 +- .../builtin-objects/ecma-builtin-math.inc.h | 4 - .../builtin-objects/ecma-builtin-number.c | 5 - .../builtin-objects/ecma-builtin-number.inc.h | 6 +- .../ecma-builtin-object-prototype.c | 12 +- .../ecma-builtin-object-prototype.inc.h | 4 +- .../builtin-objects/ecma-builtin-object.c | 54 +- .../builtin-objects/ecma-builtin-object.inc.h | 12 - .../ecma-builtin-promise-prototype.c | 4 - .../ecma-builtin-promise-prototype.inc.h | 4 - .../builtin-objects/ecma-builtin-promise.c | 4 - .../ecma-builtin-promise.inc.h | 4 - .../builtin-objects/ecma-builtin-rangeerror.c | 4 - .../ecma-builtin-rangeerror.inc.h | 3 - .../ecma-builtin-referenceerror.c | 4 - .../ecma-builtin-referenceerror.inc.h | 3 - .../ecma-builtin-regexp-prototype.c | 110 +--- .../ecma-builtin-regexp-prototype.inc.h | 17 - ...builtin-regexp-string-iterator-prototype.c | 4 - ...tin-regexp-string-iterator-prototype.inc.h | 4 - .../builtin-objects/ecma-builtin-regexp.c | 22 - .../builtin-objects/ecma-builtin-regexp.inc.h | 3 - .../ecma-builtin-string-iterator-prototype.c | 4 - ...ma-builtin-string-iterator-prototype.inc.h | 4 - .../ecma-builtin-string-prototype.c | 87 +-- .../ecma-builtin-string-prototype.inc.h | 4 - .../builtin-objects/ecma-builtin-string.c | 14 +- .../builtin-objects/ecma-builtin-string.inc.h | 6 - .../ecma-builtin-symbol-prototype.c | 4 - .../ecma-builtin-symbol-prototype.inc.h | 3 - .../builtin-objects/ecma-builtin-symbol.c | 4 - .../builtin-objects/ecma-builtin-symbol.inc.h | 4 - .../ecma-builtin-syntaxerror.c | 4 - .../ecma-builtin-syntaxerror.inc.h | 3 - .../builtin-objects/ecma-builtin-typeerror.c | 4 - .../ecma-builtin-typeerror.inc.h | 3 - .../builtin-objects/ecma-builtin-urierror.c | 4 - .../ecma-builtin-urierror.inc.h | 3 - .../builtin-objects/ecma-builtins-internal.h | 4 - .../ecma/builtin-objects/ecma-builtins.c | 89 +--- .../ecma/builtin-objects/ecma-builtins.h | 8 - .../ecma/builtin-objects/ecma-builtins.inc.h | 34 -- .../ecma/operations/ecma-arguments-object.c | 32 -- .../ecma/operations/ecma-array-object.c | 4 - .../ecma/operations/ecma-array-object.h | 2 - .../operations/ecma-async-generator-object.c | 7 +- .../operations/ecma-async-generator-object.h | 4 - jerry-core/ecma/operations/ecma-big-uint.c | 4 - jerry-core/ecma/operations/ecma-big-uint.h | 2 - jerry-core/ecma/operations/ecma-bigint.c | 4 - jerry-core/ecma/operations/ecma-bigint.h | 2 - .../ecma/operations/ecma-boolean-object.c | 5 +- jerry-core/ecma/operations/ecma-comparison.c | 12 +- .../ecma/operations/ecma-container-object.c | 6 - jerry-core/ecma/operations/ecma-conversion.c | 84 +-- jerry-core/ecma/operations/ecma-conversion.h | 2 - jerry-core/ecma/operations/ecma-eval.c | 8 - jerry-core/ecma/operations/ecma-exceptions.c | 12 +- jerry-core/ecma/operations/ecma-exceptions.h | 2 - .../ecma/operations/ecma-function-object.c | 154 +----- .../ecma/operations/ecma-function-object.h | 7 - .../ecma/operations/ecma-get-put-value.c | 17 - .../ecma/operations/ecma-iterator-object.c | 4 - .../ecma/operations/ecma-iterator-object.h | 4 - jerry-core/ecma/operations/ecma-jobqueue.c | 3 - jerry-core/ecma/operations/ecma-jobqueue.h | 4 +- jerry-core/ecma/operations/ecma-lex-env.c | 15 - jerry-core/ecma/operations/ecma-lex-env.h | 4 - .../ecma/operations/ecma-number-object.c | 8 +- .../ecma/operations/ecma-objects-general.c | 30 -- .../ecma/operations/ecma-objects-general.h | 2 - jerry-core/ecma/operations/ecma-objects.c | 120 +---- jerry-core/ecma/operations/ecma-objects.h | 4 - .../ecma/operations/ecma-promise-object.c | 3 - .../ecma/operations/ecma-promise-object.h | 7 +- jerry-core/ecma/operations/ecma-reference.c | 19 +- jerry-core/ecma/operations/ecma-reference.h | 2 - .../ecma/operations/ecma-regexp-object.c | 358 +------------ .../ecma/operations/ecma-regexp-object.h | 3 - .../ecma/operations/ecma-string-object.c | 7 +- .../ecma/operations/ecma-symbol-object.c | 3 - .../ecma/operations/ecma-symbol-object.h | 3 - jerry-core/jcontext/jcontext.h | 9 - jerry-core/lit/lit-char-helpers.c | 45 +- jerry-core/lit/lit-char-helpers.h | 4 - jerry-core/lit/lit-magic-strings.inc.h | 497 ++++-------------- jerry-core/parser/js/byte-code.h | 7 - jerry-core/parser/js/common.c | 4 - jerry-core/parser/js/common.h | 2 - jerry-core/parser/js/js-lexer.c | 200 +------ jerry-core/parser/js/js-lexer.h | 27 +- jerry-core/parser/js/js-parser-expr.c | 350 +----------- jerry-core/parser/js/js-parser-internal.h | 53 +- jerry-core/parser/js/js-parser-statm.c | 176 +------ .../js/js-parser-tagged-template-literal.c | 2 - .../js/js-parser-tagged-template-literal.h | 2 - jerry-core/parser/js/js-parser-util.c | 4 - jerry-core/parser/js/js-parser.c | 99 +--- jerry-core/parser/js/js-scanner-internal.h | 55 -- jerry-core/parser/js/js-scanner-ops.c | 32 -- jerry-core/parser/js/js-scanner-util.c | 208 +------- jerry-core/parser/js/js-scanner.c | 262 +-------- jerry-core/parser/js/js-scanner.h | 41 -- .../parser/js/parser-error-messages.inc.h | 98 +--- .../parser/js/parser-error-messages.ini | 2 - jerry-core/parser/regexp/re-bytecode.c | 21 - jerry-core/parser/regexp/re-bytecode.h | 2 - jerry-core/parser/regexp/re-parser.c | 33 -- jerry-core/profiles/README.md | 53 +- jerry-core/profiles/es2015-subset.profile | 1 - jerry-core/profiles/es5.1.profile | 1 - jerry-core/profiles/minimal.profile | 1 - jerry-core/vm/opcodes-ecma-arithmetics.c | 4 - .../vm/opcodes-ecma-relational-equality.c | 2 - jerry-core/vm/opcodes.c | 48 +- jerry-core/vm/opcodes.h | 11 - jerry-core/vm/vm-defines.h | 6 - jerry-core/vm/vm-stack.c | 30 -- jerry-core/vm/vm-stack.h | 12 - jerry-core/vm/vm.c | 87 +-- jerry-core/vm/vm.h | 89 ---- .../esp8266-rtos-sdk/Makefile.esp8266 | 1 - tests/jerry/{es.next => }/argument-spread.js | 0 .../jerry/{es.next => }/arguments-iterator.js | 0 tests/jerry/arguments.js | 242 +++++++++ tests/jerry/{es.next => }/arithmetic-parse.js | 0 tests/jerry/{es.next => }/arithmetics-2.js | 0 tests/jerry/{es.next => }/arithmetics-3.js | 0 tests/jerry/{es.next => }/array-from.js | 0 tests/jerry/{es.next => }/array-isarray.js | 0 .../{es.next => }/array-new-target-support.js | 0 tests/jerry/{es.next => }/array-of.js | 0 tests/jerry/{es.next => }/array-pattern.js | 0 .../jerry/{es.next => }/array-prototype-at.js | 0 .../array-prototype-copywithin.js | 0 .../{es.next => }/array-prototype-entries.js | 0 .../{es.next => }/array-prototype-fill.js | 0 .../array-prototype-find-index.js | 0 .../{es.next => }/array-prototype-find.js | 0 .../array-prototype-flat-flatMap.js | 0 .../{es.next => }/array-prototype-includes.js | 0 .../{es.next => }/array-prototype-keys.js | 0 tests/jerry/array-prototype-slice.js | 42 ++ tests/jerry/array-prototype-sort.js | 11 + tests/jerry/array-prototype-unshift.js | 4 + .../{es.next => }/array-prototype-values.js | 0 tests/jerry/{es.next => }/array-species.js | 0 tests/jerry/{es.next => }/array-spread.js | 0 .../jerry/{es.next => }/arraybuffer-isview.js | 0 tests/jerry/{es.next => }/arrow-assignment.js | 0 tests/jerry/{es.next => }/arrow-eval.js | 0 tests/jerry/{es.next => }/arrow-function.js | 0 tests/jerry/{es.next => }/arrow-this.js | 0 .../{es.next => }/async-from-sync-iterator.js | 0 tests/jerry/{es.next => }/atomics.js | 0 .../bigint-typedarray-prototype-filter.js | 0 .../bigint-typedarray-prototype-reduce.js | 0 tests/jerry/{es.next => }/bigint1.js | 0 tests/jerry/{es.next => }/bigint2.js | 0 tests/jerry/{es.next => }/bigint3.js | 0 tests/jerry/{es.next => }/bigint4.js | 0 tests/jerry/{es.next => }/bigint5.js | 0 tests/jerry/{es.next => }/bigint6.js | 0 tests/jerry/{es.next => }/bigint7.js | 0 tests/jerry/{es.next => }/bigint8.js | 0 tests/jerry/{es.next => }/bigint9.js | 0 tests/jerry/{es.next => }/binary-literal.js | 0 tests/jerry/{es.next => }/block-var-redecl.js | 0 ...-objects-accessor-property-configurable.js | 0 tests/jerry/builtin-prototypes.js | 46 ++ tests/jerry/{es.next => }/class-fields1.js | 0 tests/jerry/{es.next => }/class-fields2.js | 0 tests/jerry/{es.next => }/class-fields3.js | 0 tests/jerry/{es.next => }/class-fields4.js | 0 tests/jerry/{es.next => }/class-fields5.js | 0 .../{es.next => }/class-get-set-as-method.js | 0 .../{es.next => }/class-inheritance-bound.js | 0 .../class-inheritance-builtin-array.js | 0 .../class-inheritance-builtin-typedarray.js | 0 .../{es.next => }/class-inheritance-core-1.js | 0 .../class-inheritance-core-10.js | 0 .../class-inheritance-core-11.js | 0 .../class-inheritance-core-12.js | 0 .../class-inheritance-core-13.js | 0 .../class-inheritance-core-14.js | 0 .../class-inheritance-core-15.js | 0 .../{es.next => }/class-inheritance-core-2.js | 0 .../{es.next => }/class-inheritance-core-3.js | 0 .../{es.next => }/class-inheritance-core-4.js | 0 .../{es.next => }/class-inheritance-core-5.js | 0 .../{es.next => }/class-inheritance-core-6.js | 0 .../{es.next => }/class-inheritance-core-7.js | 0 .../{es.next => }/class-inheritance-core-8.js | 0 .../{es.next => }/class-inheritance-core-9.js | 0 .../class-inheritance-early-semantics.js | 0 .../class-inheritance-has-instance.js | 0 .../class-inheritance-inner-class.js | 0 .../class-inheritance-mixins-1.js | 0 .../class-inheritance-mixins-2.js | 0 .../class-super-access-direct.js | 0 .../class-super-access-indirect.js | 0 tests/jerry/{es.next => }/class-with.js | 0 tests/jerry/{es.next => }/class.js | 0 .../jerry/{es.next => }/class_static_block.js | 0 tests/jerry/{es.next => }/const1.js | 0 tests/jerry/{es.next => }/continue.js | 0 tests/jerry/{es.next => }/dataview.js | 0 tests/jerry/date-construct.js | 52 ++ .../date-prototype-toprimitive.js | 0 .../decimal-with-leading-zero.js | 0 tests/jerry/{es.next => }/directive.js | 0 tests/jerry/{es.next => }/error-names.js | 0 tests/jerry/error.js | 9 + tests/jerry/es.next/arguments.js | 254 --------- tests/jerry/es.next/array-prototype-slice.js | 55 -- tests/jerry/es.next/array-prototype-sort.js | 24 - .../jerry/es.next/array-prototype-unshift.js | 17 - tests/jerry/es.next/builtin-prototypes.js | 60 --- tests/jerry/es.next/date-construct.js | 65 --- tests/jerry/es.next/error.js | 22 - .../jerry/es.next/function-prototype-bind.js | 69 --- .../es.next/function-prototype-tostring.js | 188 ------- tests/jerry/es.next/json-stringify.js | 64 --- .../jerry/es.next/object-define-properties.js | 149 ------ .../es.next/object-get-own-property-names.js | 23 - tests/jerry/es.next/object-keys.js | 46 -- tests/jerry/es.next/regexp-construct.js | 57 -- tests/jerry/es.next/regexp-routines.js | 212 -------- .../es.next/regression-test-issue-3072.js | 23 - tests/jerry/es.next/string-prototype-match.js | 82 --- tests/jerry/es.next/string-prototype-split.js | 23 - tests/jerry/es.next/string-prototype-trim.js | 29 - .../string-upper-lower-case-conversion.js | 66 --- tests/jerry/es.next/test_suite_15.js | 19 - tests/jerry/es5.1/arguments.js | 26 - tests/jerry/es5.1/arithmetic-parse.js | 93 ---- tests/jerry/es5.1/arithmetics.js | 55 -- tests/jerry/es5.1/array-prototype-push.js | 34 -- tests/jerry/es5.1/array-prototype-unshift.js | 22 - tests/jerry/es5.1/builtin-prototypes.js | 72 --- tests/jerry/es5.1/date-utc.js | 16 - tests/jerry/es5.1/func-decl.js | 25 - tests/jerry/es5.1/func-length.js | 19 - tests/jerry/es5.1/json-superset.js | 27 - tests/jerry/es5.1/object-getprototypeof.js | 54 -- tests/jerry/es5.1/object-literal-fails.js | 47 -- tests/jerry/es5.1/object-methods.js | 89 ---- tests/jerry/es5.1/regexp-construct.js | 25 - tests/jerry/es5.1/regexp-lastindex.js | 19 - tests/jerry/es5.1/regexp-routines.js | 20 - .../jerry/es5.1/regression-test-issue-1065.js | 22 - .../jerry/es5.1/regression-test-issue-1080.js | 25 - .../jerry/es5.1/regression-test-issue-116.js | 23 - .../jerry/es5.1/regression-test-issue-1546.js | 15 - .../jerry/es5.1/regression-test-issue-1641.js | 18 - .../jerry/es5.1/regression-test-issue-2058.js | 20 - .../jerry/es5.1/regression-test-issue-312.js | 20 - .../regression-test-issue-3151-function.js | 15 - .../jerry/es5.1/regression-test-issue-3637.js | 24 - .../jerry/es5.1/regression-test-issue-3815.js | 22 - .../jerry/es5.1/regression-test-issue-787.js | 17 - tests/jerry/es5.1/string-prototype-split.js | 23 - tests/jerry/es5.1/string-regexp-methods.js | 20 - .../string-upper-lower-case-conversion.js | 20 - tests/jerry/es5.1/test_suite_15.js | 119 ----- tests/jerry/es5.1/try-catch.js | 26 - tests/jerry/{es.next => }/exponentiation.js | 0 .../for-await-of-iterator-close.js | 0 tests/jerry/{es.next => }/for-await-of.js | 0 .../{es.next => }/for-let-reference-error.js | 0 tests/jerry/{es.next => }/for-let.js | 0 .../{es.next => }/for-of-iterator-close.js | 0 .../{es.next => }/for-of-statement-head.js | 0 tests/jerry/{es.next => }/for-of.js | 0 tests/jerry/{es.next => }/for-pattern.js | 0 .../{es.next => }/forin-header-strict.js | 0 .../jerry/{es.next => }/function-accessor.js | 0 .../function-arguments-caller.js | 0 .../{es.next => }/function-async-gen1.js | 0 .../{es.next => }/function-async-gen2.js | 0 .../{es.next => }/function-async-gen3.js | 0 .../{es.next => }/function-async-gen4.js | 0 tests/jerry/{es.next => }/function-async1.js | 0 tests/jerry/{es.next => }/function-async2.js | 0 tests/jerry/{es.next => }/function-async3.js | 0 tests/jerry/{es.next => }/function-await1.js | 0 tests/jerry/{es.next => }/function-await2.js | 0 tests/jerry/{es.next => }/function-await3.js | 0 tests/jerry/{es.next => }/function-call.js | 0 tests/jerry/{es.next => }/function-decl.js | 0 tests/jerry/{es.next => }/function-if.js | 0 tests/jerry/{es.next => }/function-name.js | 0 .../{es.next => }/function-new-target.js | 0 .../{es.next => }/function-param-init.js | 0 .../{es.next => }/function-param-init2.js | 0 .../{es.next => }/function-param-init3.js | 0 .../{es.next => }/function-param-init4.js | 0 .../jerry/{es.next => }/function-pattern1.js | 0 .../jerry/{es.next => }/function-pattern2.js | 0 .../{es.next => }/function-properties.js | 0 tests/jerry/function-prototype-bind.js | 55 ++ .../function-prototype-hasinstance-class.js | 0 .../function-prototype-hasinstance.js | 0 tests/jerry/function-prototype-tostring.js | 174 ++++++ .../{es.next => }/function-rest-parameter.js | 0 tests/jerry/{es.next => }/function-scope.js | 0 tests/jerry/{es.next => }/function-scope2.js | 0 .../generator-function-in-single-statement.js | 0 .../jerry/{es.next => }/generator-function.js | 0 .../{es.next => }/generator-initializer.js | 0 tests/jerry/{es.next => }/generator-return.js | 0 tests/jerry/{es.next => }/generator-throw.js | 0 .../{es.next => }/generator-yield-iterator.js | 0 tests/jerry/{es.next => }/generator-yield.js | 0 tests/jerry/{es.next => }/generator.js | 0 tests/jerry/{es.next => }/global-this.js | 0 tests/jerry/{es.next => }/global-unescape.js | 0 .../jerry/{es.next => }/identifier-escape.js | 0 .../instanceof-symbol-hasinstance-class.js | 0 .../instanceof-symbol-hasinstance.js | 0 .../{es.next => }/intrinsic-properties.js | 0 .../jerry/{es.next => }/iterator-prototype.js | 0 tests/jerry/{es.next => }/json-parse-proxy.js | 0 tests/jerry/json-stringify.js | 51 ++ tests/jerry/{es.next => }/json-superset.js | 0 tests/jerry/{es.next => }/length-property.js | 0 tests/jerry/{es.next => }/let1.js | 0 tests/jerry/{es.next => }/let10.js | 0 tests/jerry/{es.next => }/let11.js | 0 tests/jerry/{es.next => }/let12.js | 0 tests/jerry/{es.next => }/let13.js | 0 tests/jerry/{es.next => }/let14.js | 0 tests/jerry/{es.next => }/let15.js | 0 tests/jerry/{es.next => }/let2.js | 0 tests/jerry/{es.next => }/let3.js | 0 tests/jerry/{es.next => }/let4.js | 0 tests/jerry/{es.next => }/let5.js | 0 tests/jerry/{es.next => }/let6.js | 0 tests/jerry/{es.next => }/let7.js | 0 tests/jerry/{es.next => }/let8.js | 0 tests/jerry/{es.next => }/let9.js | 0 .../jerry/{es.next => }/logical-assignment.js | 0 tests/jerry/{es.next => }/map-iterators.js | 0 .../{es.next => }/map-prototype-foreach.js | 0 tests/jerry/{es.next => }/map.js | 0 tests/jerry/{es.next => }/math-acosh.js | 0 tests/jerry/{es.next => }/math-asinh.js | 0 tests/jerry/{es.next => }/math-atanh.js | 0 tests/jerry/{es.next => }/math-cbrt.js | 0 tests/jerry/{es.next => }/math-cosh.js | 0 tests/jerry/{es.next => }/math-expm1.js | 0 .../math-functions-tonumber-rule2.js | 0 tests/jerry/{es.next => }/math-log10.js | 0 tests/jerry/{es.next => }/math-log1p.js | 0 tests/jerry/{es.next => }/math-log2.js | 0 tests/jerry/{es.next => }/math-sign.js | 0 tests/jerry/{es.next => }/math-sinh.js | 0 tests/jerry/{es.next => }/math-tanh.js | 0 tests/jerry/{es.next => }/math-trunc.js | 0 .../{es.next => }/module-circular-01.mjs | 0 .../{es.next => }/module-circular-02.mjs | 0 .../{es.next => }/module-circular-03.mjs | 0 .../{es.next => }/module-circular-04.mjs | 0 .../{es.next => }/module-circular-05.mjs | 0 .../{es.next => }/module-circular-06.mjs | 0 .../{es.next => }/module-circular-07.mjs | 0 .../{es.next => }/module-circular-08.mjs | 0 .../{es.next => }/module-circular-09.mjs | 0 .../{es.next => }/module-dynamic-import.js | 0 .../jerry/{es.next => }/module-export-01.mjs | 0 .../jerry/{es.next => }/module-export-02.mjs | 0 .../jerry/{es.next => }/module-export-03.mjs | 0 .../jerry/{es.next => }/module-export-04.mjs | 0 .../jerry/{es.next => }/module-export-05.mjs | 0 .../jerry/{es.next => }/module-export-06.mjs | 0 .../jerry/{es.next => }/module-export-07.mjs | 0 .../jerry/{es.next => }/module-export-08.mjs | 0 .../jerry/{es.next => }/module-export-09.mjs | 0 .../jerry/{es.next => }/module-export-10.mjs | 0 .../{es.next => }/module-export-default-1.mjs | 0 .../module-export-default-10.mjs | 0 .../{es.next => }/module-export-default-2.mjs | 0 .../{es.next => }/module-export-default-3.mjs | 0 .../{es.next => }/module-export-default-4.mjs | 0 .../{es.next => }/module-export-default-5.mjs | 0 .../{es.next => }/module-export-default-6.mjs | 0 .../{es.next => }/module-export-default-7.mjs | 0 .../{es.next => }/module-export-default-8.mjs | 0 .../{es.next => }/module-export-default-9.mjs | 0 .../module-export-default-main.mjs | 0 .../{es.next => }/module-export-fail-test.mjs | 0 .../jerry/{es.next => }/module-import-01.mjs | 0 .../jerry/{es.next => }/module-import-02.mjs | 0 .../jerry/{es.next => }/module-import-03.mjs | 0 .../jerry/{es.next => }/module-import-04.mjs | 0 .../jerry/{es.next => }/module-import-05.mjs | 0 .../jerry/{es.next => }/module-import-06.mjs | 0 .../jerry/{es.next => }/module-import-07.mjs | 0 .../{es.next => }/module-namespace-01.mjs | 0 .../{es.next => }/module-namespace-02.mjs | 0 .../{es.next => }/module-namespace-03.mjs | 0 .../{es.next => }/module-namespace-04.mjs | 0 .../module-source-name-export.mjs | 0 .../{es.next => }/module-source-name.mjs | 0 tests/jerry/{es.next => }/new-target-async.js | 0 tests/jerry/{es.next => }/new-target-class.js | 0 tests/jerry/{es.next => }/new-target-error.js | 0 .../{es.next => }/new-target-for-boolean.js | 0 .../new-target-for-containers.js | 0 .../{es.next => }/new-target-for-dataview.js | 0 .../new-target-for-date-object.js | 0 .../{es.next => }/new-target-for-number.js | 0 .../{es.next => }/new-target-for-string.js | 0 ...w-target-for-typedarray-and-arraybuffer.js | 0 .../{es.next => }/new-target-generator.js | 0 tests/jerry/{es.next => }/new-target.js | 0 .../jerry/{es.next => }/nullish-coalescing.js | 0 tests/jerry/{es.next => }/number-constants.js | 0 tests/jerry/{es.next => }/number-isfinite.js | 0 tests/jerry/{es.next => }/number-isinteger.js | 0 tests/jerry/{es.next => }/number-isnan.js | 0 .../{es.next => }/number-issafeinteger.js | 0 tests/jerry/{es.next => }/number-methods.js | 0 .../jerry/{es.next => }/numeric-separator.js | 0 tests/jerry/{es.next => }/object-assign.js | 0 .../object-computed-prescanner.js | 0 tests/jerry/{es.next => }/object-computed.js | 0 tests/jerry/{es.next => }/object-copy-data.js | 0 tests/jerry/object-define-properties.js | 136 +++++ tests/jerry/{es.next => }/object-entries.js | 0 .../object-freeze-with-symbol.js | 0 .../jerry/{es.next => }/object-fromEntries.js | 0 .../object-get-own-property-descriptors.js | 0 tests/jerry/object-get-own-property-names.js | 9 + .../object-get-own-property-symbols.js | 0 .../{es.next => }/object-getprototypeof.js | 0 tests/jerry/{es.next => }/object-hasown.js | 0 .../jerry/{es.next => }/object-initializer.js | 0 tests/jerry/{es.next => }/object-is.js | 0 tests/jerry/object-keys.js | 33 ++ .../{es.next => }/object-literal-super.js | 0 tests/jerry/{es.next => }/object-methods.js | 0 tests/jerry/{es.next => }/object-pattern.js | 0 tests/jerry/{es.next => }/object-pattern2.js | 0 .../object-property-redefiniton.js | 0 .../object-prototype-define-getter.js | 0 .../object-prototype-define-setter.js | 0 .../object-prototype-lookup-getter.js | 0 .../object-prototype-lookup-setter.js | 0 .../{es.next => }/object-prototype-proto.js | 0 .../object-prototype-tostring.js | 0 .../{es.next => }/object-seal-with-symbol.js | 0 tests/jerry/{es.next => }/object-values.js | 0 tests/jerry/{es.next => }/octal-literal.js | 0 .../parser-additive-op-assign.js | 0 .../parser-binary-bitwise-op-assign-1.js | 0 .../parser-binary-bitwise-op-assign-2.js | 0 .../parser-binary-bitwise-op-assign-3.js | 0 .../parser-binary-logical-op-assign.js | 0 ...parser-covered-parenthesized-exp-assign.js | 0 .../{es.next => }/parser-delete-op-assign.js | 0 .../parser-equality-exp-assign-1.js | 0 .../parser-equality-exp-assign-2.js | 0 .../{es.next => }/parser-mult-op-assign-1.js | 0 .../{es.next => }/parser-mult-op-assign-2.js | 0 .../{es.next => }/parser-mult-op-assign-3.js | 0 .../{es.next => }/parser-not-op-assign.js | 0 .../parser-plus-negation-op-assign.js | 0 .../parser-postfix-exp-assign.js | 0 .../{es.next => }/parser-prefix-exp-assign.js | 0 .../parser-rational-exp-assign-1.js | 0 .../parser-rational-exp-assign-2.js | 0 .../{es.next => }/parser-shift-exp-assign.js | 0 .../{es.next => }/parser-typeof-op-assign.js | 0 .../{es.next => }/parser-void-op-assign.js | 0 tests/jerry/{es.next => }/private_fields.js | 0 .../{es.next => }/promise-all-iterator.js | 0 .../{es.next => }/promise-all-settled.js | 0 tests/jerry/{es.next => }/promise-any.js | 0 .../jerry/{es.next => }/promise-new-target.js | 0 .../jerry/{es.next => }/promise-on-finally.js | 0 .../{es.next => }/promise-race-iterator.js | 0 tests/jerry/{es.next => }/promise-species.js | 0 tests/jerry/{es.next => }/promise-thenable.js | 0 .../proxy-date-prototype-json.js | 0 .../{es.next => }/proxy-evil-recursion.js | 0 tests/jerry/{es.next => }/proxy-extension.js | 0 tests/jerry/{es.next => }/proxy-for-in.js | 0 tests/jerry/{es.next => }/proxy_call.js | 0 tests/jerry/{es.next => }/proxy_construct.js | 0 tests/jerry/{es.next => }/proxy_create.js | 0 .../proxy_define_own_property.js | 0 tests/jerry/{es.next => }/proxy_delete.js | 0 tests/jerry/{es.next => }/proxy_flags.js | 0 tests/jerry/{es.next => }/proxy_get.js | 0 .../proxy_get_own_property_descriptor.js | 0 .../{es.next => }/proxy_get_prototoype_of.js | 0 tests/jerry/{es.next => }/proxy_has.js | 0 .../{es.next => }/proxy_is_extensible.js | 0 tests/jerry/{es.next => }/proxy_own_keys.js | 0 .../{es.next => }/proxy_prevent_extensions.js | 0 tests/jerry/{es.next => }/proxy_revocable.js | 0 tests/jerry/{es.next => }/proxy_set.js | 0 .../{es.next => }/proxy_set_apply_receiver.js | 0 .../{es.next => }/proxy_set_prototoype_of.js | 0 tests/jerry/{es.next => }/realms1.js | 0 tests/jerry/{es.next => }/realms2.js | 0 tests/jerry/{es.next => }/realms3.js | 0 tests/jerry/{es.next => }/realms4.js | 0 tests/jerry/{es.next => }/reflect-apply.js | 0 .../jerry/{es.next => }/reflect-construct.js | 0 .../{es.next => }/reflect-define-Property.js | 0 .../{es.next => }/reflect-deleteproperty.js | 0 .../reflect-get-own-property-description.js | 0 tests/jerry/{es.next => }/reflect-get.js | 0 .../{es.next => }/reflect-getPrototypeOf.js | 0 tests/jerry/{es.next => }/reflect-has.js | 0 .../{es.next => }/reflect-isextensible.js | 0 tests/jerry/{es.next => }/reflect-own-keys.js | 0 .../reflect-preventextensions.js | 0 tests/jerry/{es.next => }/reflect-set.js | 0 .../{es.next => }/reflect-setPrototypeOf.js | 0 .../regexp-accessors-descriptors.js | 0 tests/jerry/regexp-construct.js | 44 ++ tests/jerry/{es.next => }/regexp-dotAll.js | 0 tests/jerry/{es.next => }/regexp-flags.js | 0 tests/jerry/{es.next => }/regexp-lastindex.js | 0 .../jerry/{es.next => }/regexp-new-target.js | 0 .../regexp-prototype-match-all.js | 0 .../{es.next => }/regexp-prototype-match.js | 0 .../{es.next => }/regexp-prototype-source.js | 0 .../{es.next => }/regexp-prototype-split.js | 0 .../{es.next => }/regexp-prototype-test.js | 0 tests/jerry/regexp-routines.js | 200 +++++++ tests/jerry/{es.next => }/regexp-unicode.js | 0 .../regression-test-issue-1616.js | 0 .../regression-test-issue-1622.js | 0 .../regression-test-issue-1633.js | 0 .../regression-test-issue-1670.js | 0 .../regression-test-issue-1763.js | 0 .../regression-test-issue-1765.js | 0 .../regression-test-issue-1881.js | 0 .../regression-test-issue-1936.js | 0 .../regression-test-issue-1995.js | 0 .../regression-test-issue-1996.js | 0 .../regression-test-issue-1997.js | 0 .../regression-test-issue-2058.js | 0 .../regression-test-issue-2107.js | 0 .../regression-test-issue-2110.js | 0 .../regression-test-issue-2111.js | 0 .../regression-test-issue-2143.js | 0 .../regression-test-issue-2181.js | 0 .../regression-test-issue-2414.js | 0 .../regression-test-issue-2435.js | 0 .../regression-test-issue-2465.js | 0 .../regression-test-issue-2468.js | 0 .../regression-test-issue-2486.js | 0 .../regression-test-issue-2487.js | 0 .../regression-test-issue-2488.js | 0 .../regression-test-issue-2489-original.js | 0 .../regression-test-issue-2490.js | 0 .../regression-test-issue-2528.js | 0 .../regression-test-issue-2544.js | 0 .../regression-test-issue-2587.js | 0 .../regression-test-issue-2602.js | 0 .../regression-test-issue-2603.js | 0 .../regression-test-issue-2657.js | 0 .../regression-test-issue-2658.js | 0 .../regression-test-issue-2664.js | 0 .../regression-test-issue-2666.js | 0 .../regression-test-issue-2667.js | 0 .../regression-test-issue-2671.js | 0 .../regression-test-issue-2693.js | 0 .../regression-test-issue-2698.js | 0 .../regression-test-issue-2724.js | 0 .../regression-test-issue-2743.js | 0 .../regression-test-issue-2757.js | 0 .../regression-test-issue-2768.js | 0 .../regression-test-issue-2769.js | 0 .../regression-test-issue-2770.js | 0 .../regression-test-issue-2777.js | 0 .../regression-test-issue-2779.js | 0 .../regression-test-issue-2782.js | 0 .../regression-test-issue-2783.js | 0 .../regression-test-issue-2822.js | 0 .../regression-test-issue-2823.js | 0 .../regression-test-issue-2825.js | 0 .../regression-test-issue-2842.mjs | 0 .../regression-test-issue-2848.js | 0 .../regression-test-issue-2850.js | 0 .../regression-test-issue-2851.js | 0 .../regression-test-issue-2852.js | 0 .../regression-test-issue-2853.js | 0 .../regression-test-issue-2854.js | 0 .../regression-test-issue-2891.js | 0 .../regression-test-issue-2895.js | 0 .../regression-test-issue-2910.js | 0 .../regression-test-issue-2911.js | 0 .../regression-test-issue-2947.js | 0 .../regression-test-issue-2948.js | 0 .../regression-test-issue-2950.js | 0 .../regression-test-issue-2951.js | 0 .../regression-test-issue-2975.js | 0 .../regression-test-issue-2990.js | 0 .../regression-test-issue-3040.js | 0 .../regression-test-issue-3043-3046.js | 0 .../regression-test-issue-3045.js | 0 .../regression-test-issue-3049.js | 0 .../regression-test-issue-3050.js | 0 .../regression-test-issue-3062.js | 0 .../regression-test-issue-3063.js | 0 .../regression-test-issue-3067.js | 0 .../regression-test-issue-3070.js | 0 tests/jerry/regression-test-issue-3072.js | 10 + .../regression-test-issue-3078.js | 0 .../regression-test-issue-3079.js | 0 .../regression-test-issue-3084.js | 0 .../regression-test-issue-3095.js | 0 .../regression-test-issue-3097.js | 0 .../regression-test-issue-3105.js | 0 .../regression-test-issue-3106.js | 0 .../regression-test-issue-3107.js | 0 .../regression-test-issue-3109.js | 0 .../regression-test-issue-3129.js | 0 .../regression-test-issue-3162.js | 0 .../regression-test-issue-3204.js | 0 .../regression-test-issue-3222.js | 0 .../regression-test-issue-3237.js | 0 .../regression-test-issue-3243.js | 0 .../regression-test-issue-3250.js | 0 .../regression-test-issue-3252.js | 0 .../regression-test-issue-3262.js | 0 .../regression-test-issue-3267.js | 0 .../regression-test-issue-3298.js | 0 .../regression-test-issue-3302.js | 0 .../regression-test-issue-3306.js | 0 .../regression-test-issue-3348.js | 0 .../regression-test-issue-3355.js | 0 .../regression-test-issue-3356.js | 0 .../regression-test-issue-3360.js | 0 .../regression-test-issue-3361.js | 0 .../regression-test-issue-3363.js | 0 .../regression-test-issue-3364.js | 0 .../regression-test-issue-3376.js | 0 .../regression-test-issue-3381.js | 0 .../regression-test-issue-3383.js | 0 .../regression-test-issue-3390.js | 0 .../regression-test-issue-3395.js | 0 .../regression-test-issue-3396.js | 0 .../regression-test-issue-3408.js | 0 .../regression-test-issue-3409.js | 0 .../regression-test-issue-3411.js | 0 .../regression-test-issue-3419.js | 0 .../regression-test-issue-3420.js | 0 .../regression-test-issue-3421.js | 0 .../regression-test-issue-3422.js | 0 .../regression-test-issue-3431.js | 0 .../regression-test-issue-3434.js | 0 .../regression-test-issue-3437.js | 0 .../regression-test-issue-3454.js | 0 .../regression-test-issue-3455.js | 0 .../regression-test-issue-3458.js | 0 .../regression-test-issue-3459.js | 0 .../regression-test-issue-3478.js | 0 .../regression-test-issue-3479.js | 0 .../regression-test-issue-3483.js | 0 .../regression-test-issue-3485.js | 0 .../regression-test-issue-3519.js | 0 .../regression-test-issue-3527.js | 0 .../regression-test-issue-3534.js | 0 .../regression-test-issue-3536.js | 0 .../regression-test-issue-3580.js | 0 .../regression-test-issue-3588.js | 0 .../regression-test-issue-3589.js | 0 .../regression-test-issue-3595.js | 0 .../regression-test-issue-3606.js | 0 .../regression-test-issue-3611.js | 0 .../regression-test-issue-3625.js | 0 .../regression-test-issue-3628.js | 0 .../regression-test-issue-3630.js | 0 .../regression-test-issue-3636.js | 0 .../regression-test-issue-3637.js | 0 .../regression-test-issue-3640.js | 0 .../regression-test-issue-3641.js | 0 .../regression-test-issue-3647.js | 0 .../regression-test-issue-3655.js | 0 .../regression-test-issue-3656.js | 0 .../regression-test-issue-3658.js | 0 .../regression-test-issue-3665.js | 0 .../regression-test-issue-3671.js | 0 .../regression-test-issue-3713.js | 0 .../regression-test-issue-3715.js | 0 .../regression-test-issue-3727.js | 0 .../regression-test-issue-3751.js | 0 .../regression-test-issue-3760.js | 0 .../regression-test-issue-3784.js | 0 .../regression-test-issue-3785.js | 0 .../regression-test-issue-3787.js | 0 .../regression-test-issue-3812.js | 0 .../regression-test-issue-3814.js | 0 .../regression-test-issue-3815.js | 0 .../regression-test-issue-3817.js | 0 .../regression-test-issue-3819.js | 0 .../regression-test-issue-3820.js | 0 .../regression-test-issue-3822.js | 0 .../regression-test-issue-3823.js | 0 .../regression-test-issue-3824.js | 0 .../regression-test-issue-3825.js | 0 .../regression-test-issue-3836.js | 0 .../regression-test-issue-3837.js | 0 .../regression-test-issue-3841.js | 0 .../regression-test-issue-3842.js | 0 .../regression-test-issue-3845.js | 0 .../regression-test-issue-3849.js | 0 .../regression-test-issue-3856.js | 0 .../regression-test-issue-3857.js | 0 .../regression-test-issue-3860.js | 0 .../regression-test-issue-3861.js | 0 .../regression-test-issue-3862.js | 0 .../regression-test-issue-3866.js | 0 .../regression-test-issue-3868.js | 0 .../regression-test-issue-3869.js | 0 .../regression-test-issue-3870.js | 0 .../regression-test-issue-3871.js | 0 .../regression-test-issue-3880.js | 0 .../regression-test-issue-3888.js | 0 .../regression-test-issue-3893.js | 0 .../regression-test-issue-3908.js | 0 .../regression-test-issue-3935.js | 0 .../regression-test-issue-3945.js | 0 .../regression-test-issue-3950.js | 0 .../regression-test-issue-3975.js | 0 .../regression-test-issue-4013.js | 0 .../regression-test-issue-4016-4019.js | 0 .../regression-test-issue-4017.js | 0 .../regression-test-issue-4018.js | 0 .../regression-test-issue-4043.js | 0 .../regression-test-issue-4044.js | 0 .../regression-test-issue-4045.js | 0 .../regression-test-issue-4048.js | 0 .../regression-test-issue-4050.js | 0 .../regression-test-issue-4051.js | 0 .../regression-test-issue-4052.js | 0 .../regression-test-issue-4054.js | 0 .../regression-test-issue-4059.js | 0 .../regression-test-issue-4093.js | 0 .../regression-test-issue-4094.js | 0 .../regression-test-issue-4097.js | 0 .../regression-test-issue-4129.js | 0 .../regression-test-issue-4131.js | 0 .../regression-test-issue-4132.js | 0 .../regression-test-issue-4138.js | 0 .../regression-test-issue-4139.js | 0 .../regression-test-issue-4146.js | 0 .../regression-test-issue-4147.js | 0 .../regression-test-issue-4148.js | 0 .../regression-test-issue-4149.js | 0 .../regression-test-issue-4213.js | 0 .../regression-test-issue-4214.js | 0 .../regression-test-issue-4234.js | 0 .../regression-test-issue-4265.js | 0 .../regression-test-issue-4341.js | 0 .../regression-test-issue-4375.js | 0 .../regression-test-issue-4385.js | 0 .../regression-test-issue-4396.js | 0 .../regression-test-issue-4397.js | 0 .../regression-test-issue-4398.js | 0 .../regression-test-issue-4402.js | 0 .../regression-test-issue-4405.js | 0 .../regression-test-issue-4408.js | 0 .../regression-test-issue-4413.js | 0 .../regression-test-issue-4432.js | 0 .../regression-test-issue-4440.js | 0 .../regression-test-issue-4441.js | 0 .../regression-test-issue-4442.js | 0 .../regression-test-issue-4445.js | 0 .../regression-test-issue-4446.js | 0 .../regression-test-issue-4463.js | 0 .../regression-test-issue-4464.js | 0 .../regression-test-issue-4466.js | 0 .../regression-test-issue-4468.js | 0 .../regression-test-issue-4469.js | 0 .../regression-test-issue-4532.js | 0 .../regression-test-issue-4747.js | 0 .../regression-test-issue-4781.js | 0 .../regression-test-issue-4793.js | 0 .../regression-test-issue-4871.js | 0 .../regression-test-issue-4872.js | 0 .../regression-test-issue-4874.js | 0 .../regression-test-issue-4875.js | 0 .../regression-test-issue-4876.js | 0 .../regression-test-issue-4884.js | 0 .../regression-test-issue-4890.js | 0 .../regression-test-issue-4892.js | 0 .../regression-test-issue-612.js | 0 .../regression-test-issue-782.js | 0 .../{es.next => }/restricted-properties.js | 0 tests/jerry/{es.next => }/set-iterators.js | 0 tests/jerry/{es.next => }/set.js | 0 .../{es.next => }/string-fromcodepoint.js | 0 tests/jerry/{es.next => }/string-iterator.js | 0 .../{es.next => }/string-prototype-at.js | 0 .../string-prototype-codepointat.js | 0 .../string-prototype-endswith.js | 0 .../string-prototype-includes.js | 0 .../string-prototype-match-all.js | 0 tests/jerry/string-prototype-match.js | 69 +++ .../{es.next => }/string-prototype-padding.js | 0 .../{es.next => }/string-prototype-repeat.js | 0 .../string-prototype-replace-all.js | 0 tests/jerry/string-prototype-split.js | 10 + .../string-prototype-startswith.js | 0 tests/jerry/string-prototype-trim.js | 16 + .../string-raw-crash-escaping-backslash.js | 0 tests/jerry/{es.next => }/string-raw.js | 0 .../string-upper-lower-case-conversion.js | 53 ++ tests/jerry/{es.next => }/super-assignment.js | 0 .../symbol-computed-object-literal.js | 0 tests/jerry/{es.next => }/symbol-exception.js | 0 tests/jerry/{es.next => }/symbol-in.js | 0 .../symbol-isconcatspreadable.js | 0 .../jerry/{es.next => }/symbol-key-keyfor.js | 0 .../symbol-prototype-description.js | 0 .../symbol-prototype-symbol-toprimitive.js | 0 .../symbol-prototype-tostring.js | 0 .../{es.next => }/symbol-prototype-valueof.js | 0 .../symbol-prototype.toprimitive.js | 0 tests/jerry/{es.next => }/symbol-replace.js | 0 tests/jerry/{es.next => }/symbol-search.js | 0 tests/jerry/{es.next => }/symbol-split.js | 0 .../jerry/{es.next => }/symbol-unscopables.js | 0 tests/jerry/{es.next => }/symbol.js | 0 .../{es.next => }/tagged-template-literal.js | 0 tests/jerry/{es.next => }/template_string.js | 0 tests/jerry/test_suite_15.js | 6 + tests/jerry/{es.next => }/test_suite_19.js | 0 tests/jerry/{es.next => }/test_suite_22.js | 0 tests/jerry/{es.next => }/test_suite_24.js | 0 tests/jerry/{es.next => }/test_suite_25.js | 0 tests/jerry/{es.next => }/to-length.js | 0 tests/jerry/{es.next => }/to-number-string.js | 0 tests/jerry/{es.next => }/to-property-key.js | 0 tests/jerry/{es.next => }/try-catch.js | 0 tests/jerry/{es.next => }/try-pattern.js | 0 .../{es.next => }/typedArray-constructor.js | 0 tests/jerry/{es.next => }/typedArray-fill.js | 0 .../{es.next => }/typedArray-find-index.js | 0 tests/jerry/{es.next => }/typedArray-find.js | 0 tests/jerry/{es.next => }/typedArray-join.js | 0 .../typedArray-set-with-typedArray.js | 0 tests/jerry/{es.next => }/typedArray-sort.js | 0 .../{es.next => }/typedArray-stringify.js | 0 .../{es.next => }/typedArray-subarray.js | 0 .../{es.next => }/typedArray-tostring.js | 0 tests/jerry/{es.next => }/typedarray-from.js | 0 tests/jerry/{es.next => }/typedarray-of.js | 0 .../{es.next => }/typedarray-offset-modulo.js | 0 .../{es.next => }/typedarray-prototype-at.js | 0 .../typedarray-prototype-copy-within.js | 0 .../typedarray-prototype-entries.js | 0 .../typedarray-prototype-includes.js | 0 .../typedarray-prototype-indexof.js | 0 .../typedarray-prototype-keys.js | 0 .../typedarray-prototype-lastindexof.js | 0 ...edarray-prototype-slice-ext-arraybuffer.js | 0 .../typedarray-prototype-slice.js | 0 .../typedarray-prototype-tolocalestring.js | 0 .../typedarray-prototype-values.js | 0 tests/jerry/{es.next => }/typedarray-put.js | 0 .../typedarray-symbol-properties.js | 0 .../unicode-escape-identifiers.js | 0 tests/jerry/{es.next => }/weakmap.js | 0 tests/jerry/{es.next => }/weakref.js | 0 tests/jerry/{es.next => }/weakset.js | 0 tests/snapshot-tests-skiplist.txt | 61 +++ tests/test262-es6-excludelist.xml | 341 ------------ ...xcludelist.xml => test262-excludelist.xml} | 0 .../test-api-object-property-names.c | 5 - tests/unit-core/test-api-promise.c | 6 - tests/unit-core/test-api-value-type.c | 17 +- tests/unit-core/test-api.c | 2 - tests/unit-core/test-get-own-property.c | 31 +- tests/unit-core/test-internal-properties.c | 26 +- tests/unit-core/test-newtarget.c | 7 - tests/unit-core/test-promise-callback.c | 6 - tests/unit-core/test-promise.c | 7 - tests/unit-core/test-regexp-dotall-unicode.c | 8 +- tests/unit-core/test-regression-3588.c | 7 - tests/unit-core/test-script-user-value.c | 10 +- tests/unit-core/test-symbol.c | 6 - tests/unit-core/test-to-length.c | 8 - tools/run-tests.py | 95 ++-- tools/runners/run-test-suite-test262.py | 41 +- tools/settings.py | 1 + 973 files changed, 1902 insertions(+), 8240 deletions(-) delete mode 100644 jerry-core/profiles/es2015-subset.profile delete mode 100644 jerry-core/profiles/es5.1.profile rename tests/jerry/{es.next => }/argument-spread.js (100%) rename tests/jerry/{es.next => }/arguments-iterator.js (100%) rename tests/jerry/{es.next => }/arithmetic-parse.js (100%) rename tests/jerry/{es.next => }/arithmetics-2.js (100%) rename tests/jerry/{es.next => }/arithmetics-3.js (100%) rename tests/jerry/{es.next => }/array-from.js (100%) rename tests/jerry/{es.next => }/array-isarray.js (100%) rename tests/jerry/{es.next => }/array-new-target-support.js (100%) rename tests/jerry/{es.next => }/array-of.js (100%) rename tests/jerry/{es.next => }/array-pattern.js (100%) rename tests/jerry/{es.next => }/array-prototype-at.js (100%) rename tests/jerry/{es.next => }/array-prototype-copywithin.js (100%) rename tests/jerry/{es.next => }/array-prototype-entries.js (100%) rename tests/jerry/{es.next => }/array-prototype-fill.js (100%) rename tests/jerry/{es.next => }/array-prototype-find-index.js (100%) rename tests/jerry/{es.next => }/array-prototype-find.js (100%) rename tests/jerry/{es.next => }/array-prototype-flat-flatMap.js (100%) rename tests/jerry/{es.next => }/array-prototype-includes.js (100%) rename tests/jerry/{es.next => }/array-prototype-keys.js (100%) rename tests/jerry/{es.next => }/array-prototype-values.js (100%) rename tests/jerry/{es.next => }/array-species.js (100%) rename tests/jerry/{es.next => }/array-spread.js (100%) rename tests/jerry/{es.next => }/arraybuffer-isview.js (100%) rename tests/jerry/{es.next => }/arrow-assignment.js (100%) rename tests/jerry/{es.next => }/arrow-eval.js (100%) rename tests/jerry/{es.next => }/arrow-function.js (100%) rename tests/jerry/{es.next => }/arrow-this.js (100%) rename tests/jerry/{es.next => }/async-from-sync-iterator.js (100%) rename tests/jerry/{es.next => }/atomics.js (100%) rename tests/jerry/{es.next => }/bigint-typedarray-prototype-filter.js (100%) rename tests/jerry/{es.next => }/bigint-typedarray-prototype-reduce.js (100%) rename tests/jerry/{es.next => }/bigint1.js (100%) rename tests/jerry/{es.next => }/bigint2.js (100%) rename tests/jerry/{es.next => }/bigint3.js (100%) rename tests/jerry/{es.next => }/bigint4.js (100%) rename tests/jerry/{es.next => }/bigint5.js (100%) rename tests/jerry/{es.next => }/bigint6.js (100%) rename tests/jerry/{es.next => }/bigint7.js (100%) rename tests/jerry/{es.next => }/bigint8.js (100%) rename tests/jerry/{es.next => }/bigint9.js (100%) rename tests/jerry/{es.next => }/binary-literal.js (100%) rename tests/jerry/{es.next => }/block-var-redecl.js (100%) rename tests/jerry/{es.next => }/builtin-objects-accessor-property-configurable.js (100%) rename tests/jerry/{es.next => }/class-fields1.js (100%) rename tests/jerry/{es.next => }/class-fields2.js (100%) rename tests/jerry/{es.next => }/class-fields3.js (100%) rename tests/jerry/{es.next => }/class-fields4.js (100%) rename tests/jerry/{es.next => }/class-fields5.js (100%) rename tests/jerry/{es.next => }/class-get-set-as-method.js (100%) rename tests/jerry/{es.next => }/class-inheritance-bound.js (100%) rename tests/jerry/{es.next => }/class-inheritance-builtin-array.js (100%) rename tests/jerry/{es.next => }/class-inheritance-builtin-typedarray.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-1.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-10.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-11.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-12.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-13.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-14.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-15.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-2.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-3.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-4.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-5.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-6.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-7.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-8.js (100%) rename tests/jerry/{es.next => }/class-inheritance-core-9.js (100%) rename tests/jerry/{es.next => }/class-inheritance-early-semantics.js (100%) rename tests/jerry/{es.next => }/class-inheritance-has-instance.js (100%) rename tests/jerry/{es.next => }/class-inheritance-inner-class.js (100%) rename tests/jerry/{es.next => }/class-inheritance-mixins-1.js (100%) rename tests/jerry/{es.next => }/class-inheritance-mixins-2.js (100%) rename tests/jerry/{es.next => }/class-super-access-direct.js (100%) rename tests/jerry/{es.next => }/class-super-access-indirect.js (100%) rename tests/jerry/{es.next => }/class-with.js (100%) rename tests/jerry/{es.next => }/class.js (100%) rename tests/jerry/{es.next => }/class_static_block.js (100%) rename tests/jerry/{es.next => }/const1.js (100%) rename tests/jerry/{es.next => }/continue.js (100%) rename tests/jerry/{es.next => }/dataview.js (100%) rename tests/jerry/{es.next => }/date-prototype-toprimitive.js (100%) rename tests/jerry/{es.next => }/decimal-with-leading-zero.js (100%) rename tests/jerry/{es.next => }/directive.js (100%) rename tests/jerry/{es.next => }/error-names.js (100%) delete mode 100644 tests/jerry/es.next/arguments.js delete mode 100644 tests/jerry/es.next/array-prototype-slice.js delete mode 100644 tests/jerry/es.next/array-prototype-sort.js delete mode 100644 tests/jerry/es.next/array-prototype-unshift.js delete mode 100644 tests/jerry/es.next/builtin-prototypes.js delete mode 100644 tests/jerry/es.next/date-construct.js delete mode 100644 tests/jerry/es.next/error.js delete mode 100644 tests/jerry/es.next/function-prototype-bind.js delete mode 100644 tests/jerry/es.next/function-prototype-tostring.js delete mode 100644 tests/jerry/es.next/json-stringify.js delete mode 100644 tests/jerry/es.next/object-define-properties.js delete mode 100644 tests/jerry/es.next/object-get-own-property-names.js delete mode 100644 tests/jerry/es.next/object-keys.js delete mode 100644 tests/jerry/es.next/regexp-construct.js delete mode 100644 tests/jerry/es.next/regexp-routines.js delete mode 100644 tests/jerry/es.next/regression-test-issue-3072.js delete mode 100644 tests/jerry/es.next/string-prototype-match.js delete mode 100644 tests/jerry/es.next/string-prototype-split.js delete mode 100644 tests/jerry/es.next/string-prototype-trim.js delete mode 100644 tests/jerry/es.next/string-upper-lower-case-conversion.js delete mode 100644 tests/jerry/es.next/test_suite_15.js delete mode 100644 tests/jerry/es5.1/arguments.js delete mode 100644 tests/jerry/es5.1/arithmetic-parse.js delete mode 100644 tests/jerry/es5.1/arithmetics.js delete mode 100644 tests/jerry/es5.1/array-prototype-push.js delete mode 100644 tests/jerry/es5.1/array-prototype-unshift.js delete mode 100644 tests/jerry/es5.1/builtin-prototypes.js delete mode 100644 tests/jerry/es5.1/date-utc.js delete mode 100644 tests/jerry/es5.1/func-decl.js delete mode 100644 tests/jerry/es5.1/func-length.js delete mode 100644 tests/jerry/es5.1/json-superset.js delete mode 100644 tests/jerry/es5.1/object-getprototypeof.js delete mode 100644 tests/jerry/es5.1/object-literal-fails.js delete mode 100644 tests/jerry/es5.1/object-methods.js delete mode 100644 tests/jerry/es5.1/regexp-construct.js delete mode 100644 tests/jerry/es5.1/regexp-lastindex.js delete mode 100644 tests/jerry/es5.1/regexp-routines.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-1065.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-1080.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-116.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-1546.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-1641.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-2058.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-312.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-3151-function.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-3637.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-3815.js delete mode 100644 tests/jerry/es5.1/regression-test-issue-787.js delete mode 100644 tests/jerry/es5.1/string-prototype-split.js delete mode 100644 tests/jerry/es5.1/string-regexp-methods.js delete mode 100644 tests/jerry/es5.1/string-upper-lower-case-conversion.js delete mode 100644 tests/jerry/es5.1/test_suite_15.js delete mode 100644 tests/jerry/es5.1/try-catch.js rename tests/jerry/{es.next => }/exponentiation.js (100%) rename tests/jerry/{es.next => }/for-await-of-iterator-close.js (100%) rename tests/jerry/{es.next => }/for-await-of.js (100%) rename tests/jerry/{es.next => }/for-let-reference-error.js (100%) rename tests/jerry/{es.next => }/for-let.js (100%) rename tests/jerry/{es.next => }/for-of-iterator-close.js (100%) rename tests/jerry/{es.next => }/for-of-statement-head.js (100%) rename tests/jerry/{es.next => }/for-of.js (100%) rename tests/jerry/{es.next => }/for-pattern.js (100%) rename tests/jerry/{es.next => }/forin-header-strict.js (100%) rename tests/jerry/{es.next => }/function-accessor.js (100%) rename tests/jerry/{es.next => }/function-arguments-caller.js (100%) rename tests/jerry/{es.next => }/function-async-gen1.js (100%) rename tests/jerry/{es.next => }/function-async-gen2.js (100%) rename tests/jerry/{es.next => }/function-async-gen3.js (100%) rename tests/jerry/{es.next => }/function-async-gen4.js (100%) rename tests/jerry/{es.next => }/function-async1.js (100%) rename tests/jerry/{es.next => }/function-async2.js (100%) rename tests/jerry/{es.next => }/function-async3.js (100%) rename tests/jerry/{es.next => }/function-await1.js (100%) rename tests/jerry/{es.next => }/function-await2.js (100%) rename tests/jerry/{es.next => }/function-await3.js (100%) rename tests/jerry/{es.next => }/function-call.js (100%) rename tests/jerry/{es.next => }/function-decl.js (100%) rename tests/jerry/{es.next => }/function-if.js (100%) rename tests/jerry/{es.next => }/function-name.js (100%) rename tests/jerry/{es.next => }/function-new-target.js (100%) rename tests/jerry/{es.next => }/function-param-init.js (100%) rename tests/jerry/{es.next => }/function-param-init2.js (100%) rename tests/jerry/{es.next => }/function-param-init3.js (100%) rename tests/jerry/{es.next => }/function-param-init4.js (100%) rename tests/jerry/{es.next => }/function-pattern1.js (100%) rename tests/jerry/{es.next => }/function-pattern2.js (100%) rename tests/jerry/{es.next => }/function-properties.js (100%) rename tests/jerry/{es.next => }/function-prototype-hasinstance-class.js (100%) rename tests/jerry/{es.next => }/function-prototype-hasinstance.js (100%) rename tests/jerry/{es.next => }/function-rest-parameter.js (100%) rename tests/jerry/{es.next => }/function-scope.js (100%) rename tests/jerry/{es.next => }/function-scope2.js (100%) rename tests/jerry/{es.next => }/generator-function-in-single-statement.js (100%) rename tests/jerry/{es.next => }/generator-function.js (100%) rename tests/jerry/{es.next => }/generator-initializer.js (100%) rename tests/jerry/{es.next => }/generator-return.js (100%) rename tests/jerry/{es.next => }/generator-throw.js (100%) rename tests/jerry/{es.next => }/generator-yield-iterator.js (100%) rename tests/jerry/{es.next => }/generator-yield.js (100%) rename tests/jerry/{es.next => }/generator.js (100%) rename tests/jerry/{es.next => }/global-this.js (100%) rename tests/jerry/{es.next => }/global-unescape.js (100%) rename tests/jerry/{es.next => }/identifier-escape.js (100%) rename tests/jerry/{es.next => }/instanceof-symbol-hasinstance-class.js (100%) rename tests/jerry/{es.next => }/instanceof-symbol-hasinstance.js (100%) rename tests/jerry/{es.next => }/intrinsic-properties.js (100%) rename tests/jerry/{es.next => }/iterator-prototype.js (100%) rename tests/jerry/{es.next => }/json-parse-proxy.js (100%) rename tests/jerry/{es.next => }/json-superset.js (100%) rename tests/jerry/{es.next => }/length-property.js (100%) rename tests/jerry/{es.next => }/let1.js (100%) rename tests/jerry/{es.next => }/let10.js (100%) rename tests/jerry/{es.next => }/let11.js (100%) rename tests/jerry/{es.next => }/let12.js (100%) rename tests/jerry/{es.next => }/let13.js (100%) rename tests/jerry/{es.next => }/let14.js (100%) rename tests/jerry/{es.next => }/let15.js (100%) rename tests/jerry/{es.next => }/let2.js (100%) rename tests/jerry/{es.next => }/let3.js (100%) rename tests/jerry/{es.next => }/let4.js (100%) rename tests/jerry/{es.next => }/let5.js (100%) rename tests/jerry/{es.next => }/let6.js (100%) rename tests/jerry/{es.next => }/let7.js (100%) rename tests/jerry/{es.next => }/let8.js (100%) rename tests/jerry/{es.next => }/let9.js (100%) rename tests/jerry/{es.next => }/logical-assignment.js (100%) rename tests/jerry/{es.next => }/map-iterators.js (100%) rename tests/jerry/{es.next => }/map-prototype-foreach.js (100%) rename tests/jerry/{es.next => }/map.js (100%) rename tests/jerry/{es.next => }/math-acosh.js (100%) rename tests/jerry/{es.next => }/math-asinh.js (100%) rename tests/jerry/{es.next => }/math-atanh.js (100%) rename tests/jerry/{es.next => }/math-cbrt.js (100%) rename tests/jerry/{es.next => }/math-cosh.js (100%) rename tests/jerry/{es.next => }/math-expm1.js (100%) rename tests/jerry/{es.next => }/math-functions-tonumber-rule2.js (100%) rename tests/jerry/{es.next => }/math-log10.js (100%) rename tests/jerry/{es.next => }/math-log1p.js (100%) rename tests/jerry/{es.next => }/math-log2.js (100%) rename tests/jerry/{es.next => }/math-sign.js (100%) rename tests/jerry/{es.next => }/math-sinh.js (100%) rename tests/jerry/{es.next => }/math-tanh.js (100%) rename tests/jerry/{es.next => }/math-trunc.js (100%) rename tests/jerry/{es.next => }/module-circular-01.mjs (100%) rename tests/jerry/{es.next => }/module-circular-02.mjs (100%) rename tests/jerry/{es.next => }/module-circular-03.mjs (100%) rename tests/jerry/{es.next => }/module-circular-04.mjs (100%) rename tests/jerry/{es.next => }/module-circular-05.mjs (100%) rename tests/jerry/{es.next => }/module-circular-06.mjs (100%) rename tests/jerry/{es.next => }/module-circular-07.mjs (100%) rename tests/jerry/{es.next => }/module-circular-08.mjs (100%) rename tests/jerry/{es.next => }/module-circular-09.mjs (100%) rename tests/jerry/{es.next => }/module-dynamic-import.js (100%) rename tests/jerry/{es.next => }/module-export-01.mjs (100%) rename tests/jerry/{es.next => }/module-export-02.mjs (100%) rename tests/jerry/{es.next => }/module-export-03.mjs (100%) rename tests/jerry/{es.next => }/module-export-04.mjs (100%) rename tests/jerry/{es.next => }/module-export-05.mjs (100%) rename tests/jerry/{es.next => }/module-export-06.mjs (100%) rename tests/jerry/{es.next => }/module-export-07.mjs (100%) rename tests/jerry/{es.next => }/module-export-08.mjs (100%) rename tests/jerry/{es.next => }/module-export-09.mjs (100%) rename tests/jerry/{es.next => }/module-export-10.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-1.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-10.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-2.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-3.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-4.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-5.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-6.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-7.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-8.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-9.mjs (100%) rename tests/jerry/{es.next => }/module-export-default-main.mjs (100%) rename tests/jerry/{es.next => }/module-export-fail-test.mjs (100%) rename tests/jerry/{es.next => }/module-import-01.mjs (100%) rename tests/jerry/{es.next => }/module-import-02.mjs (100%) rename tests/jerry/{es.next => }/module-import-03.mjs (100%) rename tests/jerry/{es.next => }/module-import-04.mjs (100%) rename tests/jerry/{es.next => }/module-import-05.mjs (100%) rename tests/jerry/{es.next => }/module-import-06.mjs (100%) rename tests/jerry/{es.next => }/module-import-07.mjs (100%) rename tests/jerry/{es.next => }/module-namespace-01.mjs (100%) rename tests/jerry/{es.next => }/module-namespace-02.mjs (100%) rename tests/jerry/{es.next => }/module-namespace-03.mjs (100%) rename tests/jerry/{es.next => }/module-namespace-04.mjs (100%) rename tests/jerry/{es.next => }/module-source-name-export.mjs (100%) rename tests/jerry/{es.next => }/module-source-name.mjs (100%) rename tests/jerry/{es.next => }/new-target-async.js (100%) rename tests/jerry/{es.next => }/new-target-class.js (100%) rename tests/jerry/{es.next => }/new-target-error.js (100%) rename tests/jerry/{es.next => }/new-target-for-boolean.js (100%) rename tests/jerry/{es.next => }/new-target-for-containers.js (100%) rename tests/jerry/{es.next => }/new-target-for-dataview.js (100%) rename tests/jerry/{es.next => }/new-target-for-date-object.js (100%) rename tests/jerry/{es.next => }/new-target-for-number.js (100%) rename tests/jerry/{es.next => }/new-target-for-string.js (100%) rename tests/jerry/{es.next => }/new-target-for-typedarray-and-arraybuffer.js (100%) rename tests/jerry/{es.next => }/new-target-generator.js (100%) rename tests/jerry/{es.next => }/new-target.js (100%) rename tests/jerry/{es.next => }/nullish-coalescing.js (100%) rename tests/jerry/{es.next => }/number-constants.js (100%) rename tests/jerry/{es.next => }/number-isfinite.js (100%) rename tests/jerry/{es.next => }/number-isinteger.js (100%) rename tests/jerry/{es.next => }/number-isnan.js (100%) rename tests/jerry/{es.next => }/number-issafeinteger.js (100%) rename tests/jerry/{es.next => }/number-methods.js (100%) rename tests/jerry/{es.next => }/numeric-separator.js (100%) rename tests/jerry/{es.next => }/object-assign.js (100%) rename tests/jerry/{es.next => }/object-computed-prescanner.js (100%) rename tests/jerry/{es.next => }/object-computed.js (100%) rename tests/jerry/{es.next => }/object-copy-data.js (100%) rename tests/jerry/{es.next => }/object-entries.js (100%) rename tests/jerry/{es.next => }/object-freeze-with-symbol.js (100%) rename tests/jerry/{es.next => }/object-fromEntries.js (100%) rename tests/jerry/{es.next => }/object-get-own-property-descriptors.js (100%) rename tests/jerry/{es.next => }/object-get-own-property-symbols.js (100%) rename tests/jerry/{es.next => }/object-getprototypeof.js (100%) rename tests/jerry/{es.next => }/object-hasown.js (100%) rename tests/jerry/{es.next => }/object-initializer.js (100%) rename tests/jerry/{es.next => }/object-is.js (100%) rename tests/jerry/{es.next => }/object-literal-super.js (100%) rename tests/jerry/{es.next => }/object-methods.js (100%) rename tests/jerry/{es.next => }/object-pattern.js (100%) rename tests/jerry/{es.next => }/object-pattern2.js (100%) rename tests/jerry/{es.next => }/object-property-redefiniton.js (100%) rename tests/jerry/{es.next => }/object-prototype-define-getter.js (100%) rename tests/jerry/{es.next => }/object-prototype-define-setter.js (100%) rename tests/jerry/{es.next => }/object-prototype-lookup-getter.js (100%) rename tests/jerry/{es.next => }/object-prototype-lookup-setter.js (100%) rename tests/jerry/{es.next => }/object-prototype-proto.js (100%) rename tests/jerry/{es.next => }/object-prototype-tostring.js (100%) rename tests/jerry/{es.next => }/object-seal-with-symbol.js (100%) rename tests/jerry/{es.next => }/object-values.js (100%) rename tests/jerry/{es.next => }/octal-literal.js (100%) rename tests/jerry/{es.next => }/parser-additive-op-assign.js (100%) rename tests/jerry/{es.next => }/parser-binary-bitwise-op-assign-1.js (100%) rename tests/jerry/{es.next => }/parser-binary-bitwise-op-assign-2.js (100%) rename tests/jerry/{es.next => }/parser-binary-bitwise-op-assign-3.js (100%) rename tests/jerry/{es.next => }/parser-binary-logical-op-assign.js (100%) rename tests/jerry/{es.next => }/parser-covered-parenthesized-exp-assign.js (100%) rename tests/jerry/{es.next => }/parser-delete-op-assign.js (100%) rename tests/jerry/{es.next => }/parser-equality-exp-assign-1.js (100%) rename tests/jerry/{es.next => }/parser-equality-exp-assign-2.js (100%) rename tests/jerry/{es.next => }/parser-mult-op-assign-1.js (100%) rename tests/jerry/{es.next => }/parser-mult-op-assign-2.js (100%) rename tests/jerry/{es.next => }/parser-mult-op-assign-3.js (100%) rename tests/jerry/{es.next => }/parser-not-op-assign.js (100%) rename tests/jerry/{es.next => }/parser-plus-negation-op-assign.js (100%) rename tests/jerry/{es.next => }/parser-postfix-exp-assign.js (100%) rename tests/jerry/{es.next => }/parser-prefix-exp-assign.js (100%) rename tests/jerry/{es.next => }/parser-rational-exp-assign-1.js (100%) rename tests/jerry/{es.next => }/parser-rational-exp-assign-2.js (100%) rename tests/jerry/{es.next => }/parser-shift-exp-assign.js (100%) rename tests/jerry/{es.next => }/parser-typeof-op-assign.js (100%) rename tests/jerry/{es.next => }/parser-void-op-assign.js (100%) rename tests/jerry/{es.next => }/private_fields.js (100%) rename tests/jerry/{es.next => }/promise-all-iterator.js (100%) rename tests/jerry/{es.next => }/promise-all-settled.js (100%) rename tests/jerry/{es.next => }/promise-any.js (100%) rename tests/jerry/{es.next => }/promise-new-target.js (100%) rename tests/jerry/{es.next => }/promise-on-finally.js (100%) rename tests/jerry/{es.next => }/promise-race-iterator.js (100%) rename tests/jerry/{es.next => }/promise-species.js (100%) rename tests/jerry/{es.next => }/promise-thenable.js (100%) rename tests/jerry/{es.next => }/proxy-date-prototype-json.js (100%) rename tests/jerry/{es.next => }/proxy-evil-recursion.js (100%) rename tests/jerry/{es.next => }/proxy-extension.js (100%) rename tests/jerry/{es.next => }/proxy-for-in.js (100%) rename tests/jerry/{es.next => }/proxy_call.js (100%) rename tests/jerry/{es.next => }/proxy_construct.js (100%) rename tests/jerry/{es.next => }/proxy_create.js (100%) rename tests/jerry/{es.next => }/proxy_define_own_property.js (100%) rename tests/jerry/{es.next => }/proxy_delete.js (100%) rename tests/jerry/{es.next => }/proxy_flags.js (100%) rename tests/jerry/{es.next => }/proxy_get.js (100%) rename tests/jerry/{es.next => }/proxy_get_own_property_descriptor.js (100%) rename tests/jerry/{es.next => }/proxy_get_prototoype_of.js (100%) rename tests/jerry/{es.next => }/proxy_has.js (100%) rename tests/jerry/{es.next => }/proxy_is_extensible.js (100%) rename tests/jerry/{es.next => }/proxy_own_keys.js (100%) rename tests/jerry/{es.next => }/proxy_prevent_extensions.js (100%) rename tests/jerry/{es.next => }/proxy_revocable.js (100%) rename tests/jerry/{es.next => }/proxy_set.js (100%) rename tests/jerry/{es.next => }/proxy_set_apply_receiver.js (100%) rename tests/jerry/{es.next => }/proxy_set_prototoype_of.js (100%) rename tests/jerry/{es.next => }/realms1.js (100%) rename tests/jerry/{es.next => }/realms2.js (100%) rename tests/jerry/{es.next => }/realms3.js (100%) rename tests/jerry/{es.next => }/realms4.js (100%) rename tests/jerry/{es.next => }/reflect-apply.js (100%) rename tests/jerry/{es.next => }/reflect-construct.js (100%) rename tests/jerry/{es.next => }/reflect-define-Property.js (100%) rename tests/jerry/{es.next => }/reflect-deleteproperty.js (100%) rename tests/jerry/{es.next => }/reflect-get-own-property-description.js (100%) rename tests/jerry/{es.next => }/reflect-get.js (100%) rename tests/jerry/{es.next => }/reflect-getPrototypeOf.js (100%) rename tests/jerry/{es.next => }/reflect-has.js (100%) rename tests/jerry/{es.next => }/reflect-isextensible.js (100%) rename tests/jerry/{es.next => }/reflect-own-keys.js (100%) rename tests/jerry/{es.next => }/reflect-preventextensions.js (100%) rename tests/jerry/{es.next => }/reflect-set.js (100%) rename tests/jerry/{es.next => }/reflect-setPrototypeOf.js (100%) rename tests/jerry/{es.next => }/regexp-accessors-descriptors.js (100%) rename tests/jerry/{es.next => }/regexp-dotAll.js (100%) rename tests/jerry/{es.next => }/regexp-flags.js (100%) rename tests/jerry/{es.next => }/regexp-lastindex.js (100%) rename tests/jerry/{es.next => }/regexp-new-target.js (100%) rename tests/jerry/{es.next => }/regexp-prototype-match-all.js (100%) rename tests/jerry/{es.next => }/regexp-prototype-match.js (100%) rename tests/jerry/{es.next => }/regexp-prototype-source.js (100%) rename tests/jerry/{es.next => }/regexp-prototype-split.js (100%) rename tests/jerry/{es.next => }/regexp-prototype-test.js (100%) rename tests/jerry/{es.next => }/regexp-unicode.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1616.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1622.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1633.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1670.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1763.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1765.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1881.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1936.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1995.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1996.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-1997.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2058.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2107.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2110.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2111.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2143.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2181.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2414.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2435.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2465.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2468.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2486.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2487.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2488.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2489-original.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2490.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2528.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2544.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2587.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2602.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2603.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2657.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2658.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2664.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2666.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2667.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2671.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2693.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2698.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2724.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2743.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2757.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2768.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2769.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2770.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2777.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2779.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2782.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2783.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2822.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2823.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2825.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2842.mjs (100%) rename tests/jerry/{es.next => }/regression-test-issue-2848.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2850.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2851.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2852.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2853.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2854.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2891.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2895.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2910.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2911.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2947.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2948.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2950.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2951.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2975.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-2990.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3040.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3043-3046.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3045.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3049.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3050.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3062.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3063.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3067.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3070.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3078.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3079.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3084.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3095.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3097.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3105.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3106.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3107.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3109.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3129.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3162.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3204.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3222.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3237.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3243.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3250.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3252.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3262.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3267.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3298.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3302.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3306.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3348.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3355.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3356.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3360.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3361.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3363.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3364.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3376.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3381.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3383.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3390.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3395.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3396.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3408.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3409.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3411.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3419.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3420.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3421.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3422.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3431.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3434.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3437.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3454.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3455.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3458.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3459.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3478.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3479.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3483.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3485.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3519.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3527.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3534.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3536.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3580.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3588.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3589.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3595.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3606.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3611.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3625.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3628.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3630.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3636.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3637.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3640.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3641.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3647.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3655.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3656.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3658.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3665.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3671.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3713.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3715.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3727.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3751.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3760.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3784.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3785.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3787.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3812.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3814.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3815.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3817.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3819.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3820.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3822.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3823.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3824.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3825.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3836.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3837.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3841.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3842.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3845.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3849.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3856.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3857.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3860.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3861.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3862.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3866.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3868.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3869.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3870.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3871.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3880.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3888.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3893.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3908.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3935.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3945.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3950.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-3975.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4013.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4016-4019.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4017.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4018.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4043.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4044.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4045.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4048.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4050.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4051.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4052.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4054.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4059.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4093.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4094.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4097.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4129.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4131.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4132.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4138.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4139.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4146.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4147.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4148.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4149.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4213.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4214.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4234.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4265.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4341.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4375.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4385.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4396.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4397.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4398.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4402.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4405.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4408.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4413.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4432.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4440.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4441.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4442.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4445.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4446.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4463.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4464.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4466.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4468.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4469.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4532.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4747.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4781.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4793.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4871.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4872.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4874.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4875.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4876.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4884.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4890.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-4892.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-612.js (100%) rename tests/jerry/{es.next => }/regression-test-issue-782.js (100%) rename tests/jerry/{es.next => }/restricted-properties.js (100%) rename tests/jerry/{es.next => }/set-iterators.js (100%) rename tests/jerry/{es.next => }/set.js (100%) rename tests/jerry/{es.next => }/string-fromcodepoint.js (100%) rename tests/jerry/{es.next => }/string-iterator.js (100%) rename tests/jerry/{es.next => }/string-prototype-at.js (100%) rename tests/jerry/{es.next => }/string-prototype-codepointat.js (100%) rename tests/jerry/{es.next => }/string-prototype-endswith.js (100%) rename tests/jerry/{es.next => }/string-prototype-includes.js (100%) rename tests/jerry/{es.next => }/string-prototype-match-all.js (100%) rename tests/jerry/{es.next => }/string-prototype-padding.js (100%) rename tests/jerry/{es.next => }/string-prototype-repeat.js (100%) rename tests/jerry/{es.next => }/string-prototype-replace-all.js (100%) rename tests/jerry/{es.next => }/string-prototype-startswith.js (100%) rename tests/jerry/{es.next => }/string-raw-crash-escaping-backslash.js (100%) rename tests/jerry/{es.next => }/string-raw.js (100%) rename tests/jerry/{es.next => }/super-assignment.js (100%) rename tests/jerry/{es.next => }/symbol-computed-object-literal.js (100%) rename tests/jerry/{es.next => }/symbol-exception.js (100%) rename tests/jerry/{es.next => }/symbol-in.js (100%) rename tests/jerry/{es.next => }/symbol-isconcatspreadable.js (100%) rename tests/jerry/{es.next => }/symbol-key-keyfor.js (100%) rename tests/jerry/{es.next => }/symbol-prototype-description.js (100%) rename tests/jerry/{es.next => }/symbol-prototype-symbol-toprimitive.js (100%) rename tests/jerry/{es.next => }/symbol-prototype-tostring.js (100%) rename tests/jerry/{es.next => }/symbol-prototype-valueof.js (100%) rename tests/jerry/{es.next => }/symbol-prototype.toprimitive.js (100%) rename tests/jerry/{es.next => }/symbol-replace.js (100%) rename tests/jerry/{es.next => }/symbol-search.js (100%) rename tests/jerry/{es.next => }/symbol-split.js (100%) rename tests/jerry/{es.next => }/symbol-unscopables.js (100%) rename tests/jerry/{es.next => }/symbol.js (100%) rename tests/jerry/{es.next => }/tagged-template-literal.js (100%) rename tests/jerry/{es.next => }/template_string.js (100%) rename tests/jerry/{es.next => }/test_suite_19.js (100%) rename tests/jerry/{es.next => }/test_suite_22.js (100%) rename tests/jerry/{es.next => }/test_suite_24.js (100%) rename tests/jerry/{es.next => }/test_suite_25.js (100%) rename tests/jerry/{es.next => }/to-length.js (100%) rename tests/jerry/{es.next => }/to-number-string.js (100%) rename tests/jerry/{es.next => }/to-property-key.js (100%) rename tests/jerry/{es.next => }/try-catch.js (100%) rename tests/jerry/{es.next => }/try-pattern.js (100%) rename tests/jerry/{es.next => }/typedArray-constructor.js (100%) rename tests/jerry/{es.next => }/typedArray-fill.js (100%) rename tests/jerry/{es.next => }/typedArray-find-index.js (100%) rename tests/jerry/{es.next => }/typedArray-find.js (100%) rename tests/jerry/{es.next => }/typedArray-join.js (100%) rename tests/jerry/{es.next => }/typedArray-set-with-typedArray.js (100%) rename tests/jerry/{es.next => }/typedArray-sort.js (100%) rename tests/jerry/{es.next => }/typedArray-stringify.js (100%) rename tests/jerry/{es.next => }/typedArray-subarray.js (100%) rename tests/jerry/{es.next => }/typedArray-tostring.js (100%) rename tests/jerry/{es.next => }/typedarray-from.js (100%) rename tests/jerry/{es.next => }/typedarray-of.js (100%) rename tests/jerry/{es.next => }/typedarray-offset-modulo.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-at.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-copy-within.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-entries.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-includes.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-indexof.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-keys.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-lastindexof.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-slice-ext-arraybuffer.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-slice.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-tolocalestring.js (100%) rename tests/jerry/{es.next => }/typedarray-prototype-values.js (100%) rename tests/jerry/{es.next => }/typedarray-put.js (100%) rename tests/jerry/{es.next => }/typedarray-symbol-properties.js (100%) rename tests/jerry/{es.next => }/unicode-escape-identifiers.js (100%) rename tests/jerry/{es.next => }/weakmap.js (100%) rename tests/jerry/{es.next => }/weakref.js (100%) rename tests/jerry/{es.next => }/weakset.js (100%) create mode 100644 tests/snapshot-tests-skiplist.txt delete mode 100644 tests/test262-es6-excludelist.xml rename tests/{test262-esnext-excludelist.xml => test262-excludelist.xml} (100%) diff --git a/.github/workflows/gh-actions.yml b/.github/workflows/gh-actions.yml index 3324cf774..2246caf19 100644 --- a/.github/workflows/gh-actions.yml +++ b/.github/workflows/gh-actions.yml @@ -75,18 +75,11 @@ jobs: - run: sudo apt install gcc-multilib - run: $RUNNER --buildoption-test - Conformance_Tests_ES5_1: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - run: $RUNNER --test262 - - run: $RUNNER --test262 --build-debug - Conformance_Tests_ESNext: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - run: $RUNNER --test262-esnext=update + - run: $RUNNER --test262 update - uses: actions/upload-artifact@v2 if: success() || failure() with: @@ -98,7 +91,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - run: $RUNNER --test262-esnext=update --build-debug --test262-test-list=built-ins,annexB,harness,intl402 + - run: $RUNNER --test262 update --build-debug --test262-test-list=built-ins,annexB,harness,intl402 - uses: actions/upload-artifact@v2 if: success() || failure() with: @@ -110,7 +103,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - run: $RUNNER --test262-esnext=update --build-debug --test262-test-list=language + - run: $RUNNER --test262 update --build-debug --test262-test-list=language - uses: actions/upload-artifact@v2 if: success() || failure() with: diff --git a/docs/02.API-REFERENCE.md b/docs/02.API-REFERENCE.md index 10ec7fdfe..58c5fd318 100644 --- a/docs/02.API-REFERENCE.md +++ b/docs/02.API-REFERENCE.md @@ -2863,13 +2863,6 @@ jerry_value_is_object (const jerry_value_t value) Returns whether the given `jerry_value_t` is a promise value. -*Notes*: -- This API depends on a build option (`JERRY_ESNEXT`) and can be checked - in runtime with the `JERRY_FEATURE_PROMISE` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. - - **Prototype** ```c @@ -2884,8 +2877,6 @@ jerry_value_is_promise (const jerry_value_t value) *New in version 2.0*. -*Changed in version [[NEXT_RELEASE]]*: Build option dependency changed from `JERRY_BUILTIN_PROMISE` to `JERRY_ESNEXT`. - **Example** ```c @@ -3003,12 +2994,6 @@ jerry_value_is_string (const jerry_value_t value) Returns whether the given `jerry_value_t` is a symbol value. -*Notes*: -- This API depends on a build option (`JERRY_BUILTIN_SYMBOL`) and can be checked - in runtime with the `JERRY_FEATURE_SYMBOL` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. - **Prototype** ```c @@ -5728,11 +5713,6 @@ The function returns the result of a Promise object. *Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- This API depends on a build option (`JERRY_ESNEXT`) and can be checked - in runtime with the `JERRY_FEATURE_PROMISE` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. - **Prototype** @@ -5750,8 +5730,6 @@ jerry_promise_result (const jerry_value_t promise); *New in version 2.2*. -*Changed in version [[NEXT_RELEASE]]*: Build option dependency changed from `JERRY_BUILTIN_PROMISE` to `JERRY_ESNEXT`. - **Example** [doctest]: # (test="compile") @@ -5796,11 +5774,6 @@ example (void) *Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- This API depends on a build option (`JERRY_ESNEXT`) and can be checked - in runtime with the `JERRY_FEATURE_PROMISE` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. - **Prototype** @@ -5817,8 +5790,6 @@ jerry_promise_state (const jerry_value_t promise); *New in version 2.2*. -*Changed in version [[NEXT_RELEASE]]*: Build option dependency changed from `JERRY_BUILTIN_PROMISE` to `JERRY_ESNEXT`. - **Example** [doctest]: # (test="compile") @@ -6107,11 +6078,6 @@ Reject the promise with an argument. *Note*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- This API depends on a build option (`JERRY_ESNEXT`) and can be checked - in runtime with the `JERRY_FEATURE_PROMISE` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. - **Prototype** @@ -6128,8 +6094,6 @@ jerry_promise_reject (jerry_value_t promise, jerry_value_t argument); *New in version 2.0*. -*Changed in version [[NEXT_RELEASE]]*: Build option dependency changed from `JERRY_BUILTIN_PROMISE` to `JERRY_ESNEXT`. - **Example** ```c @@ -6171,10 +6135,6 @@ Get the well-known symbol corresponding to the given [well-known symbol id](#jer *Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- This API depends on a build option (`JERRY_BUILTIN_SYMBOL`) and can be checked - in runtime with the `JERRY_FEATURE_SYMBOL` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. - If the symbol support is not enabled an undefined will be returned. **Prototype** @@ -6231,11 +6191,6 @@ Returns with the `[[Description]]` internal property of a symbol value. *Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- This API depends on a build option (`JERRY_BUILTIN_SYMBOL`) and can be checked - in runtime with the `JERRY_FEATURE_SYMBOL` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. -- If symbol support is not enabled an exception will be returned. **Prototype** @@ -6294,11 +6249,6 @@ Based on ECMA 262 v6 19.4.3.2.1 this is in the form of `Symbol()`. *Notes*: - Returned value must be freed with [jerry_value_free](#jerry_value_free) when it is no longer needed. -- This API depends on a build option (`JERRY_BUILTIN_SYMBOL`) and can be checked - in runtime with the `JERRY_FEATURE_SYMBOL` feature enum value, - see: [jerry_feature_enabled](#jerry_feature_enabled). -- The es.next profile enables this by default. -- If symbol support is not enabled an exception will be returned. **Prototype** diff --git a/jerry-core/api/jerry-snapshot.c b/jerry-core/api/jerry-snapshot.c index 55e905a4f..35478e4b5 100644 --- a/jerry-core/api/jerry-snapshot.c +++ b/jerry-core/api/jerry-snapshot.c @@ -50,9 +50,8 @@ snapshot_get_global_flags (bool has_regex, /**< regex literal is present */ #if JERRY_BUILTIN_REGEXP flags |= (has_regex ? JERRY_SNAPSHOT_HAS_REGEX_LITERAL : 0); #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT + flags |= (has_class ? JERRY_SNAPSHOT_HAS_CLASS_LITERAL : 0); -#endif /* JERRY_ESNEXT */ return flags; } /* snapshot_get_global_flags */ @@ -68,9 +67,8 @@ snapshot_check_global_flags (uint32_t global_flags) /**< global flags */ #if JERRY_BUILTIN_REGEXP global_flags &= (uint32_t) ~JERRY_SNAPSHOT_HAS_REGEX_LITERAL; #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT + global_flags &= (uint32_t) ~JERRY_SNAPSHOT_HAS_CLASS_LITERAL; -#endif /* JERRY_ESNEXT */ return global_flags == snapshot_get_global_flags (false, false); } /* snapshot_check_global_flags */ @@ -164,7 +162,6 @@ snapshot_add_compiled_code (const ecma_compiled_code_t *compiled_code_p, /**< co uint8_t *copied_code_start_p = snapshot_buffer_p + globals_p->snapshot_buffer_write_offset; ecma_compiled_code_t *copied_code_p = (ecma_compiled_code_t *) copied_code_start_p; -#if JERRY_ESNEXT if (compiled_code_p->status_flags & CBC_CODE_FLAGS_HAS_TAGGED_LITERALS) { globals_p->snapshot_error = @@ -176,7 +173,6 @@ snapshot_add_compiled_code (const ecma_compiled_code_t *compiled_code_p, /**< co { globals_p->class_found = true; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_REGEXP if (!CBC_IS_FUNCTION (compiled_code_p->status_flags)) @@ -629,7 +625,6 @@ snapshot_load_compiled_code (const uint8_t *base_addr_p, /**< base address of th extra_bytes += (uint32_t) (argument_end * sizeof (ecma_value_t)); } -#if JERRY_ESNEXT /* function name */ if (CBC_FUNCTION_GET_TYPE (bytecode_p->status_flags) != CBC_FUNCTION_CONSTRUCTOR) { @@ -641,7 +636,6 @@ snapshot_load_compiled_code (const uint8_t *base_addr_p, /**< base address of th { extra_bytes += (uint32_t) sizeof (ecma_value_t); } -#endif /* JERRY_ESNEXT */ #if JERRY_SOURCE_NAME /* source name */ @@ -1011,12 +1005,10 @@ jerry_exec_snapshot (const uint32_t *snapshot_p, /**< snapshot */ JERRY_ASSERT (global_object_p == (ecma_object_t *) ecma_op_function_get_realm (bytecode_p)); #endif /* JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT if (bytecode_p->status_flags & CBC_CODE_FLAGS_LEXICAL_BLOCK_NEEDED) { ecma_create_global_lexical_block (global_object_p); } -#endif /* JERRY_ESNEXT */ ecma_object_t *lex_env_p = ecma_get_global_scope (global_object_p); ecma_object_t *func_obj_p = ecma_op_create_simple_function_object (lex_env_p, bytecode_p); diff --git a/jerry-core/api/jerryscript.c b/jerry-core/api/jerryscript.c index 75022c7f4..15a426f4b 100644 --- a/jerry-core/api/jerryscript.c +++ b/jerry-core/api/jerryscript.c @@ -74,12 +74,10 @@ JERRY_STATIC_ASSERT ((int) RE_FLAG_GLOBAL == (int) JERRY_REGEXP_FLAG_GLOBAL re_flags_t_must_be_equal_to_jerry_regexp_flags_t); #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT /* The internal ECMA_PROMISE_STATE_* values are "one byte away" from the API values */ JERRY_STATIC_ASSERT ((int) ECMA_PROMISE_IS_PENDING == (int) JERRY_PROMISE_STATE_PENDING && (int) ECMA_PROMISE_IS_FULFILLED == (int) JERRY_PROMISE_STATE_FULFILLED, promise_internal_state_matches_external); -#endif /* JERRY_ESNEXT */ /** * Offset between internal and external arithmetic operator types @@ -221,9 +219,7 @@ jerry_cleanup (void) } } -#if JERRY_ESNEXT ecma_free_all_enqueued_jobs (); -#endif /* JERRY_ESNEXT */ ecma_finalize (); jerry_api_disable (); @@ -1079,11 +1075,7 @@ jerry_run_jobs (void) { jerry_assert_api_enabled (); -#if JERRY_ESNEXT return jerry_return (ecma_process_all_enqueued_jobs ()); -#else /* !JERRY_ESNEXT */ - return ECMA_VALUE_UNDEFINED; -#endif /* JERRY_ESNEXT */ } /* jerry_run_jobs */ /** @@ -1234,7 +1226,6 @@ jerry_value_is_async_function (const jerry_value_t value) /**< api value */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (ecma_is_value_object (value)) { ecma_object_t *obj_p = ecma_get_object_from_value (value); @@ -1248,9 +1239,6 @@ jerry_value_is_async_function (const jerry_value_t value) /**< api value */ return (type == CBC_FUNCTION_ASYNC || type == CBC_FUNCTION_ASYNC_ARROW || type == CBC_FUNCTION_ASYNC_GENERATOR); } } -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (value); -#endif /* JERRY_ESNEXT */ return false; } /* jerry_value_is_async_function */ @@ -1307,12 +1295,8 @@ bool jerry_value_is_promise (const jerry_value_t value) /**< api value */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT + return (ecma_is_value_object (value) && ecma_is_promise (ecma_get_object_from_value (value))); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (value); - return false; -#endif /* JERRY_ESNEXT */ } /* jerry_value_is_promise */ /** @@ -1358,12 +1342,7 @@ jerry_value_is_symbol (const jerry_value_t value) /**< api value */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT return ecma_is_value_symbol (value); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (value); - return false; -#endif /* JERRY_ESNEXT */ } /* jerry_value_is_symbol */ /** @@ -1436,12 +1415,10 @@ jerry_value_type (const jerry_value_t value) /**< input value to check */ { return JERRY_TYPE_STRING; } -#if JERRY_ESNEXT case LIT_MAGIC_STRING_SYMBOL: { return JERRY_TYPE_SYMBOL; } -#endif /* JERRY_ESNEXT */ case LIT_MAGIC_STRING_FUNCTION: { return JERRY_TYPE_FUNCTION; @@ -1478,8 +1455,7 @@ static const uint8_t jerry_class_object_type[] = { JERRY_OBJECT_TYPE_MODULE_NAMESPACE, /**< type of ECMA_OBJECT_CLASS_MODULE_NAMESPACE */ #endif /* JERRY_MODULE_SYSTEM */ -/* These objects are marked by Garbage Collector. */ -#if JERRY_ESNEXT + /* These objects are marked by Garbage Collector. */ JERRY_OBJECT_TYPE_GENERATOR, /**< type of ECMA_OBJECT_CLASS_GENERATOR */ JERRY_OBJECT_TYPE_GENERATOR, /**< type of ECMA_OBJECT_CLASS_ASYNC_GENERATOR */ JERRY_OBJECT_TYPE_ITERATOR, /**< type of ECMA_OBJECT_CLASS_ARRAY_ITERATOR */ @@ -1488,15 +1464,12 @@ static const uint8_t jerry_class_object_type[] = { #if JERRY_BUILTIN_REGEXP JERRY_OBJECT_TYPE_ITERATOR, /**< type of ECMA_OBJECT_CLASS_REGEXP_STRING_ITERATOR */ #endif /* JERRY_BUILTIN_REGEXP */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM JERRY_OBJECT_TYPE_MODULE, /**< type of ECMA_OBJECT_CLASS_MODULE */ #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT JERRY_OBJECT_TYPE_PROMISE, /**< type of ECMA_OBJECT_CLASS_PROMISE */ JERRY_OBJECT_TYPE_GENERIC, /**< type of ECMA_OBJECT_CLASS_PROMISE_CAPABILITY */ JERRY_OBJECT_TYPE_GENERIC, /**< type of ECMA_OBJECT_CLASS_ASYNC_FROM_SYNC_ITERATOR */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATAVIEW JERRY_OBJECT_TYPE_DATAVIEW, /**< type of ECMA_OBJECT_CLASS_DATAVIEW */ #endif /* JERRY_BUILTIN_DATAVIEW */ @@ -1518,10 +1491,8 @@ static const uint8_t jerry_class_object_type[] = { #if JERRY_BUILTIN_REGEXP JERRY_OBJECT_TYPE_REGEXP, /**< type of ECMA_OBJECT_CLASS_REGEXP */ #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT JERRY_OBJECT_TYPE_SYMBOL, /**< type of ECMA_OBJECT_CLASS_SYMBOL */ JERRY_OBJECT_TYPE_ITERATOR, /**< type of ECMA_OBJECT_CLASS_STRING_ITERATOR */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY JERRY_OBJECT_TYPE_ARRAYBUFFER, /**< type of ECMA_OBJECT_CLASS_ARRAY_BUFFER */ #if JERRY_BUILTIN_SHAREDARRAYBUFFER @@ -1571,12 +1542,10 @@ jerry_object_type (const jerry_value_t value) /**< input value to check */ { return JERRY_OBJECT_TYPE_ARRAY; } -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_PROXY: { return JERRY_OBJECT_TYPE_PROXY; } -#endif /* JERRY_ESNEXT */ case ECMA_OBJECT_TYPE_FUNCTION: case ECMA_OBJECT_TYPE_BOUND_FUNCTION: case ECMA_OBJECT_TYPE_NATIVE_FUNCTION: @@ -1626,7 +1595,6 @@ jerry_function_type (const jerry_value_t value) /**< input value to check */ switch (CBC_FUNCTION_GET_TYPE (bytecode_data_p->status_flags)) { -#if JERRY_ESNEXT case CBC_FUNCTION_ARROW: case CBC_FUNCTION_ASYNC_ARROW: { @@ -1637,7 +1605,6 @@ jerry_function_type (const jerry_value_t value) /**< input value to check */ { return JERRY_FUNCTION_TYPE_GENERATOR; } -#endif /* JERRY_ESNEXT */ case CBC_FUNCTION_ACCESSOR: { return JERRY_FUNCTION_TYPE_ACCESSOR; @@ -1670,7 +1637,6 @@ jerry_iterator_type (const jerry_value_t value) /**< input value to check */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (ecma_is_value_object (value)) { ecma_object_t *obj_p = ecma_get_object_from_value (value); @@ -1705,9 +1671,6 @@ jerry_iterator_type (const jerry_value_t value) /**< input value to check */ } } } -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (value); -#endif /* JERRY_ESNEXT */ return JERRY_ITERATOR_TYPE_NONE; } /* jerry_iterator_type */ @@ -1760,9 +1723,6 @@ jerry_feature_enabled (const jerry_feature_t feature) /**< feature to check */ #if JERRY_BUILTIN_JSON || feature == JERRY_FEATURE_JSON #endif /* JERRY_BUILTIN_JSON */ -#if JERRY_ESNEXT - || feature == JERRY_FEATURE_PROMISE || feature == JERRY_FEATURE_SYMBOL -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY || feature == JERRY_FEATURE_TYPEDARRAY #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -2610,12 +2570,8 @@ jerry_promise (void) { jerry_assert_api_enabled (); -#if JERRY_ESNEXT return jerry_return (ecma_op_create_promise_object (ECMA_VALUE_EMPTY, ECMA_VALUE_UNDEFINED, NULL)); -#else /* !JERRY_ESNEXT */ - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_PROMISE_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ -} /* jerry_promise */ +} /* jerry_create_promise */ /** * Create a new Proxy object with the given target and handler @@ -2797,12 +2753,8 @@ jerry_symbol_with_description (const jerry_value_t value) /**< api value */ return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_WRONG_ARGS_MSG)); } -#if JERRY_ESNEXT return jerry_return (ecma_op_create_symbol (&value, 1)); -#else /* !JERRY_ESNEXT */ - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_SYMBOL_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ -} /* jerry_symbol_with_description */ +} /* jerry_create_symbol */ /** * Create BigInt from a sequence of uint64 digits. @@ -4772,7 +4724,6 @@ jerry_promise_resolve (jerry_value_t promise, /**< the promise value */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (!jerry_value_is_promise (promise)) { return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_WRONG_ARGS_MSG)); @@ -4784,12 +4735,6 @@ jerry_promise_resolve (jerry_value_t promise, /**< the promise value */ } return ecma_fulfill_promise_with_checks (promise, argument); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (promise); - JERRY_UNUSED (argument); - - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_PROMISE_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ } /* jerry_promise_resolve */ /** @@ -4804,7 +4749,6 @@ jerry_promise_reject (jerry_value_t promise, /**< the promise value */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (!jerry_value_is_promise (promise)) { return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_WRONG_ARGS_MSG)); @@ -4816,12 +4760,6 @@ jerry_promise_reject (jerry_value_t promise, /**< the promise value */ } return ecma_reject_promise_with_checks (promise, argument); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (promise); - JERRY_UNUSED (argument); - - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_PROMISE_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ } /* jerry_promise_reject */ /** @@ -4835,18 +4773,13 @@ jerry_promise_result (const jerry_value_t promise) /**< promise object to get th { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (!jerry_value_is_promise (promise)) { return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_WRONG_ARGS_MSG)); } return ecma_promise_get_result (ecma_get_object_from_value (promise)); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (promise); - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_PROMISE_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ -} /* jerry_promise_result */ +} /* jerry_get_promise_result */ /** * Get the state of a promise object. @@ -4860,7 +4793,6 @@ jerry_promise_state (const jerry_value_t promise) /**< promise object to get the { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (!jerry_value_is_promise (promise)) { return JERRY_PROMISE_STATE_NONE; @@ -4870,11 +4802,7 @@ jerry_promise_state (const jerry_value_t promise) /**< promise object to get the flags &= (ECMA_PROMISE_IS_PENDING | ECMA_PROMISE_IS_FULFILLED); return (flags ? flags : JERRY_PROMISE_STATE_REJECTED); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (promise); - return JERRY_PROMISE_STATE_NONE; -#endif /* JERRY_ESNEXT */ -} /* jerry_promise_state */ +} /* jerry_get_promise_state */ /** * Sets a callback for tracking Promise and async operations. @@ -4889,7 +4817,7 @@ jerry_promise_on_event (jerry_promise_event_filter_t filters, /**< combination o { jerry_assert_api_enabled (); -#if JERRY_ESNEXT && JERRY_PROMISE_CALLBACK +#if JERRY_PROMISE_CALLBACK if (filters == JERRY_PROMISE_EVENT_FILTER_DISABLE || callback == NULL) { JERRY_CONTEXT (promise_callback_filters) = JERRY_PROMISE_EVENT_FILTER_DISABLE; @@ -4899,12 +4827,12 @@ jerry_promise_on_event (jerry_promise_event_filter_t filters, /**< combination o JERRY_CONTEXT (promise_callback_filters) = (uint32_t) filters; JERRY_CONTEXT (promise_callback) = callback; JERRY_CONTEXT (promise_callback_user_p) = user_p; -#else /* !JERRY_ESNEXT && !JERRY_PROMISE_CALLBACK */ +#else /* !JERRY_PROMISE_CALLBACK */ JERRY_UNUSED (filters); JERRY_UNUSED (callback); JERRY_UNUSED (user_p); -#endif /* JERRY_ESNEXT && JERRY_PROMISE_CALLBACK */ -} /* jerry_promise_on_event */ +#endif /* JERRY_PROMISE_CALLBACK */ +} /* jerry_promise_set_callback */ /** * Get the well-knwon symbol represented by the given `symbol` enum value. @@ -4920,7 +4848,6 @@ jerry_symbol (jerry_well_known_symbol_t symbol) /**< jerry_well_known_symbol_t e { jerry_assert_api_enabled (); -#if JERRY_ESNEXT lit_magic_string_id_t id = (lit_magic_string_id_t) (LIT_GLOBAL_SYMBOL__FIRST + symbol); if (!LIT_IS_GLOBAL_SYMBOL (id)) @@ -4929,12 +4856,7 @@ jerry_symbol (jerry_well_known_symbol_t symbol) /**< jerry_well_known_symbol_t e } return ecma_make_symbol_value (ecma_op_get_global_symbol (id)); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (symbol); - - return ECMA_VALUE_UNDEFINED; -#endif /* JERRY_ESNEXT */ -} /* jerry_symbol */ +} /* jerry_get_well_known_symbol */ /** * Returns the description internal property of a symbol. @@ -4950,7 +4872,6 @@ jerry_symbol_description (const jerry_value_t symbol) /**< symbol value */ { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (!ecma_is_value_symbol (symbol)) { return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_WRONG_ARGS_MSG)); @@ -4958,12 +4879,7 @@ jerry_symbol_description (const jerry_value_t symbol) /**< symbol value */ /* Note: This operation cannot throw an error */ return ecma_copy_value (ecma_get_symbol_description (ecma_get_symbol_from_value (symbol))); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (symbol); - - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_SYMBOL_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ -} /* jerry_symbol_description */ +} /* jerry_get_symbol_description */ /** * Call the SymbolDescriptiveString ecma builtin operation on the symbol value. @@ -4979,7 +4895,6 @@ jerry_symbol_descriptive_string (const jerry_value_t symbol) /**< symbol value * { jerry_assert_api_enabled (); -#if JERRY_ESNEXT if (!ecma_is_value_symbol (symbol)) { return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_WRONG_ARGS_MSG)); @@ -4987,12 +4902,7 @@ jerry_symbol_descriptive_string (const jerry_value_t symbol) /**< symbol value * /* Note: This operation cannot throw an error */ return ecma_get_symbol_descriptive_string (symbol); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (symbol); - - return jerry_throw_sz (JERRY_ERROR_TYPE, ecma_get_error_msg (ECMA_ERR_SYMBOL_NOT_SUPPORTED)); -#endif /* JERRY_ESNEXT */ -} /* jerry_symbol_descriptive_string */ +} /* jerry_get_symbol_descriptive_string */ /** * Get the number of uint64 digits of a BigInt value @@ -5775,12 +5685,10 @@ jerry_source_info (const jerry_value_t value) /**< jerry api value */ uint8_t *extended_info_p = ecma_compiled_code_resolve_extended_info (bytecode_p); uint8_t extended_info = *extended_info_p; -#if JERRY_ESNEXT if (extended_info & CBC_EXTENDED_CODE_FLAGS_HAS_ARGUMENT_LENGTH) { ecma_extended_info_decode_vlq (&extended_info_p); } -#endif /* JERRY_ESNEXT */ if (extended_info & CBC_EXTENDED_CODE_FLAGS_SOURCE_CODE_IN_ARGUMENTS) { @@ -5819,14 +5727,12 @@ jerry_source_info (const jerry_value_t value) /**< jerry api value */ ECMA_GET_NON_NULL_POINTER_FROM_POINTER_TAG (ecma_object_t, ext_object_p->u.bound_function.target_function); continue; } -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION: { ecma_value_t script_value = ((ecma_extended_object_t *) object_p)->u.constructor_function.script_value; script_p = ECMA_GET_INTERNAL_VALUE_POINTER (cbc_script_t, script_value); break; } -#endif /* JERRY_ESNEXT */ default: { return NULL; @@ -5989,9 +5895,8 @@ jerry_realm_set_this (jerry_value_t realm, /**< realm value */ ecma_object_t *global_lex_env_p = ecma_create_object_lex_env (NULL, ecma_get_object_from_value (this_value)); ECMA_SET_NON_NULL_POINTER (global_object_p->global_env_cp, global_lex_env_p); -#if JERRY_ESNEXT global_object_p->global_scope_cp = global_object_p->global_env_cp; -#endif /* JERRY_ESNEXT */ + ecma_deref_object (global_lex_env_p); return ECMA_VALUE_TRUE; } diff --git a/jerry-core/config.h b/jerry-core/config.h index 7444fd9a4..002f49e3c 100644 --- a/jerry-core/config.h +++ b/jerry-core/config.h @@ -72,59 +72,52 @@ #define JERRY_BUILTIN_STRING JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_STRING) */ -/** - * ES2015+ related features, by default all of them are enabled. - */ -#ifndef JERRY_ESNEXT -#define JERRY_ESNEXT 1 -#endif /* !defined (JERRY_ESNEXT) */ - #ifndef JERRY_BUILTIN_BIGINT -#define JERRY_BUILTIN_BIGINT JERRY_ESNEXT +#define JERRY_BUILTIN_BIGINT JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_BIGINT) */ #ifndef JERRY_BUILTIN_CONTAINER -#define JERRY_BUILTIN_CONTAINER JERRY_ESNEXT +#define JERRY_BUILTIN_CONTAINER JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_CONTAINER) */ #ifndef JERRY_BUILTIN_DATAVIEW -#define JERRY_BUILTIN_DATAVIEW JERRY_ESNEXT +#define JERRY_BUILTIN_DATAVIEW JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_DATAVIEW) */ #ifndef JERRY_BUILTIN_GLOBAL_THIS -#define JERRY_BUILTIN_GLOBAL_THIS JERRY_ESNEXT +#define JERRY_BUILTIN_GLOBAL_THIS JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_GLOBAL_THIS) */ #ifndef JERRY_BUILTIN_PROXY -#define JERRY_BUILTIN_PROXY JERRY_ESNEXT +#define JERRY_BUILTIN_PROXY JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_PROXY) */ #ifndef JERRY_BUILTIN_REALMS -#define JERRY_BUILTIN_REALMS JERRY_ESNEXT +#define JERRY_BUILTIN_REALMS JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_REALMS) */ #ifndef JERRY_BUILTIN_REFLECT -#define JERRY_BUILTIN_REFLECT JERRY_ESNEXT +#define JERRY_BUILTIN_REFLECT JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_REFLECT) */ #ifndef JERRY_BUILTIN_TYPEDARRAY -#define JERRY_BUILTIN_TYPEDARRAY JERRY_ESNEXT +#define JERRY_BUILTIN_TYPEDARRAY JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_TYPEDARRAY) */ #ifndef JERRY_BUILTIN_SHAREDARRAYBUFFER -#define JERRY_BUILTIN_SHAREDARRAYBUFFER JERRY_ESNEXT +#define JERRY_BUILTIN_SHAREDARRAYBUFFER JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_SHAREDARRAYBUFFER) */ #ifndef JERRY_BUILTIN_ATOMICS -#define JERRY_BUILTIN_ATOMICS JERRY_ESNEXT +#define JERRY_BUILTIN_ATOMICS JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_ATOMICS) */ #ifndef JERRY_BUILTIN_WEAKREF -#define JERRY_BUILTIN_WEAKREF JERRY_ESNEXT +#define JERRY_BUILTIN_WEAKREF JERRY_BUILTINS #endif /* !defined (JERRY_BUILTIN_WEAKREF) */ #ifndef JERRY_MODULE_SYSTEM -#define JERRY_MODULE_SYSTEM JERRY_ESNEXT +#define JERRY_MODULE_SYSTEM JERRY_BUILTINS #endif /* !defined (JERRY_MODULE_SYSTEM) */ /** @@ -541,13 +534,6 @@ #if (JERRY_BUILTINS != 0) && (JERRY_BUILTINS != 1) #error "Invalid value for JERRY_BUILTINS macro." #endif /* (JERRY_BUILTINS != 0) && (JERRY_BUILTINS != 1) */ - -/** - * Check ES2015+ features - */ -#if (JERRY_ESNEXT != 0) && (JERRY_ESNEXT != 1) -#error "Invalid value for JERRY_ESNEXT macro." -#endif /* (JERRY_ESNEXT != 0) && (JERRY_ESNEXT != 1) */ #if (JERRY_BUILTIN_REALMS != 0) && (JERRY_BUILTIN_REALMS != 1) #error "Invalid value for JERRY_BUILTIN_REALMS macro." #endif /* (JERRY_BUILTIN_REALMS != 0) && (JERRY_BUILTIN_REALMS != 1) */ @@ -581,27 +567,6 @@ #if (JERRY_MODULE_SYSTEM != 0) && (JERRY_MODULE_SYSTEM != 1) #error "Invalid value for JERRY_MODULE_SYSTEM macro." #endif /* (JERRY_MODULE_SYSTEM != 0) && (JERRY_MODULE_SYSTEM != 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_DATAVIEW == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_DATAVIEW macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_DATAVIEW == 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_CONTAINER == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_CONTAINER macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_CONTAINER == 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_PROXY == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_PROXY macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_PROXY == 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_REFLECT == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_REFLECT macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_REFLECT == 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_TYPEDARRAY == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_TYPEDARRAY macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_TYPEDARRAY == 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_WEAKREF == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_BUILTIN_WEAKREF macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_BUILTIN_WEAKREF == 1) */ -#if (JERRY_ESNEXT == 0) && (JERRY_MODULE_SYSTEM == 1) -#error "JERRY_ESNEXT should be enabled too to enable JERRY_MODULE_SYSTEM macro." -#endif /* (JERRY_ESNEXT == 0) && (JERRY_MODULE_SYSTEM == 1) */ #if (JERRY_BUILTIN_TYPEDARRAY == 0) && (JERRY_BUILTIN_SHAREDARRAYBUFFER == 1) #error "JERRY_BUILTIN_TYPEDARRAY should be enabled too to enable JERRY_BUILTIN_SHAREDARRAYBUFFER macro." #endif /* (JERRY_BUILTIN_TYPEDARRAY == 0) && (JERRY_BUILTIN_SHAREDARRAYBUFFER == 1) */ @@ -708,13 +673,6 @@ #error "Date does not support float32" #endif /* JERRY_BUILTIN_DATE && !JERRY_NUMBER_TYPE_FLOAT64 */ -/** - * Promise support must be enabled if Promise callback support is enabled. - */ -#if JERRY_PROMISE_CALLBACK && !JERRY_ESNEXT -#error "Promise callback support depends on ESNext support" -#endif /* JERRY_PROMISE_CALLBACK && !JERRY_ESNEXT */ - /** * Source name related types into a single guard */ diff --git a/jerry-core/debugger/debugger.c b/jerry-core/debugger/debugger.c index d7c310c40..2d77f8832 100644 --- a/jerry-core/debugger/debugger.c +++ b/jerry-core/debugger/debugger.c @@ -1445,13 +1445,11 @@ jerry_debugger_exception_object_to_string (ecma_value_t exception_obj_value) /** string_id = LIT_MAGIC_STRING_TYPE_ERROR_UL; break; } -#if JERRY_ESNEXT case ECMA_BUILTIN_ID_AGGREGATE_ERROR_PROTOTYPE: { string_id = LIT_MAGIC_STRING_AGGREGATE_ERROR_UL; break; } -#endif /* JERRY_ESNEXT */ case ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE: { string_id = LIT_MAGIC_STRING_URI_ERROR_UL; diff --git a/jerry-core/ecma/base/ecma-error-messages.inc.h b/jerry-core/ecma/base/ecma-error-messages.inc.h index b131911a9..7711f871b 100644 --- a/jerry-core/ecma/base/ecma-error-messages.inc.h +++ b/jerry-core/ecma/base/ecma-error-messages.inc.h @@ -36,12 +36,10 @@ ECMA_ERROR_DEF (ECMA_ERR_INVALID_ENCODING, "Invalid encoding") ECMA_ERROR_DEF (ECMA_ERR_NOTHING_TO_REPEAT, "Nothing to repeat") #endif /* JERRY_BUILTIN_REGEXP */ ECMA_ERROR_DEF (ECMA_ERR_EXPECTED_AN_OBJECT, "Expected an object") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_INVALID_CAPABILITY, "Invalid capability") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING ECMA_ERROR_DEF (ECMA_ERR_INVALID_CODE_POINT, "Invalid code point") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_INVALID_QUANTIFIER, "Invalid quantifier") #endif /* JERRY_BUILTIN_REGEXP */ @@ -56,9 +54,9 @@ ECMA_ERROR_DEF (ECMA_ERR_EXPECTED_A_FUNCTION, "Expected a function") ECMA_ERROR_DEF (ECMA_ERR_INVALID_JSON_FORMAT, "Invalid JSON format") #endif /* JERRY_BUILTIN_JSON */ ECMA_ERROR_DEF (ECMA_ERR_INVALID_UTF8_STRING, "Invalid UTF8 string") -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING ECMA_ERROR_DEF (ECMA_ERR_INVALID_COUNT_VALUE, "Invalid count value") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if !(JERRY_BUILTIN_REALMS) ECMA_ERROR_DEF (ECMA_ERR_REALMS_ARE_DISABLED, "Realms are disabled") #endif /* !(JERRY_BUILTIN_REALMS) */ @@ -80,9 +78,9 @@ ECMA_ERROR_DEF (ECMA_ERR_TARGET_IS_NOT_OBJECT, "Target is not Object") ECMA_ERROR_DEF (ECMA_ERR_BIGINT_VALUE_EXCPECTED, "BigInt value expected") #endif /* JERRY_BUILTIN_BIGINT */ ECMA_ERROR_DEF (ECMA_ERR_BINDING_CANNOT_SET, "Binding cannot be set") -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING ECMA_ERROR_DEF (ECMA_ERR_INVALID_STRING_, "Invalid string length") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_CONTAINER ECMA_ERROR_DEF (ECMA_ERR_KEY_MUST_BE_AN_OBJECT, "Key must be an object") #endif /* JERRY_BUILTIN_CONTAINER */ @@ -95,9 +93,9 @@ ECMA_ERROR_DEF (ECMA_ERR_TARGET_IS_NOT_WEAKREF, "Target is not weakRef") #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_TARGET_NOT_EXTENSIBLE, "Target not extensible") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB +#if JERRY_BUILTIN_ANNEXB ECMA_ERROR_DEF (ECMA_ERR_GETTER_IS_NOT_CALLABLE, "Getter is not callable") -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB */ +#endif /* JERRY_BUILTIN_ANNEXB */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_HANDLER_CANNOT_BE_NULL, "Handler cannot be null") #endif /* JERRY_BUILTIN_PROXY */ @@ -119,19 +117,19 @@ ECMA_ERROR_DEF (ECMA_ERR_REALM_IS_NOT_AVAILABLE, "Realm is not available") ECMA_ERROR_DEF (ECMA_ERR_BIGINT_ZERO_DIVISION, "BigInt division by zero") #endif /* JERRY_BUILTIN_BIGINT */ ECMA_ERROR_DEF (ECMA_ERR_EXPECTED_AN_ARRAYBUFFER, "Expected an ArrayBuffer") -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_INVALID_CHARACTER_CLASS, "Invalid character class") ECMA_ERROR_DEF (ECMA_ERR_INVALID_ESCAPE_SEQUENCE, "Invalid escape sequence") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_SNAPSHOT_EXEC ECMA_ERROR_DEF (ECMA_ERR_INVALID_SNAPSHOT_FORMAT, "Invalid snapshot format") #endif /* JERRY_SNAPSHOT_EXEC */ #if JERRY_BUILTIN_JSON ECMA_ERROR_DEF (ECMA_ERR_JSON_STRING_PARSE_ERROR, "JSON string parse error") #endif /* JERRY_BUILTIN_JSON */ -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_LONE_QUANTIFIER_BRACKET, "Lone quantifier bracket") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_OBJECT_CANNOT_BE_FROZEN, "Object cannot be frozen") ECMA_ERROR_DEF (ECMA_ERR_OBJECT_CANNOT_BE_SEALED, "Object cannot be sealed") @@ -145,24 +143,18 @@ ECMA_ERROR_DEF (ECMA_ERR_UNMATCHED_CLOSE_BRACKET, "Unmatched close bracket") #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_NOT_MODULE, "Argument is not a module") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_SET_PROTOTYPE, "Cannot set [[Prototype]]") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_ARRAY && JERRY_ESNEXT +#if JERRY_BUILTIN_ARRAY ECMA_ERROR_DEF (ECMA_ERR_INVALID_NEW_ARRAY_LENGTH, "Invalid new Array length") -#endif /* JERRY_BUILTIN_ARRAY && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_ARRAY */ ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_IS_NOT_CALLABLE, "Iterator is not callable") -#endif /* JERRY_ESNEXT */ #if !(JERRY_BUILTIN_JSON) ECMA_ERROR_DEF (ECMA_ERR_JSON_NOT_SUPPORTED, "JSON support is disabled") #endif /* !(JERRY_BUILTIN_JSON) */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_MODULE_IS_IN_ERROR_STATE, "Module is in error state") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_REJECT_MUST_BE_UNDEFINED, "Reject must be undefined") -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_REQUEST_IS_NOT_AVAILABLE, "Request is not available") #endif /* JERRY_MODULE_SYSTEM */ @@ -170,17 +162,15 @@ ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_IS_NOT_AN_OBJECT, "Argument is not an object") #if JERRY_BUILTIN_ATOMICS ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_NOT_SUPPORTED, "Argument is not supported") #endif /* JERRY_BUILTIN_ATOMICS */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING ECMA_ERROR_DEF (ECMA_ERR_INVALID_CODE_POINT_ERROR, "Error: Invalid code point") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_INVALID_TYPEDARRAY_LENGTH, "Invalid TypedArray length") #endif /* JERRY_BUILTIN_TYPEDARRAY */ ECMA_ERROR_DEF (ECMA_ERR_INVALID_HEXADECIMAL_VALUE, "Invalid hexadecimal value") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_IS_NOT_AN_OBJECT, "Iterator is not an object") ECMA_ERROR_DEF (ECMA_ERR_RESOLVE_MUST_BE_UNDEFINED, "Resolve must be undefined") -#endif /* JERRY_ESNEXT */ #if JERRY_SNAPSHOT_SAVE ECMA_ERROR_DEF (ECMA_ERR_SNAPSHOT_BUFFER_SMALL, "Snapshot buffer too small") #endif /* JERRY_SNAPSHOT_SAVE */ @@ -209,37 +199,22 @@ ECMA_ERROR_DEF (ECMA_ERR_MODULE_NOT_SUPPORTED, "Module support is disabled") #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_OBJECT_IS_NOT_A_TYPEDARRAY, "Object is not a TypedArray") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_RECEIVER_MUST_BE_AN_OBJECT, "Receiver must be an object") -#endif /* JERRY_ESNEXT */ -#if !(JERRY_ESNEXT) -ECMA_ERROR_DEF (ECMA_ERR_SYMBOL_NOT_SUPPORTED, "Symbol support is disabled") -#endif /* !(JERRY_ESNEXT) */ #if JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_JSON ECMA_ERROR_DEF (ECMA_ERR_BIGINT_SERIALIZED, "BigInt cannot be serialized") #endif /* JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_JSON */ #if JERRY_BUILTIN_CONTAINER ECMA_ERROR_DEF (ECMA_ERR_CONTAINER_IS_NOT_AN_OBJECT, "Container is not an object.") #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_INVALID_HEX_ESCAPE_SEQUENCE, "Invalid hex escape sequence") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_REGEXP */ ECMA_ERROR_DEF (ECMA_ERR_INVALID_SPECIES_CONSTRUCTOR, "Invalid species constructor") -#endif /* JERRY_ESNEXT */ -#if !(JERRY_ESNEXT) -ECMA_ERROR_DEF (ECMA_ERR_PROMISE_NOT_SUPPORTED, "Promise support is disabled") -#endif /* !(JERRY_ESNEXT) */ -#if JERRY_BUILTIN_PROXY || JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_PROXY_TRAP_RETURNED_FALSISH, "Proxy trap returned falsish") -#endif /* JERRY_BUILTIN_PROXY \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_MIN_GREATER_THAN_MAX, "Quantifier error: min > max") #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_SYMBOL_IS_NOT_A_CONSTRUCTOR, "Symbol is not a constructor") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_REFLECT ECMA_ERROR_DEF (ECMA_ERR_TARGET_IS_NOT_A_CONSTRUCTOR, "Target is not a constructor") #endif /* JERRY_BUILTIN_REFLECT */ @@ -250,21 +225,13 @@ ECMA_ERROR_DEF (ECMA_ERR_DATA_VIEW_NOT_SUPPORTED, "DataView support is disabled" #if JERRY_BUILTIN_DATE ECMA_ERROR_DEF (ECMA_ERR_DATE_MUST_BE_A_FINITE_NUMBER, "Date must be a finite number") #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_LOCAL_VARIABLE_IS_REDECLARED, "Local variable is redeclared") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_UNSUPPORTED_BINARY_OPERATION, "Unsupported binary operation") #if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_UNTERMINATED_CHARACTER_CLASS, "Unterminated character class") #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_BUILTIN_DATAVIEW || JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ARRAYBUFFER_IS_DETACHED, "ArrayBuffer has been detached") -#endif /* JERRY_BUILTIN_DATAVIEW \ -|| JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_NOT_AN_OBJECT, "Constructor must be an object") -#endif /* JERRY_ESNEXT */ #if !(JERRY_BUILTIN_CONTAINER) ECMA_ERROR_DEF (ECMA_ERR_CONTAINER_NOT_SUPPORTED, "Container support is disabled") #endif /* !(JERRY_BUILTIN_CONTAINER) */ @@ -277,18 +244,14 @@ ECMA_ERROR_DEF (ECMA_ERR_INCOMPATIBLE_TYPEDARRAY_TYPES, "Incompatible TypedArray #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_INCORRECT_TYPE_FOR_TYPEDARRAY, "Incorrect type for TypedArray") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_INVALID_OR_OUT_OF_RANGE_INDEX, "Invalid or out-of-range index") -#endif /* JERRY_ESNEXT */ #if JERRY_SNAPSHOT_SAVE ECMA_ERROR_DEF (ECMA_ERR_MAXIMUM_SNAPSHOT_SIZE, "Maximum snapshot size reached") #endif /* JERRY_SNAPSHOT_SAVE */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_MODULE_CANNOT_BE_INSTANTIATED, "Module cannot be instantiated") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_SPECIES_MUST_BE_A_CONSTRUCTOR, "Species must be a constructor") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_IS_NOT_A_PROXY, "Argument is not a Proxy object") #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_NOT_ARRAY_BUFFER, "Argument is not an ArrayBuffer") @@ -302,9 +265,7 @@ ECMA_ERROR_DEF (ECMA_ERR_MODULE_MUST_BE_IN_LINKED_STATE, "Module must be in link ECMA_ERROR_DEF (ECMA_ERR_UNKNOWN_EXPORT, "Native module export not found") #endif /* JERRY_MODULE_SYSTEM */ ECMA_ERROR_DEF (ECMA_ERR_PASSED_ARGUMENT_IS_NOT_A_REALM, "Passed argument is not a realm") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_PRIVATE_METHOD_IS_NOT_WRITABLE, "Private method is not writable") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT || JERRY_BUILTIN_NUMBER ECMA_ERROR_DEF (ECMA_ERR_RADIX_IS_OUT_OF_RANGE, "Radix must be between 2 and 36") #endif /* JERRY_BUILTIN_BIGINT \ @@ -316,15 +277,13 @@ ECMA_ERROR_DEF (ECMA_ERR_SNAPSHOT_EXEC_DISABLED, "Snapshot execution is disabled ECMA_ERROR_DEF (ECMA_ERR_TYPED_ARRAY_NOT_SUPPORTED, "TypedArray support is disabled") #endif /* !(JERRY_BUILTIN_TYPEDARRAY) */ ECMA_ERROR_DEF (ECMA_ERR_UNICODE_SURROGATE_PAIR_MISSING, "Unicode surrogate pair missing") -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_INVALID_CONTROL_ESCAPE_SEQUENCE, "Invalid control escape sequence") ECMA_ERROR_DEF (ECMA_ERR_INVALID_UNICODE_ESCAPE_SEQUENCE, "Invalid unicode escape sequence") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_REGEXP */ ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_NEXT_IS_NOT_CALLABLE, "Iterator 'next' is not callable") ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_VALUE_IS_NOT_AN_OBJECT, "Iterator value is not an object") ECMA_ERROR_DEF (ECMA_ERR_RESOLVE_METHOD_MUST_BE_CALLABLE, "Resolve method must be callable") -#endif /* JERRY_ESNEXT */ #if !(JERRY_SNAPSHOT_SAVE) ECMA_ERROR_DEF (ECMA_ERR_SNAPSHOT_SAVE_DISABLED, "Snapshot generation is disabled") #endif /* !(JERRY_SNAPSHOT_SAVE) */ @@ -337,20 +296,14 @@ ECMA_ERROR_DEF (ECMA_ERR_TRAP_MUST_RETURN_WITH_AN_OBJECT, "Trap must return with #if JERRY_BUILTIN_CONTAINER ECMA_ERROR_DEF (ECMA_ERR_UNSUPPORTED_CONTAINER_OPERATION, "Unsupported container operation") #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_METHOD_RETURN_IS_NOT_CALLABLE, "method 'return' is not callable") ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_PROMISE, "Argument 'this' is not a Promise") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_OBJECT, "Argument 'this' is not an object") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_SYMBOL, "Argument 'this' must be a Symbol") -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_CALLBACK_RESULT_NOT_MODULE, "Callback result must be a module") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CLASS_CONSTRUCTOR_REQUIRES_NEW, "Class constructor requires 'new'") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ARRAY ECMA_ERROR_DEF (ECMA_ERR_COMPARE_FUNC_NOT_CALLABLE, "Compare function is not callable") #endif /* JERRY_BUILTIN_ARRAY */ @@ -358,21 +311,15 @@ ECMA_ERROR_DEF (ECMA_ERR_COMPARE_FUNC_NOT_CALLABLE, "Compare function is not cal ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_PROXY_REQUIRES_NEW, "Constructor Proxy requires 'new'") #endif /* JERRY_BUILTIN_PROXY */ ECMA_ERROR_DEF (ECMA_ERR_EXPECTED_A_CONFIGURABLE_PROPERTY, "Expected a configurable property") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_FIRST_PARAMETER_MUST_BE_CALLABLE, "First parameter must be callable") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_CONTAINER && JERRY_ESNEXT +#if JERRY_BUILTIN_CONTAINER ECMA_ERROR_DEF (ECMA_ERR_FUNCTION_ADD_ORSET_IS_NOT_CALLABLE, "Function add/set is not callable") -#endif /* JERRY_BUILTIN_CONTAINER && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_CONTAINER */ ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_RESULT_IS_NOT_AN_OBJECT, "Iterator result is not an object") -#endif /* JERRY_ESNEXT */ #if (JERRY_STACK_LIMIT != 0) ECMA_ERROR_DEF (ECMA_ERR_MAXIMUM_CALL_STACK_SIZE_EXCEEDED, "Maximum call stack size exceeded") #endif /* (JERRY_STACK_LIMIT != 0) */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_MAXIMUM_STRING_LENGTH_IS_REACHED, "Maximum string length is reached") -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_MODULE_MUST_BE_IN_UNLINKED_STATE, "Module must be in unlinked state") #endif /* JERRY_MODULE_SYSTEM */ @@ -398,9 +345,7 @@ ECMA_ERROR_DEF (ECMA_ERR_INITIAL_VALUE_CANNOT_BE_UNDEFINED, "Initial value canno ECMA_ERROR_DEF (ECMA_ERR_INVALID_SHARED_ARRAYBUFFER_LENGTH, "Invalid Shared ArrayBuffer length") #endif /* JERRY_BUILTIN_SHAREDARRAYBUFFER */ ECMA_ERROR_DEF (ECMA_ERR_INVALID_TYPE_FOR_CONSTRUCTOR_CALL, "Invalid type for constructor call") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_THROW_IS_NOT_AVAILABLE, "Iterator 'throw' is not available") -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_NAMESPACE_OBJECT_IS_NOT_AVAILABLE, "Namespace object is not available") #endif /* JERRY_MODULE_SYSTEM */ @@ -413,13 +358,9 @@ ECMA_ERROR_DEF (ECMA_ERR_SECOND_ARGUMENT_MUST_BE_AN_OBJECT, "Second argument mus #if JERRY_BUILTIN_DATAVIEW ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_BUFFER_NOT_OBJECT, "Argument 'buffer' is not an object") #endif /* JERRY_BUILTIN_DATAVIEW */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_ITERATOR, "Argument 'this' is not an iterator") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_VALUE_MSG, "Argument cannot be marked as error") -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_PROMISE_REQUIRES_NEW, "Constructor Promise requires 'new'") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_WEAKMAP_REQUIRES_NEW, "Constructor WeakMap requires 'new'") ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_WEAKSET_REQUIRES_NEW, "Constructor WeakSet requires 'new'") @@ -430,39 +371,30 @@ ECMA_ERROR_DEF (ECMA_ERR_INVALID_SCOPE_CHAIN_INDEX_FOR_EVAL, "Invalid scope chai #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_MAXIMUM_TYPEDARRAY_SIZE_IS_REACHED, "Maximum TypedArray size is reached") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_THE_GIVEN_ARGUMENT_IS_NOT_A_SYMBOL, "The given argument is not a Symbol") ECMA_ERROR_DEF (ECMA_ERR_PARAMETER_REJECT_MUST_BE_CALLABLE, "'reject' parameter must be callable") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT +#if JERRY_BUILTIN_ATOMICS || JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_TYPED_ARRAY, "Argument 'this' is not a TypedArray") -#endif /* JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_ATOMICS \ +|| JERRY_BUILTIN_TYPEDARRAY */ #if JERRY_SNAPSHOT_SAVE ECMA_ERROR_DEF (ECMA_ERR_CANNOT_ALLOCATE_MEMORY_LITERALS, "Cannot allocate memory for literals") #endif /* JERRY_SNAPSHOT_SAVE */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_INVOKE_NULLABLE_SUPER_METHOD, "Cannot invoke nullable super method") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATAVIEW ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_DATAVIEW_REQUIRES_NEW, "Constructor DataView requires 'new'") #endif /* JERRY_BUILTIN_DATAVIEW */ #if JERRY_BUILTIN_WEAKREF ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_WEAKREF_REQUIRES_NEW, "Constructor WeakRef requires 'new'.") #endif /* JERRY_BUILTIN_WEAKREF */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_SUPER_BINDING_MUST_BE_A_CONSTRUCTOR, "Super binding must be a constructor") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT ECMA_ERROR_DEF (ECMA_ERR_VALUE_CANNOT_BE_CONVERTED_TO_BIGINT, "Value cannot be converted to BigInt") #endif /* JERRY_BUILTIN_BIGINT */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_PARAMETER_RESOLVE_MUST_BE_CALLABLE, "'resolve' parameter must be callable") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_DATE || JERRY_ESNEXT +#if JERRY_BUILTIN_DATE ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_DATE_OBJECT, "Argument 'this' is not a Date object") -#endif /* JERRY_BUILTIN_DATE \ -|| JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_DATE */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_CONSTRUCTOR, "Argument 'this' is not a constructor") #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -476,19 +408,16 @@ ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_INT8_ARRAY_REQUIRES_NEW, "Constructor Int8A #if JERRY_BUILTIN_CONTAINER ECMA_ERROR_DEF (ECMA_ERR_CONTAINER_IS_NOT_A_CONTAINER_OBJECT, "Container is not a container object.") #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_BUILTIN_DATE && JERRY_ESNEXT +#if JERRY_BUILTIN_DATE ECMA_ERROR_DEF (ECMA_ERR_INVALID_ARGUMENT_TYPE_IN_TOPRIMITIVE, "Invalid argument type in toPrimitive") -#endif /* JERRY_BUILTIN_DATE && JERRY_ESNEXT */ -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#endif /* JERRY_BUILTIN_DATE */ +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_METHODS_INVOKE_WITH_NEW, "Methods cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ +#endif /* JERRY_ERROR_MESSAGES */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_MODULE_EXPORTS_MUST_BE_STRING_VALUES, "Module exports must be string values") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_BUILTIN_REFLECT || JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_PROTOTYPE_IS_NEITHER_OBJECT_NOR_NULL, "Prototype is neither object nor null") -#endif /* JERRY_BUILTIN_REFLECT \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_THE_MAPFN_ARGUMENT_IS_NOT_CALLABLE, "The 'mapfn' argument is not callable") #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -529,38 +458,26 @@ ECMA_ERROR_DEF (ECMA_ERR_TRAP_WITH_DUPLICATED_ENTRIES, "Trap returned with dupli #if JERRY_BUILTIN_BIGINT ECMA_ERROR_DEF (ECMA_ERR_UNARY_PLUS_IS_NOT_ALLOWED_FOR_BIGINTS, "Unary plus is not allowed for BigInts") #endif /* JERRY_BUILTIN_BIGINT */ -#if !JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_REGEXP || JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_IS_NOT_AN_REGEXP, "Argument 'this' is not a RegExp object") -#endif /* !JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_REGEXP \ -|| JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_ALLOCATE_ARRAY_BUFFER, "Cannot allocate memory for ArrayBuffer") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CONSTANT_BINDINGS_CANNOT_BE_REASSIGNED, "Constant bindings cannot be reassigned") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_ARRAYBUFFER_REQUIRES_NEW, "Constructor ArrayBuffer requires 'new'") ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_UINT16_ARRAY_REQUIRES_NEW, "Constructor Uint16Array requires 'new'") ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_UINT32_ARRAY_REQUIRES_NEW, "Constructor Uint32Array requires 'new'") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_GENERATOR_IS_CURRENTLY_UNDER_EXECUTION, "Generator is currently under execution") ECMA_ERROR_DEF (ECMA_ERR_ITERATOR_RETURN_RESULT_IS_NOT_OBJECT, "Iterator 'return' result is not object") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_TYPEDARRAY -ECMA_ERROR_DEF (ECMA_ERR_RETURNED_ARRAYBUFFER_HAS_BEEN_DETACHED, "Returned ArrayBuffer has been detached") -#endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_SEARCH_STRING_CANNOT_BE_OF_TYPE_REGEXP, "Search string can't be of type: RegExp") ECMA_ERROR_DEF (ECMA_ERR_VALUE_RECEIVED_BY_YIELD_IS_NOT_OBJECT, "Value received by yield* is not object") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BOOLEAN ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_BOOLEAN_OBJECT, "Argument 'this' is not a Boolean object") #endif /* JERRY_BUILTIN_BOOLEAN */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CANNOT_DECLARE_SAME_PRIVATE_FIELD_TWICE, "Cannot declare same private field twice") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_FLOAT32_ARRAY_REQUIRES_NEW, "Constructor Float32Array requires 'new'") #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -574,33 +491,27 @@ ECMA_ERROR_DEF (ECMA_ERR_IMPORTED_BINDING_SHADOWS_LOCAL_VARIABLE, "Imported bind #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_PROTOTYPE_FROM_REVOKED_PROXY_IS_INVALID, "Prototype from revoked Proxy is invalid") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING ECMA_ERROR_DEF (ECMA_ERR_REGEXP_ARGUMENT_SHOULD_HAVE_GLOBAL_FLAG, "RegExp argument should have global flag") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_TRAP_IS_NEITHER_AN_OBJECT_NOR_UNDEFINED, "Trap is neither an object nor undefined") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_PROMISE_RESOLVE_ITSELF, "A promise cannot be resolved with itself") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_BIGINT64_ARRAY_REQUIRES_NEW, "Constructor BigInt64Array requires 'new'") #endif /* JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_MODULE_EXPORTS_MUST_BE_VALID_IDENTIFIERS, "Module exports must be valid identifiers") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_GENERATOR_OBJECT, "Argument 'this' is not a generator object") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_CANNOT_CONVERT_TO_OBJECT, "Argument cannot be converted to an object") #if JERRY_BUILTIN_BIGINT ECMA_ERROR_DEF (ECMA_ERR_ALLOCATE_BIGINT_VALUE, "Cannot allocate memory for a BigInt value") ECMA_ERROR_DEF (ECMA_ERR_CONVERT_BIGINT_TO_NUMBER, "Cannot convert a BigInt value to a number") #endif /* JERRY_BUILTIN_BIGINT */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CONVERT_SYMBOL_TO_NUMBER, "Cannot convert a Symbol value to a number") ECMA_ERROR_DEF (ECMA_ERR_CONVERT_SYMBOL_TO_STRING, "Cannot convert a Symbol value to a string") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_BIG_UINT64_ARRAY_REQUIRES_NEW, "Constructor BigUInt64Array requires 'new'") #endif /* JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY */ @@ -610,21 +521,17 @@ ECMA_ERROR_DEF (ECMA_ERR_FRACTION_DIGITS_OUT_OF_RANGE, "Fraction digits must be #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_RETURN_VALUE_IS_NOT_AN_ARRAYBUFFER_OBJECT, "Return value is not an ArrayBuffer object") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_SUPER_CONSTRUCTOR_MAY_ONLY_BE_CALLED_ONCE, "Super constructor may only be called once") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_BINDING_NOT_EXIST_OR_UNINITIALIZED, "Binding does not exist or is uninitialised") -#if JERRY_BUILTIN_ARRAY && JERRY_ESNEXT +#if JERRY_BUILTIN_ARRAY ECMA_ERROR_DEF (ECMA_ERR_CANNOT_CONVERT_TO_OBJECT, "Cannot convert undefined or null to object") -#endif /* JERRY_BUILTIN_ARRAY && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_ARRAY */ #if JERRY_BUILTIN_NUMBER ECMA_ERROR_DEF (ECMA_ERR_PRECISION_DIGITS_MUST_BE_BETWEEN_IN_RANGE, "Precision digits must be between 1 and 100") #endif /* JERRY_BUILTIN_NUMBER */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_PRIVATE_FIELD_WAS_DEFINED_WITHOUT_A_GETTER, "Private field was defined without a getter") ECMA_ERROR_DEF (ECMA_ERR_PRIVATE_FIELD_WAS_DEFINED_WITHOUT_A_SETTER, "Private field was defined without a setter") ECMA_ERROR_DEF (ECMA_ERR_PROPERTY_NAME_IS_NEITHER_SYMBOL_NOR_STRING, "Property name is neither Symbol nor string") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT ECMA_ERROR_DEF (ECMA_ERR_STRING_CANNOT_BE_CONVERTED_TO_BIGINT_VALUE, "String cannot be converted to BigInt value") #endif /* JERRY_BUILTIN_BIGINT */ @@ -634,16 +541,16 @@ ECMA_ERROR_DEF (ECMA_ERR_INCORRECT_TYPE_CALL, "Operator called on incorrect cont #if JERRY_BUILTIN_ARRAY ECMA_ERROR_DEF (ECMA_ERR_REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE, "Reduce of empty Array with no initial value") #endif /* JERRY_BUILTIN_ARRAY */ -#if JERRY_BUILTIN_REGEXP && !(!JERRY_ESNEXT) +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_REG_EXP_OBJECT, "Argument 'this' is not a valid RegExp object") -#endif /* JERRY_BUILTIN_REGEXP && !(!JERRY_ESNEXT) */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_ARRAY_BUFFER_OBJECT, "Argument 'this' is not an ArrayBuffer object") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_ARROW_FUNCTIONS_INVOKE_WITH_NEW, "Arrow functions cannot be invoked with 'new'") ECMA_ERROR_DEF (ECMA_ERR_ASYNC_FUNCTIONS_INVOKE_WITH_NEW, "Async functions cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ +#endif /* JERRY_ERROR_MESSAGES */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_SET_EXTENSIBLE_PROPERTY, "Cannot set [[Extensible]] property of object") #endif /* JERRY_BUILTIN_PROXY */ @@ -653,23 +560,16 @@ ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_SHAREDARRAYBUFFER_REQUIRES_NEW, "Constructo #if JERRY_BUILTIN_TYPEDARRAY ECMA_ERROR_DEF (ECMA_ERR_CONSTRUCTOR_UINT8_CLAMPED_ARRAY_REQUIRES_NEW, "Constructor Uint8ClampedArray requires 'new'") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_BUILTIN_BIGINT && JERRY_ESNEXT +#if JERRY_BUILTIN_BIGINT ECMA_ERROR_DEF (ECMA_ERR_NEGATIVE_EXPONENT_IS_NOT_ALLOWED_FOR_BIGINTS, "Negative exponent is not allowed for BigInts") -#endif /* JERRY_BUILTIN_BIGINT && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_BIGINT */ ECMA_ERROR_DEF (ECMA_ERR_PROMISE_ALL_REMAINING_ELEMENTS_LIMIT_REACHED, "Promise.all remaining elements limit reached") ECMA_ERROR_DEF (ECMA_ERR_VALUE_RECEIVED_BY_FOR_ASYNC_OF_IS_NOT_OBJECT, "Value received by for-async-of is not object") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT ECMA_ERROR_DEF (ECMA_ERR_INFINITY_OR_NAN_CANNOT_BE_CONVERTED_TO_BIGINT, "Infinity or NaN cannot be converted to BigInt") #endif /* JERRY_BUILTIN_BIGINT */ -#if JERRY_BUILTIN_REGEXP && !(JERRY_ESNEXT) -ECMA_ERROR_DEF (ECMA_ERR_INVALID_ARGUMENT_IS_PASSED_TO_REGEXP_FUNCTION, "Invalid argument is passed to RegExp function") -#endif /* JERRY_BUILTIN_REGEXP && !(JERRY_ESNEXT) */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_OPERATOR_DELETE_RETURNED_FALSE_IN_STRICT_MODE, "Operator delete returned false in strict mode") ECMA_ERROR_DEF (ECMA_ERR_PROPERTY_PROTOTYPE_IS_NOT_AN_OBJECT, "Property 'prototype' is not an object or null") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_PROXY_HANDLER_IS_NULL_FOR_ISARRAY_OPERATION, "Proxy handler is null for 'isArray' operation") #endif /* JERRY_BUILTIN_PROXY */ @@ -680,23 +580,19 @@ ECMA_ERROR_DEF (ECMA_ERR_RIGHT_VALUE_OF_INSTANCEOF_MUST_BE_AN_OBJECT, "Right val #if JERRY_SNAPSHOT_EXEC ECMA_ERROR_DEF (ECMA_ERR_STATIC_SNAPSHOTS_CANNOT_BE_COPIED_INTO_MEMORY, "Static snapshots cannot be copied into memory") #endif /* JERRY_SNAPSHOT_EXEC */ -#if JERRY_ESNEXT && JERRY_SNAPSHOT_SAVE -ECMA_ERROR_DEF (ECMA_ERR_TAGGED_TEMPLATE_LITERALS, "Unsupported feature: tagged template literals") -#endif /* JERRY_ESNEXT && JERRY_SNAPSHOT_SAVE */ #if JERRY_SNAPSHOT_SAVE +ECMA_ERROR_DEF (ECMA_ERR_TAGGED_TEMPLATE_LITERALS, "Unsupported feature: tagged template literals") ECMA_ERROR_DEF (ECMA_ERR_SNAPSHOT_FLAG_NOT_SUPPORTED, "Unsupported generate snapshot flags specified") #endif /* JERRY_SNAPSHOT_SAVE */ #if JERRY_SNAPSHOT_EXEC ECMA_ERROR_DEF (ECMA_ERR_UNSUPPORTED_SNAPSHOT_EXEC_FLAGS_ARE_SPECIFIED, "Unsupported snapshot exec flags are specified") #endif /* JERRY_SNAPSHOT_EXEC */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_VALUE_FOR_CLASS_HERITAGE_IS_NOT_A_CONSTRUCTOR, "Value for class heritage is not a constructor") -#endif /* JERRY_ESNEXT */ ECMA_ERROR_DEF (ECMA_ERR_TOO_MANY_ARGUMENTS_DECLARED_FOR_FUNCTION_APPLY, "Too many arguments declared for Function.apply") -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_ACCESSOR_FUNCTIONS_INVOKE_WITH_NEW, "Accessor functions cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ +#endif /* JERRY_ERROR_MESSAGES */ #if JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_LINK_TO_MODULE_IN_ERROR_STATE, "Cannot link to a module which is in error state") #endif /* JERRY_MODULE_SYSTEM */ @@ -711,18 +607,15 @@ ECMA_ERROR_DEF (ECMA_ERR_TYPEDARRAY_INTRINSTIC_DIRECTLY_CALLED, "TypedArray intr ECMA_ERROR_DEF (ECMA_ERR_UNSIGNED_RIGHT_SHIFT_IS_NOT_ALLOWED_FOR_BIGINTS, "Unsigned right shift is not allowed for BigInts") #endif /* JERRY_BUILTIN_BIGINT */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_ASYNC_GENERATOR, "Argument 'this' is not an async generator object") ECMA_ERROR_DEF (ECMA_ERR_CLASS_EXTENDS_NOT_CONSTRUCTOR, "Class extends value is not a constructor or null") -#endif /* JERRY_ESNEXT */ -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_GENERATOR_FUNCTIONS_INVOKE_WITH_NEW, "Generator functions cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT || JERRY_BUILTIN_REGEXP && !(!JERRY_ESNEXT) +#endif /* JERRY_ERROR_MESSAGES */ +#if JERRY_BUILTIN_REGEXP ECMA_ERROR_DEF (ECMA_ERR_RETURN_VALUE_OF_EXEC_MUST_BE_AN_OBJECT_OR_NULL, "Return value of 'exec' must be an object or null") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT \ -|| JERRY_BUILTIN_REGEXP && !(!JERRY_ESNEXT) */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_DATAVIEW ECMA_ERROR_DEF (ECMA_ERR_START_OFFSET_IS_OUTSIDE_THE_BOUNDS_OF_THE_BUFFER, "Start offset is outside the bounds of the buffer") @@ -730,19 +623,15 @@ ECMA_ERROR_DEF (ECMA_ERR_START_OFFSET_IS_OUTSIDE_THE_BOUNDS_OF_THE_BUFFER, #if JERRY_BUILTIN_SHAREDARRAYBUFFER ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_SHARED_ARRAY_BUFFER, "Argument 'this' is not a SharedArrayBuffer object") #endif /* JERRY_BUILTIN_SHAREDARRAYBUFFER */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CLASS_CONSTRUCTOR_NEW, "Class constructor cannot be invoked without 'new'") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_INCORRECT_RETURN_PROXY_GET_TRAP, "Incorrect value is returned by a Proxy 'get' trap") ECMA_ERROR_DEF (ECMA_ERR_INCORRECT_RETURN_PROXY_SET_TRAP, "Incorrect value is returned by a Proxy 'set' trap") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CLASS_IS_NON_CONFIGURABLE, "Prototype property of a class is non-configurable") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_ARRAY && JERRY_ESNEXT +#if JERRY_BUILTIN_ARRAY ECMA_ERROR_DEF (ECMA_ERR_PUSHING_TOO_HIGH_ELEMENT, "Pushing element over 2**53-1 length is disallowed") -#endif /* JERRY_BUILTIN_ARRAY && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_ARRAY */ ECMA_ERROR_DEF (ECMA_ERR_THE_REQUESTED_PROPERTY_UPDATE_CANNOT_BE_PERFORMED, "The requested property update cannot be performed") #if JERRY_BUILTIN_PROXY @@ -760,35 +649,33 @@ ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_STRING_OBJECT, "Argument 'this' is no ECMA_ERROR_DEF (ECMA_ERR_ARGUMENT_THIS_NOT_SHARED_ARRAY_BUFFER_OBJECT, "Argument 'this' is not an SharedArrayBuffer object") #endif /* JERRY_BUILTIN_SHAREDARRAYBUFFER */ -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_ASYNC_ARROW_FUNCTIONS_INVOKE_WITH_NEW, "Async arrow functions cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ -#if JERRY_BUILTIN_ARRAY && JERRY_ESNEXT +#endif /* JERRY_ERROR_MESSAGES */ +#if JERRY_BUILTIN_ARRAY ECMA_ERROR_DEF (ECMA_ERR_UNSHIFT_TOO_HIGH, "Unshift elements over 2**53-1 length is disallowed") -#endif /* JERRY_BUILTIN_ARRAY && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_ARRAY */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_TRAP_RESULT_NOT_INCLUDE_ALL_NON_CONFIGURABLE_KEYS, "Trap result did not include all non-configurable keys") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_ASYNC_GENERATOR_FUNCTIONS_INVOKE_WITH_NEW, "Async generator functions cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ +#endif /* JERRY_ERROR_MESSAGES */ #if JERRY_BUILTIN_REFLECT ECMA_ERROR_DEF (ECMA_ERR_REFLECT_EXPECTS_AN_OBJECT_AS_SECOND_ARGUMENT, "Reflect.construct expects an object as second argument") #endif /* JERRY_BUILTIN_REFLECT */ -#if JERRY_ERROR_MESSAGES && JERRY_ESNEXT +#if JERRY_ERROR_MESSAGES ECMA_ERROR_DEF (ECMA_ERR_SCRIPT_GLOBAL_FUNCTIONS_INVOKE_WITH_NEW, "Script (global) functions cannot be invoked with 'new'") -#endif /* JERRY_ERROR_MESSAGES && JERRY_ESNEXT */ +#endif /* JERRY_ERROR_MESSAGES */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_CANNOT_CREATE_PROXY, "Cannot create Proxy with a non-object target or handler") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_DERIVED_CTOR_RETURN_NOR_OBJECT_OR_UNDEFINED, "Derived constructors may only return object or undefined") -#endif /* JERRY_ESNEXT */ #if JERRY_SNAPSHOT_EXEC ECMA_ERROR_DEF (ECMA_ERR_INVALID_SNAPSHOT_VERSION_OR_FEATURES, "Invalid snapshot version or unsupported features present") @@ -834,18 +721,14 @@ ECMA_ERROR_DEF (ECMA_ERR_TARGET_NOT_EXTENSIBLE_DIFFERENT_PROTOTYPE_RETURNED, ECMA_ERROR_DEF (ECMA_ERR_TRAP_TRUISH_ADDING_PROPERTY_NON_EXTENSIBLE_TARGET, "Trap returned truish for adding property to the non-extensible target") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CANNOT_READ_PRIVATE_MEMBER_TO_AN_OBJECT_WHOSE_CLASS_DID_NOT_DECLARE_IT, "Cannot read private member to an object whose class did not declare it") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_GIVEN_PROPERTY_IS_A_NON_CONFIGURABLE, "Given property is a non-configurable data property on the proxy target") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CANNOT_WRITE_PRIVATE_MEMBER_TO_AN_OBJECT_WHOSE_CLASS_DID_NOT_DECLARE_IT, "Cannot write private member to an object whose class did not declare it") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_TRAP_FALSISH_PROPERTY_TARGET_NOT_EXTENSIBLE, "Trap returned falsish for property but the proxy target is not extensible") @@ -854,11 +737,8 @@ ECMA_ERROR_DEF (ECMA_ERR_PROXY_PROPERTY_NOT_CONFIGURABLE_NOT_HAVE_GETTER, ECMA_ERROR_DEF (ECMA_ERR_TARGET_PROPERTY_CONFIGURE_ACCESSOR_WITHOUT_SETTER, "The property of a Proxy target is a non configurable accessor without a setter") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT || JERRY_MODULE_SYSTEM ECMA_ERROR_DEF (ECMA_ERR_LET_CONST_NOT_INITIALIZED, "Variables declared by let/const must be initialized before reading their value") -#endif /* JERRY_ESNEXT \ -|| JERRY_MODULE_SYSTEM */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_TRAP_TRUISH_PROPERTY_NON_CONFIGURABLE, "Trap returned truish for property which is non-configurable in the proxy target") @@ -867,10 +747,8 @@ ECMA_ERROR_DEF (ECMA_ERR_TARGET_NOT_EXTENSIBLE_NOT_RETURNED_ITS_PROTOTYPE, ECMA_ERROR_DEF (ECMA_ERR_TRAP_FALSISH_PROPERTY_NON_CONFIGURABLE, "Trap returned falsish for property which exists in the proxy target as non-configurable") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ECMA_ERROR_DEF (ECMA_ERR_CALL_SUPER_CONSTRUCTOR_DERIVED_CLASS_BEFORE_THIS, "Must call super constructor in derived class before accessing 'this' or returning from it") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY ECMA_ERROR_DEF (ECMA_ERR_TRAP_TRUISH_DEFINING_NON_EXISTENT_PROPERTY, "Trap returned truish for defining non-configurable property which is non-existent in the target") diff --git a/jerry-core/ecma/base/ecma-error-messages.ini b/jerry-core/ecma/base/ecma-error-messages.ini index d368ad9bb..c2d7031ab 100644 --- a/jerry-core/ecma/base/ecma-error-messages.ini +++ b/jerry-core/ecma/base/ecma-error-messages.ini @@ -130,7 +130,6 @@ ECMA_ERR_INVALID_UTF8_CODEPOINT = "Invalid UTF8 codepoint" ECMA_ERR_INVALID_UTF8_STRING = "Invalid UTF8 string" ECMA_ERR_INVALID_ENCODING = "Invalid encoding" ECMA_ERR_INVALID_ARGUMENT = "Invalid argument" -ECMA_ERR_INVALID_ARGUMENT_IS_PASSED_TO_REGEXP_FUNCTION = "Invalid argument is passed to RegExp function" ECMA_ERR_INVALID_ARGUMENT_TYPE_IN_TOPRIMITIVE = "Invalid argument type in toPrimitive" ECMA_ERR_INVALID_CAPABILITY = "Invalid capability" ECMA_ERR_INVALID_CHARACTER_CLASS = "Invalid character class" @@ -213,7 +212,6 @@ ECMA_ERR_RESOLVE_MUST_BE_UNDEFINED = "Resolve must be undefined" ECMA_ERR_RESULT_OF_DEFAULTVALUE_IS_INVALID = "Result of [[DefaultValue]] is invalid" ECMA_ERR_RETURN_VALUE_IS_NOT_AN_ARRAYBUFFER_OBJECT = "Return value is not an ArrayBuffer object" ECMA_ERR_RETURN_VALUE_OF_EXEC_MUST_BE_AN_OBJECT_OR_NULL = "Return value of 'exec' must be an object or null" -ECMA_ERR_RETURNED_ARRAYBUFFER_HAS_BEEN_DETACHED = "Returned ArrayBuffer has been detached" ECMA_ERR_RIGHT_VALUE_OF_IN_MUST_BE_AN_OBJECT = "Right value of 'in' must be an object" ECMA_ERR_RIGHT_VALUE_OF_INSTANCEOF_MUST_BE_AN_OBJECT = "Right value of 'instanceof' must be an object" ECMA_ERR_SEARCH_STRING_CANNOT_BE_OF_TYPE_REGEXP = "Search string can't be of type: RegExp" @@ -279,8 +277,6 @@ ECMA_ERR_VALUE_MSG = "Argument cannot be marked as error" ECMA_ERR_WRONG_ARGS_MSG = "This type of argument is not allowed" ECMA_ERR_PARSER_NOT_SUPPORTED = "Source code parsing is disabled" ECMA_ERR_JSON_NOT_SUPPORTED = "JSON support is disabled" -ECMA_ERR_SYMBOL_NOT_SUPPORTED = "Symbol support is disabled" -ECMA_ERR_PROMISE_NOT_SUPPORTED = "Promise support is disabled" ECMA_ERR_TYPED_ARRAY_NOT_SUPPORTED = "TypedArray support is disabled" ECMA_ERR_SHARED_ARRAYBUFFER_NOT_SUPPORTED = "SharedArrayBuffer support is disabled" ECMA_ERR_DATA_VIEW_NOT_SUPPORTED = "DataView support is disabled" diff --git a/jerry-core/ecma/base/ecma-extended-info.c b/jerry-core/ecma/base/ecma-extended-info.c index 75181612b..1dcf3d347 100644 --- a/jerry-core/ecma/base/ecma-extended-info.c +++ b/jerry-core/ecma/base/ecma-extended-info.c @@ -19,8 +19,6 @@ #include "byte-code.h" -#if JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING - /** \addtogroup ecma ECMA * @{ * @@ -118,7 +116,6 @@ ecma_compiled_code_resolve_extended_info (const ecma_compiled_code_t *bytecode_h ecma_value_t *base_p = ecma_compiled_code_resolve_arguments_start (bytecode_header_p); -#if JERRY_ESNEXT if (CBC_FUNCTION_GET_TYPE (bytecode_header_p->status_flags) != CBC_FUNCTION_CONSTRUCTOR) { base_p--; @@ -128,7 +125,6 @@ ecma_compiled_code_resolve_extended_info (const ecma_compiled_code_t *bytecode_h { base_p--; } -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO if (bytecode_header_p->status_flags & CBC_CODE_FLAGS_HAS_LINE_INFO) @@ -142,8 +138,6 @@ ecma_compiled_code_resolve_extended_info (const ecma_compiled_code_t *bytecode_h return ((uint8_t *) base_p) - 1; } /* ecma_compiled_code_resolve_extended_info */ -#endif /* JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING */ - /** * @} * @} diff --git a/jerry-core/ecma/base/ecma-extended-info.h b/jerry-core/ecma/base/ecma-extended-info.h index 95fbcab4d..57046bd2c 100644 --- a/jerry-core/ecma/base/ecma-extended-info.h +++ b/jerry-core/ecma/base/ecma-extended-info.h @@ -25,8 +25,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING - /** * Vlq encoding: flag which is set for all bytes except the last one. */ @@ -48,8 +46,6 @@ uint32_t ecma_extended_info_get_encoded_length (uint32_t value); uint8_t *ecma_compiled_code_resolve_extended_info (const ecma_compiled_code_t *bytecode_header_p); -#endif /* JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING */ - /** * @} * @} diff --git a/jerry-core/ecma/base/ecma-gc.c b/jerry-core/ecma/base/ecma-gc.c index 38b48f81b..fa8b1cdcb 100644 --- a/jerry-core/ecma/base/ecma-gc.c +++ b/jerry-core/ecma/base/ecma-gc.c @@ -43,9 +43,8 @@ #if JERRY_BUILTIN_TYPEDARRAY #include "ecma-typedarray-object.h" #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT + #include "ecma-promise-object.h" -#endif /* JERRY_ESNEXT */ /* TODO: Extract GC to a separate component */ @@ -176,12 +175,10 @@ ecma_gc_mark_global_object (ecma_global_object_t *global_object_p) /**< global o ecma_gc_set_object_visited (ecma_get_object_from_value (global_object_p->this_binding)); #endif /* JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT if (global_object_p->global_scope_cp != global_object_p->global_env_cp) { ecma_gc_set_object_visited (ECMA_GET_NON_NULL_POINTER (ecma_object_t, global_object_p->global_scope_cp)); } -#endif /* JERRY_ESNEXT */ jmem_cpointer_t *builtin_objects_p = global_object_p->builtin_objects; @@ -311,7 +308,6 @@ ecma_gc_mark_properties (ecma_object_t *object_p, /**< object */ switch (property_pair_p->names_cp[index]) { -#if JERRY_ESNEXT case LIT_INTERNAL_MAGIC_STRING_ENVIRONMENT_RECORD: { ecma_environment_record_t *environment_record_p; @@ -349,7 +345,6 @@ ecma_gc_mark_properties (ecma_object_t *object_p, /**< object */ } break; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER case LIT_INTERNAL_MAGIC_STRING_WEAK_REFS: { @@ -511,7 +506,6 @@ ecma_gc_mark_bound_function_object (ecma_object_t *object_p) /**< bound function } } /* ecma_gc_mark_bound_function_object */ -#if JERRY_ESNEXT /** * Mark objects referenced by Promise built-in. */ @@ -555,8 +549,6 @@ ecma_gc_mark_promise_object (ecma_extended_object_t *ext_object_p) /**< extended } } /* ecma_gc_mark_promise_object */ -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_CONTAINER /** * Mark objects referenced by Map built-in. @@ -653,7 +645,6 @@ ecma_gc_mark_set_object (ecma_object_t *object_p) /**< object */ } /* ecma_gc_mark_set_object */ #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_ESNEXT /** * Mark objects referenced by inactive generator functions, async functions, etc. */ @@ -786,8 +777,6 @@ ecma_gc_mark_executable_object (ecma_object_t *object_p) /**< object */ } } /* ecma_gc_mark_executable_object */ -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_PROXY /** * Mark the objects referenced by a proxy object @@ -831,7 +820,6 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ switch (ecma_get_lex_env_type (object_p)) { -#if JERRY_ESNEXT case ECMA_LEXICAL_ENVIRONMENT_CLASS: { #if JERRY_MODULE_SYSTEM @@ -848,7 +836,6 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ #endif /* JERRY_MODULE_SYSTEM */ /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND: { ecma_object_t *binding_object_p = ecma_get_lex_env_binding_object (object_p); @@ -1000,7 +987,6 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ break; } #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_ESNEXT case ECMA_OBJECT_CLASS_GENERATOR: case ECMA_OBJECT_CLASS_ASYNC_GENERATOR: { @@ -1063,7 +1049,6 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ break; } #endif /* JERRY_BUILTIN_REGEXP */ -#endif /* JERRY_ESNEXT */ default: { /* The ECMA_OBJECT_CLASS__MAX type represents an uninitialized class. */ @@ -1086,14 +1071,12 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ { ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) object_p; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ext_object_p->u.array.length_prop_and_hole_count & ECMA_ARRAY_TEMPLATE_LITERAL)) { /* Template objects are never marked. */ JERRY_ASSERT (object_p->type_flags_refs >= ECMA_OBJECT_REF_ONE); return; } -#endif /* JERRY_ESNEXT */ if (ecma_op_array_is_fast_array (ext_object_p)) { @@ -1135,7 +1118,6 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ const ecma_compiled_code_t *compiled_code_p = ecma_op_function_get_compiled_code (ext_func_p); -#if JERRY_ESNEXT if (CBC_FUNCTION_IS_ARROW (compiled_code_p->status_flags)) { ecma_arrow_function_t *arrow_func_p = (ecma_arrow_function_t *) object_p; @@ -1150,7 +1132,6 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ ecma_gc_set_object_visited (ecma_get_object_from_value (arrow_func_p->new_target)); } } -#endif /* JERRY_ESNEXT */ #if JERRY_SNAPSHOT_EXEC if (JERRY_UNLIKELY (compiled_code_p->status_flags & CBC_CODE_FLAGS_STATIC_FUNCTION)) @@ -1169,18 +1150,15 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ ecma_gc_mark_bound_function_object (object_p); break; } -#if JERRY_ESNEXT || JERRY_BUILTIN_REALMS case ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION: { ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; -#endif /* JERRY_ESNEXT || JERRY_BUILTIN_REALMS */ #if JERRY_BUILTIN_REALMS ecma_value_t realm_value = ext_func_p->u.built_in.realm_value; ecma_gc_set_object_visited (ECMA_GET_INTERNAL_VALUE_POINTER (ecma_object_t, realm_value)); #endif /* JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT if (ext_func_p->u.built_in.id == ECMA_BUILTIN_ID_HANDLER) { switch (ext_func_p->u.built_in.routine_id) @@ -1248,19 +1226,13 @@ ecma_gc_mark (ecma_object_t *object_p) /**< object to mark from */ } } } -#endif /* JERRY_ESNEXT */ - -#if JERRY_ESNEXT || JERRY_BUILTIN_REALMS break; } -#endif /* JERRY_ESNEXT || JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION: { ecma_gc_mark_compiled_code (((ecma_extended_object_t *) object_p)->u.constructor_function.script_value); break; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_REALMS case ECMA_OBJECT_TYPE_NATIVE_FUNCTION: { @@ -1408,8 +1380,6 @@ ecma_free_fast_access_array (ecma_object_t *object_p) /**< fast access mode arra ecma_dealloc_extended_object (object_p, sizeof (ecma_extended_object_t)); } /* ecma_free_fast_access_array */ -#if JERRY_ESNEXT - /** * Free non-objects referenced by inactive generator functions, async functions, etc. * @@ -1531,8 +1501,6 @@ ecma_gc_free_executable_object (ecma_object_t *object_p) /**< object */ return size; } /* ecma_gc_free_executable_object */ -#endif /* JERRY_ESNEXT */ - JERRY_STATIC_ASSERT (!ECMA_PROPERTY_IS_RAW (ECMA_PROPERTY_TYPE_DELETED), ecma_property_type_deleted_must_not_be_raw_property); JERRY_STATIC_ASSERT ((ECMA_PROPERTY_TYPE_DELETED & ECMA_PROPERTY_FLAG_LCACHED) == 0, @@ -1601,7 +1569,6 @@ ecma_gc_free_property (ecma_object_t *object_p, /**< object */ switch (name_cp) { -#if JERRY_ESNEXT case LIT_INTERNAL_MAGIC_STRING_ENVIRONMENT_RECORD: { ecma_environment_record_t *environment_record_p; @@ -1636,7 +1603,6 @@ ecma_gc_free_property (ecma_object_t *object_p, /**< object */ ecma_compact_collection_destroy (compact_collection_p); break; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_WEAKREF || JERRY_BUILTIN_CONTAINER case LIT_INTERNAL_MAGIC_STRING_WEAK_REFS: { @@ -1787,9 +1753,7 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ { case ECMA_OBJECT_CLASS_STRING: case ECMA_OBJECT_CLASS_NUMBER: -#if JERRY_ESNEXT case ECMA_OBJECT_CLASS_SYMBOL: -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT case ECMA_OBJECT_CLASS_BIGINT: #endif /* JERRY_BUILTIN_BIGINT */ @@ -1833,12 +1797,7 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ #if JERRY_BUILTIN_DATE case ECMA_OBJECT_CLASS_DATE: { -#if JERRY_ESNEXT ext_object_size = sizeof (ecma_date_object_t); -#else /* !JERRY_ESNEXT */ - ecma_number_t *num_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, ext_object_p->u.cls.u3.date); - ecma_dealloc_number (num_p); -#endif /* JERRY_ESNEXT */ break; } #endif /* JERRY_BUILTIN_DATE */ @@ -1853,7 +1812,6 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ break; } #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT case ECMA_OBJECT_CLASS_STRING_ITERATOR: { ecma_value_t iterated_value = ext_object_p->u.cls.u3.iterated_value; @@ -1880,7 +1838,6 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ break; } #endif /* JERRY_BUILTIN_REGEXP */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY case ECMA_OBJECT_CLASS_ARRAY_BUFFER: #if JERRY_BUILTIN_SHAREDARRAYBUFFER @@ -1932,7 +1889,6 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ break; } #endif /* JERRY_BUILTIN_DATAVIEW */ -#if JERRY_ESNEXT case ECMA_OBJECT_CLASS_GENERATOR: case ECMA_OBJECT_CLASS_ASYNC_GENERATOR: { @@ -1959,7 +1915,6 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ ext_object_size = sizeof (ecma_async_from_sync_iterator_object_t); break; } -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case ECMA_OBJECT_CLASS_MODULE: { @@ -2013,14 +1968,12 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ ecma_compiled_code_t *byte_code_p = (ECMA_GET_INTERNAL_VALUE_POINTER (ecma_compiled_code_t, ext_func_p->u.function.bytecode_cp)); -#if JERRY_ESNEXT if (CBC_FUNCTION_IS_ARROW (byte_code_p->status_flags)) { ecma_free_value_if_not_object (((ecma_arrow_function_t *) object_p)->this_binding); ecma_free_value_if_not_object (((ecma_arrow_function_t *) object_p)->new_target); ext_object_size = sizeof (ecma_arrow_function_t); } -#endif /* JERRY_ESNEXT */ ecma_bytecode_deref (byte_code_p); #if JERRY_SNAPSHOT_EXEC @@ -2043,7 +1996,6 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ break; } -#if JERRY_ESNEXT if (extended_func_p->u.built_in.id != ECMA_BUILTIN_ID_HANDLER) { break; @@ -2096,7 +2048,6 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ JERRY_UNREACHABLE (); } } -#endif /* JERRY_ESNEXT */ break; } case ECMA_OBJECT_TYPE_BOUND_FUNCTION: @@ -2106,9 +2057,7 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ ecma_value_t args_len_or_this = bound_func_p->header.u.bound_function.args_len_or_this; -#if JERRY_ESNEXT ecma_free_value (bound_func_p->target_length); -#endif /* JERRY_ESNEXT */ if (!ecma_is_value_integer_number (args_len_or_this)) { @@ -2128,13 +2077,11 @@ ecma_gc_free_object (ecma_object_t *object_p) /**< object to free */ ext_object_size += args_size; break; } -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION: { ecma_script_deref (((ecma_extended_object_t *) object_p)->u.constructor_function.script_value); break; } -#endif /* JERRY_ESNEXT */ case ECMA_OBJECT_TYPE_NATIVE_FUNCTION: { ext_object_size = sizeof (ecma_native_function_t); diff --git a/jerry-core/ecma/base/ecma-globals.h b/jerry-core/ecma/base/ecma-globals.h index 91bb9c540..75c70e196 100644 --- a/jerry-core/ecma/base/ecma-globals.h +++ b/jerry-core/ecma/base/ecma-globals.h @@ -111,17 +111,13 @@ typedef enum * and the first value is the source code */ ECMA_PARSE_HAS_ARGUMENT_LIST_VALUE = (1u << 12), /**< source_p points to a value list * and the second value is the argument list */ -#if JERRY_ESNEXT ECMA_PARSE_GENERATOR_FUNCTION = (1u << 13), /**< generator function is parsed */ ECMA_PARSE_ASYNC_FUNCTION = (1u << 14), /**< async function is parsed */ -#endif /* JERRY_ESNEXT */ /* These flags are internally used by the parser. */ ECMA_PARSE_INTERNAL_FREE_SOURCE = (1u << 15), /**< free source_p data */ ECMA_PARSE_INTERNAL_FREE_ARG_LIST = (1u << 16), /**< free arg_list_p data */ -#if JERRY_ESNEXT ECMA_PARSE_INTERNAL_PRE_SCANNING = (1u << 17), /**< the parser is in pre-scanning mode */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ECMA_PARSE_INTERNAL_HAS_IMPORT_META = (1u << 18), /**< module has import.meta expression */ #endif /* JERRY_MODULE_SYSTEM */ @@ -215,10 +211,8 @@ enum * or function call argument list */ /* Other values */ ECMA_VALUE_ARGUMENT_NO_TRACK = ECMA_MAKE_VALUE (12), /**< represents not-tracked arguments formal parameter */ -#if JERRY_ESNEXT ECMA_VALUE_SYNC_ITERATOR = ECMA_MAKE_VALUE (13), /**< option for ecma_op_get_iterator: sync iterator is requested */ ECMA_VALUE_ASYNC_ITERATOR = ECMA_MAKE_VALUE (14), /**< option for ecma_op_get_iterator: async iterator is requested */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_GLOBAL_THIS ECMA_VALUE_GLOBAL_THIS = ECMA_MAKE_VALUE (15), /**< globalThis built-in */ #endif /* JERRY_BUILTIN_GLOBAL_THIS */ @@ -322,8 +316,6 @@ typedef struct ecma_native_pointer_chain_t struct ecma_native_pointer_chain_t *next_p; /**< next in the list */ } ecma_native_pointer_chain_t; -#if JERRY_ESNEXT - /** * Representation for class constructor environment record. */ @@ -333,8 +325,6 @@ typedef struct ecma_value_t function_object; /**< function object */ } ecma_environment_record_t; -#endif /* JERRY_ESNEXT */ - /** * Property list: * The property list of an object is a chain list of various items. @@ -357,10 +347,8 @@ typedef enum * that are not indices */ ECMA_LIST_ENUMERABLE = (1 << 1), /**< exclude non-enumerable properties */ ECMA_LIST_PROTOTYPE = (1 << 2), /**< list properties from prototype chain */ -#if JERRY_ESNEXT ECMA_LIST_SYMBOLS = (1 << 3), /**< list symbol properties */ ECMA_LIST_SYMBOLS_ONLY = (1 << 4), /**< list symbol properties only */ -#endif /* JERRY_ESNEXT */ ECMA_LIST_CONVERT_FAST_ARRAYS = (1 << 5), /**< after listing the properties convert * the fast access mode array back to normal array */ } ecma_list_properties_options_t; @@ -395,9 +383,7 @@ typedef enum ECMA_PROPERTY_FLAG_BUILT_IN = (1u << 3), /**< property is defined by the ECMAScript standard */ ECMA_FAST_ARRAY_FLAG = (1u << 3), /**< array is fast array */ ECMA_PROPERTY_FLAG_LCACHED = (1u << 4), /**< property is lcached */ -#if JERRY_ESNEXT ECMA_ARRAY_TEMPLATE_LITERAL = (1u << 4), /**< array is a template literal constructed by the parser */ -#endif /* JERRY_ESNEXT */ ECMA_PROPERTY_FLAG_DATA = (1u << 5), /**< property contains data */ /* The last two bits contains an ECMA_DIRECT_STRING value. */ } ecma_property_flags_t; @@ -463,11 +449,7 @@ typedef enum /** * Default flag of length property. */ -#if JERRY_ESNEXT #define ECMA_PROPERTY_FLAG_DEFAULT_LENGTH ECMA_PROPERTY_FLAG_CONFIGURABLE -#else /* !JERRY_ESNEXT */ -#define ECMA_PROPERTY_FLAG_DEFAULT_LENGTH ECMA_PROPERTY_FIXED -#endif /* JERRY_ESNEXT */ /** * Shift for property name part. @@ -743,8 +725,7 @@ typedef enum ECMA_OBJECT_CLASS_MODULE_NAMESPACE, /**< Module Namespace (ECMAScript v11, 9.4.6) */ #endif /* JERRY_MODULE_SYSTEM */ -/* These objects are marked by Garbage Collector. */ -#if JERRY_ESNEXT + /* These objects are marked by Garbage Collector. */ ECMA_OBJECT_CLASS_GENERATOR, /**< Generator object (ECMAScript v6, 25.2) */ ECMA_OBJECT_CLASS_ASYNC_GENERATOR, /**< Async generator object (ECMAScript v11, 25.3) */ ECMA_OBJECT_CLASS_ARRAY_ITERATOR, /**< Array iterator object (ECMAScript v6, 22.1.5.1) */ @@ -753,15 +734,12 @@ typedef enum #if JERRY_BUILTIN_REGEXP ECMA_OBJECT_CLASS_REGEXP_STRING_ITERATOR, /** RegExp string iterator object (ECMAScript v11, 21.2.7) */ #endif /* JERRY_BUILTIN_REGEXP */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ECMA_OBJECT_CLASS_MODULE, /**< Module (ECMAScript v6, 15.2) */ #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT ECMA_OBJECT_CLASS_PROMISE, /**< Promise (ECMAScript v6, 25.4) */ ECMA_OBJECT_CLASS_PROMISE_CAPABILITY, /**< Promise capability (ECMAScript v6, 25.4.1.1) */ ECMA_OBJECT_CLASS_ASYNC_FROM_SYNC_ITERATOR, /**< AsyncFromSyncIterator (ECMAScript v11, 25.1.4) */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATAVIEW ECMA_OBJECT_CLASS_DATAVIEW, /**< DataView (ECMAScript v6, 24.2) */ #endif /* JERRY_BUILTIN_DATAVIEW */ @@ -783,10 +761,8 @@ typedef enum #if JERRY_BUILTIN_REGEXP ECMA_OBJECT_CLASS_REGEXP, /**< RegExp Object (ECMAScript v5.1, 15.10) */ #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT ECMA_OBJECT_CLASS_SYMBOL, /**< Symbol object (ECMAScript v6, 4.3.27) */ ECMA_OBJECT_CLASS_STRING_ITERATOR, /**< String iterator object (ECMAScript v6, 22.1.5.1) */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY ECMA_OBJECT_CLASS_ARRAY_BUFFER, /**< Array Buffer (ECMAScript v6, 24.1) */ #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -810,9 +786,7 @@ typedef enum { /* Types between 0 - 12 are ecma_object_type_t. */ ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE = 13, /**< declarative lexical environment */ -#if JERRY_ESNEXT ECMA_LEXICAL_ENVIRONMENT_CLASS = 14, /**< lexical environment with class */ -#endif /* JERRY_ESNEXT */ ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND = 15, /**< object-bound lexical environment */ ECMA_LEXICAL_ENVIRONMENT_TYPE_START = ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE, /**< first lexical @@ -820,8 +794,6 @@ typedef enum ECMA_LEXICAL_ENVIRONMENT_TYPE__MAX = ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND /**< maximum value */ } ecma_lexical_environment_type_t; -#if JERRY_ESNEXT - /** * Types of array iterators. */ @@ -833,8 +805,6 @@ typedef enum ECMA_ITERATOR__COUNT, /**< number of iterator kinds */ } ecma_iterator_kind_t; -#endif /* JERRY_ESNEXT */ - /** * Offset for JERRY_CONTEXT (status_flags) top 8 bits. */ @@ -1063,11 +1033,9 @@ typedef struct #if JERRY_MODULE_SYSTEM uint8_t module_state; /**< Module state */ #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT uint8_t iterator_kind; /**< type of iterator */ uint8_t regexp_string_iterator_flags; /**< flags for RegExp string iterator */ uint8_t promise_flags; /**< Promise object flags */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER uint8_t container_flags; /**< container object flags */ #endif /* JERRY_BUILTIN_CONTAINER */ @@ -1085,10 +1053,8 @@ typedef struct #if JERRY_MODULE_SYSTEM uint16_t module_flags; /**< Module flags */ #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT uint16_t iterator_index; /**< for %Iterator%: [[%Iterator%NextIndex]] property */ uint16_t executable_obj_flags; /**< executable object flags */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER uint16_t container_id; /**< magic string id of a container */ #endif /* JERRY_BUILTIN_CONTAINER */ @@ -1102,21 +1068,16 @@ typedef struct union { ecma_value_t value; /**< value of the object (e.g. boolean, number, string, etc.) */ -#if !JERRY_ESNEXT - ecma_value_t date; /**< Date object [[DateValue]] internal property */ -#endif /* !JERRY_ESNEXT */ ecma_value_t target; /**< [[ProxyTarget]] or [[WeakRefTarget]] internal property */ #if JERRY_BUILTIN_TYPEDARRAY ecma_value_t arraybuffer; /**< for typedarray: ArrayBuffer reference */ #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT ecma_value_t head; /**< points to the async generator task queue head item */ ecma_value_t iterated_value; /**< for %Iterator%: [[IteratedObject]] property */ ecma_value_t promise; /**< PromiseCapability[[Promise]] internal slot */ ecma_value_t sync_iterator; /**< IteratorRecord [[Iterator]] internal slot for AsyncFromSyncIterator */ ecma_value_t spread_value; /**< for spread object: spreaded element */ int32_t tza; /**< TimeZone adjustment for date objects */ -#endif /* JERRY_ESNEXT */ uint32_t length; /**< length related property (e.g. length of ArrayBuffer) */ uint32_t arguments_number; /**< for arguments: arguments number */ #if JERRY_MODULE_SYSTEM @@ -1153,7 +1114,6 @@ typedef struct ecma_value_t args_len_or_this; /**< length of arguments or this value */ } bound_function; -#if JERRY_ESNEXT /** * Description of implicit class constructor function. */ @@ -1162,7 +1122,6 @@ typedef struct ecma_value_t script_value; /**< script value */ uint8_t flags; /**< constructor flags */ } constructor_function; -#endif /* JERRY_ESNEXT */ } u; } ecma_extended_object_t; @@ -1245,9 +1204,7 @@ typedef struct typedef struct { ecma_extended_object_t header; /**< extended object header */ -#if JERRY_ESNEXT ecma_value_t target_length; /**< length of target function */ -#endif /* JERRY_ESNEXT */ } ecma_bound_function_t; #if JERRY_SNAPSHOT_EXEC @@ -1263,8 +1220,6 @@ typedef struct #endif /* JERRY_SNAPSHOT_EXEC */ -#if JERRY_ESNEXT - /** * Description of arrow function objects. */ @@ -1288,8 +1243,6 @@ typedef struct #endif /* JERRY_SNAPSHOT_EXEC */ -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_CONTAINER /** * Flags for container objects @@ -1711,12 +1664,10 @@ typedef struct } u; } ecma_extended_string_t; -#if JERRY_ESNEXT /** * Required number of ecma values in a compact collection to represent PrivateElement */ #define ECMA_PRIVATE_ELEMENT_LIST_SIZE 3 -#endif /* JERRY_ESNEXT */ /** * String builder header @@ -1943,8 +1894,6 @@ typedef struct #endif /* JERRY_BUILTIN_BIGINT */ #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT - /** * Executable (e.g. generator, async) object flags. */ @@ -2060,8 +2009,6 @@ typedef enum ECMA_PROMISE_ANY_REJECT, /**< promise.any reject */ } ecma_promise_executor_type_t; -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_DATAVIEW /** * Description of DataView objects. @@ -2174,21 +2121,12 @@ typedef struct } ecma_revocable_proxy_object_t; #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT /** * Type to repesent the maximum property index * * For ES6+ the maximum valid property index is 2**53 - 1 */ typedef uint64_t ecma_length_t; -#else /* !JERRY_ESNEXT */ -/** - * Type to repesent the maximum property index - * - * For ES5+ the maximum valid property index is 2**32 - 1 - */ -typedef uint32_t ecma_length_t; -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT @@ -2270,8 +2208,6 @@ typedef struct } u; } ecma_mapped_arguments_t; -#if JERRY_ESNEXT - /** * Date object descriptor flags */ @@ -2328,8 +2264,6 @@ typedef enum */ #define ECMA_PRIVATE_PROPERTY_KIND(prop) ((prop) & ((ECMA_PRIVATE_PROPERTY_STATIC_FLAG - 1))) -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/base/ecma-helpers-collection.c b/jerry-core/ecma/base/ecma-helpers-collection.c index cecb3cdb0..50afc5c54 100644 --- a/jerry-core/ecma/base/ecma-helpers-collection.c +++ b/jerry-core/ecma/base/ecma-helpers-collection.c @@ -80,8 +80,6 @@ ecma_collection_free_objects (ecma_collection_t *collection_p) /**< value collec ecma_collection_destroy (collection_p); } /* ecma_collection_free_objects */ -#if JERRY_ESNEXT - /** * Free the template literal objects and deallocate the collection */ @@ -118,8 +116,6 @@ ecma_collection_free_template_literal (ecma_collection_t *collection_p) /**< val ecma_collection_destroy (collection_p); } /* ecma_collection_free_template_literal */ -#endif /* JERRY_ESNEXT */ - /** * Free the non-object collection elements and deallocate the collection */ diff --git a/jerry-core/ecma/base/ecma-helpers-conversion.c b/jerry-core/ecma/base/ecma-helpers-conversion.c index 66879bfd4..db22503a6 100644 --- a/jerry-core/ecma/base/ecma-helpers-conversion.c +++ b/jerry-core/ecma/base/ecma-helpers-conversion.c @@ -293,12 +293,6 @@ ecma_utf8_string_to_number_by_radix (const lit_utf8_byte_t *str_p, /**< utf-8 st uint32_t radix, /**< radix */ uint32_t options) /**< option flags */ { -#if JERRY_ESNEXT - bool allow_underscore = (options & ECMA_CONVERSION_ALLOW_UNDERSCORE); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (options); -#endif /* !JERRY_ESNEXT */ - JERRY_ASSERT (radix == 2 || radix == 8 || radix == 16); JERRY_ASSERT (*str_p == LIT_CHAR_0); @@ -319,12 +313,10 @@ ecma_utf8_string_to_number_by_radix (const lit_utf8_byte_t *str_p, /**< utf-8 st { lit_utf8_byte_t digit = *str_p++; -#if JERRY_ESNEXT - if (digit == LIT_CHAR_UNDERSCORE && allow_underscore) + if (digit == LIT_CHAR_UNDERSCORE && (options & ECMA_CONVERSION_ALLOW_UNDERSCORE)) { continue; } -#endif /* JERRY_ESNEXT */ if (!lit_char_is_hex_digit (digit)) { @@ -405,13 +397,11 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */ /* Parsing integer part */ while (str_p < end_p) { -#if JERRY_ESNEXT if (*str_p == LIT_CHAR_UNDERSCORE && (options & ECMA_CONVERSION_ALLOW_UNDERSCORE)) { str_p++; continue; } -#endif /* JERRY_ESNEXT */ if (!lit_char_is_decimal_digit (*str_p)) { @@ -444,13 +434,11 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */ while (str_p < end_p) { -#if JERRY_ESNEXT if (*str_p == LIT_CHAR_UNDERSCORE && (options & ECMA_CONVERSION_ALLOW_UNDERSCORE)) { str_p++; continue; } -#endif /* JERRY_ESNEXT */ if (!lit_char_is_decimal_digit (*str_p)) { @@ -506,13 +494,11 @@ ecma_utf8_string_to_number (const lit_utf8_byte_t *str_p, /**< utf-8 string */ while (str_p < end_p) { -#if JERRY_ESNEXT if (*str_p == LIT_CHAR_UNDERSCORE && (options & ECMA_CONVERSION_ALLOW_UNDERSCORE)) { str_p++; continue; } -#endif /* JERRY_ESNEXT */ if (!lit_char_is_decimal_digit (*str_p)) { diff --git a/jerry-core/ecma/base/ecma-helpers-string.c b/jerry-core/ecma/base/ecma-helpers-string.c index bc4b43476..294bbaa87 100644 --- a/jerry-core/ecma/base/ecma-helpers-string.c +++ b/jerry-core/ecma/base/ecma-helpers-string.c @@ -205,7 +205,6 @@ ecma_new_ecma_string_from_magic_string_ex_id (lit_magic_string_ex_id_t id) /**< return string_desc_p; } /* ecma_new_ecma_string_from_magic_string_ex_id */ -#if JERRY_ESNEXT /** * Allocate new ecma-string and fill it with reference to the symbol descriptor * @@ -240,7 +239,6 @@ ecma_prop_name_is_symbol (ecma_string_t *string_p) /**< ecma-string */ return (!ECMA_IS_DIRECT_STRING (string_p) && ECMA_STRING_GET_CONTAINER (string_p) == ECMA_STRING_CONTAINER_SYMBOL); } /* ecma_prop_name_is_symbol */ -#endif /* JERRY_ESNEXT */ /** * Allocate new UTF8 ecma-string and fill it with characters from the given utf8 buffer @@ -537,8 +535,6 @@ ecma_new_ecma_string_from_code_unit (ecma_char_t code_unit) /**< code unit */ return ecma_new_ecma_string_from_utf8 (lit_utf8_bytes, bytes_size); } /* ecma_new_ecma_string_from_code_unit */ -#if JERRY_ESNEXT - /** * Allocate new ecma-string and fill it with cesu-8 character which represents specified code units * @@ -555,8 +551,6 @@ ecma_new_ecma_string_from_code_units (ecma_char_t first_code_unit, /**< code uni return ecma_new_ecma_string_from_utf8 (lit_utf8_bytes, bytes_size); } /* ecma_new_ecma_string_from_code_units */ -#endif /* JERRY_ESNEXT */ - /** * Allocate new ecma-string and fill it with ecma-number * @@ -590,14 +584,12 @@ ecma_new_ecma_string_from_length (ecma_length_t number) /**< property length */ return (ecma_string_t *) ECMA_CREATE_DIRECT_STRING (ECMA_DIRECT_STRING_UINT, (uintptr_t) number); } -#if JERRY_ESNEXT JERRY_ASSERT ((ecma_number_t) number <= ECMA_NUMBER_MAX_SAFE_INTEGER); if (JERRY_UNLIKELY (number > UINT32_MAX)) { return ecma_new_ecma_string_from_number ((ecma_number_t) number); } -#endif /* JERRY_ESNEXT */ return ecma_new_non_direct_string_from_uint32 ((uint32_t) number); } /* ecma_new_ecma_string_from_length */ @@ -991,7 +983,6 @@ ecma_destroy_ecma_string (ecma_string_t *string_p) /**< ecma-string */ ecma_dealloc_string_buffer (string_p, ECMA_ASCII_STRING_GET_SIZE (string_p) + ECMA_ASCII_STRING_HEADER_SIZE); return; } -#if JERRY_ESNEXT case ECMA_STRING_CONTAINER_SYMBOL: { ecma_extended_string_t *symbol_p = (ecma_extended_string_t *) string_p; @@ -999,7 +990,6 @@ ecma_destroy_ecma_string (ecma_string_t *string_p) /**< ecma-string */ ecma_dealloc_extended_string (symbol_p); return; } -#endif /* JERRY_ESNEXT */ default: { JERRY_ASSERT (ECMA_STRING_GET_CONTAINER (string_p) == ECMA_STRING_CONTAINER_UINT32_IN_DESC @@ -2349,8 +2339,6 @@ ecma_string_trim (const ecma_string_t *string_p) /**< pointer to an ecma string return ret_string_p; } /* ecma_string_trim */ -#if JERRY_ESNEXT - /** * Pad the beginning or the end of string with parameter given in fill_string to the length of max_length. * @@ -2442,7 +2430,6 @@ ecma_string_pad (ecma_value_t original_string_p, /**< Input ecma string */ return ecma_make_string_value (ecma_stringbuilder_finalize (&builder)); } /* ecma_string_pad */ -#endif /* JERRY_ESNEXT */ /** * Create an empty string builder @@ -2756,7 +2743,6 @@ ecma_stringbuilder_destroy (ecma_stringbuilder_t *builder_p) /**< string builder #endif /* JERRY_MEM_STATS */ } /* ecma_stringbuilder_destroy */ -#if JERRY_ESNEXT /** * AdvanceStringIndex operation * @@ -2803,7 +2789,6 @@ ecma_op_advance_string_index (ecma_string_t *str_p, /**< input string */ return next_index + 1; } /* ecma_op_advance_string_index */ -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/base/ecma-helpers-value.c b/jerry-core/ecma/base/ecma-helpers-value.c index b6fa44565..cc79baa9c 100644 --- a/jerry-core/ecma/base/ecma-helpers-value.c +++ b/jerry-core/ecma/base/ecma-helpers-value.c @@ -327,12 +327,7 @@ ecma_is_value_string (ecma_value_t value) /**< ecma value */ extern inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE ecma_is_value_symbol (ecma_value_t value) /**< ecma value */ { -#if JERRY_ESNEXT return (ecma_get_value_type_field (value) == ECMA_TYPE_SYMBOL); -#else /* JERRY_ESNEXT */ - JERRY_UNUSED (value); - return false; -#endif /* JERRY_ESNEXT */ } /* ecma_is_value_symbol */ /** @@ -374,11 +369,7 @@ ecma_is_value_bigint (ecma_value_t value) /**< ecma value */ extern inline bool JERRY_ATTR_CONST JERRY_ATTR_ALWAYS_INLINE ecma_is_value_prop_name (ecma_value_t value) /**< ecma value */ { -#if JERRY_ESNEXT return ecma_is_value_string (value) || ecma_is_value_symbol (value); -#else /* !JERRY_ESNEXT */ - return ecma_is_value_string (value); -#endif /* JERRY_ESNEXT */ } /* ecma_is_value_prop_name */ /** @@ -631,9 +622,7 @@ extern inline ecma_value_t JERRY_ATTR_PURE JERRY_ATTR_ALWAYS_INLINE ecma_make_string_value (const ecma_string_t *ecma_string_p) /**< string to reference in value */ { JERRY_ASSERT (ecma_string_p != NULL); -#if JERRY_ESNEXT JERRY_ASSERT (!ecma_prop_name_is_symbol ((ecma_string_t *) ecma_string_p)); -#endif /* JERRY_ESNEXT */ if ((((uintptr_t) ecma_string_p) & ECMA_VALUE_TYPE_MASK) != 0) { @@ -643,7 +632,6 @@ ecma_make_string_value (const ecma_string_t *ecma_string_p) /**< string to refer return ecma_pointer_to_ecma_value (ecma_string_p) | ECMA_TYPE_STRING; } /* ecma_make_string_value */ -#if JERRY_ESNEXT /** * Symbol value constructor * @@ -657,7 +645,6 @@ ecma_make_symbol_value (const ecma_string_t *ecma_symbol_p) /**< symbol to refer return ecma_pointer_to_ecma_value (ecma_symbol_p) | ECMA_TYPE_SYMBOL; } /* ecma_make_symbol_value */ -#endif /* JERRY_ESNEXT */ /** * Property-name value constructor @@ -669,12 +656,10 @@ ecma_make_prop_name_value (const ecma_string_t *ecma_prop_name_p) /**< property { JERRY_ASSERT (ecma_prop_name_p != NULL); -#if JERRY_ESNEXT if (ecma_prop_name_is_symbol ((ecma_string_t *) ecma_prop_name_p)) { return ecma_make_symbol_value (ecma_prop_name_p); } -#endif /* JERRY_ESNEXT */ return ecma_make_string_value (ecma_prop_name_p); } /* ecma_make_prop_name_value */ @@ -794,7 +779,6 @@ ecma_get_string_from_value (ecma_value_t value) /**< ecma value */ return (ecma_string_t *) ecma_get_pointer_from_ecma_value (value); } /* ecma_get_string_from_value */ -#if JERRY_ESNEXT /** * Get pointer to ecma-string from ecma value * @@ -807,7 +791,6 @@ ecma_get_symbol_from_value (ecma_value_t value) /**< ecma value */ return (ecma_string_t *) ecma_get_pointer_from_ecma_value (value); } /* ecma_get_symbol_from_value */ -#endif /* JERRY_ESNEXT */ /** * Get pointer to a property name from ecma value @@ -889,9 +872,7 @@ ecma_copy_value (ecma_value_t value) /**< value description */ return ecma_make_float_value (new_num_p); } -#if JERRY_ESNEXT case ECMA_TYPE_SYMBOL: -#endif /* JERRY_ESNEXT */ case ECMA_TYPE_STRING: { ecma_string_t *string_p = (ecma_string_t *) ecma_get_pointer_from_ecma_value (value); @@ -1113,9 +1094,7 @@ ecma_free_value (ecma_value_t value) /**< value description */ ecma_dealloc_number (number_p); break; } -#if JERRY_ESNEXT case ECMA_TYPE_SYMBOL: -#endif /* JERRY_ESNEXT */ case ECMA_TYPE_STRING: { ecma_string_t *string_p = (ecma_string_t *) ecma_get_pointer_from_ecma_value (value); @@ -1240,12 +1219,10 @@ ecma_get_typeof_lit_id (ecma_value_t value) /**< input ecma value */ { ret_value = LIT_MAGIC_STRING_STRING; } -#if JERRY_ESNEXT else if (ecma_is_value_symbol (value)) { ret_value = LIT_MAGIC_STRING_SYMBOL; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT else if (ecma_is_value_bigint (value)) { diff --git a/jerry-core/ecma/base/ecma-helpers.c b/jerry-core/ecma/base/ecma-helpers.c index 908c8388a..c51be10d8 100644 --- a/jerry-core/ecma/base/ecma-helpers.c +++ b/jerry-core/ecma/base/ecma-helpers.c @@ -164,8 +164,6 @@ ecma_create_object_lex_env (ecma_object_t *outer_lexical_environment_p, /**< out return new_lexical_environment_p; } /* ecma_create_object_lex_env */ -#if JERRY_ESNEXT - /** * Create a lexical environment with a specified size. * @@ -200,8 +198,6 @@ ecma_create_lex_env_class (ecma_object_t *outer_lexical_environment_p, /**< oute return new_lexical_environment_p; } /* ecma_create_lex_env_class */ -#endif /* JERRY_ESNEXT */ - /** * Check if the object is lexical environment. * @@ -303,13 +299,9 @@ ecma_get_lex_env_binding_object (const ecma_object_t *object_p) /**< object-boun { JERRY_ASSERT (object_p != NULL); JERRY_ASSERT (ecma_is_lexical_environment (object_p)); -#if JERRY_ESNEXT JERRY_ASSERT (ecma_get_lex_env_type (object_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND || (ecma_get_lex_env_type (object_p) == ECMA_LEXICAL_ENVIRONMENT_CLASS && !ECMA_LEX_ENV_CLASS_IS_MODULE (object_p))); -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_get_lex_env_type (object_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); -#endif /* JERRY_ESNEXT */ return ECMA_GET_NON_NULL_POINTER (ecma_object_t, object_p->u1.bound_object_cp); } /* ecma_get_lex_env_binding_object */ @@ -1534,7 +1526,6 @@ ecma_bytecode_deref (ecma_compiled_code_t *bytecode_p) /**< byte code pointer */ ecma_script_deref (((cbc_uint8_arguments_t *) bytecode_p)->script_value); -#if JERRY_ESNEXT if (bytecode_p->status_flags & CBC_CODE_FLAGS_HAS_TAGGED_LITERALS) { ecma_collection_t *collection_p = ecma_compiled_code_get_tagged_template_collection (bytecode_p); @@ -1544,7 +1535,6 @@ ecma_bytecode_deref (ecma_compiled_code_t *bytecode_p) /**< byte code pointer */ JERRY_CONTEXT (ecma_gc_new_objects) += collection_p->item_count * 2; ecma_collection_free_template_literal (collection_p); } -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO if (bytecode_p->status_flags & CBC_CODE_FLAGS_HAS_LINE_INFO) @@ -1659,12 +1649,10 @@ ecma_script_get_from_value (ecma_value_t value) /**< compiled code */ ECMA_GET_NON_NULL_POINTER_FROM_POINTER_TAG (ecma_object_t, ext_object_p->u.bound_function.target_function); continue; } -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION: { return ((ecma_extended_object_t *) object_p)->u.constructor_function.script_value; } -#endif /* JERRY_ESNEXT */ default: { return JMEM_CP_NULL; @@ -1702,8 +1690,6 @@ ecma_compiled_code_resolve_arguments_start (const ecma_compiled_code_t *bytecode return ((ecma_value_t *) byte_p) - ((cbc_uint16_arguments_t *) bytecode_header_p)->argument_end; } /* ecma_compiled_code_resolve_arguments_start */ -#if JERRY_ESNEXT - /** * Resolve the position of the function name of the compiled code * @@ -1738,8 +1724,6 @@ ecma_compiled_code_get_tagged_template_collection (const ecma_compiled_code_t *b return ECMA_GET_INTERNAL_VALUE_POINTER (ecma_collection_t, base_p[-1]); } /* ecma_compiled_code_get_tagged_template_collection */ -#endif /* JERRY_ESNEXT */ - #if JERRY_LINE_INFO /** @@ -1755,7 +1739,6 @@ ecma_compiled_code_get_line_info (const ecma_compiled_code_t *bytecode_header_p) ecma_value_t *base_p = ecma_compiled_code_resolve_arguments_start (bytecode_header_p); -#if JERRY_ESNEXT if (CBC_FUNCTION_GET_TYPE (bytecode_header_p->status_flags) != CBC_FUNCTION_CONSTRUCTOR) { base_p--; @@ -1765,7 +1748,6 @@ ecma_compiled_code_get_line_info (const ecma_compiled_code_t *bytecode_header_p) { base_p--; } -#endif /* JERRY_ESNEXT */ return ECMA_GET_INTERNAL_VALUE_POINTER (uint8_t, base_p[-1]); } /* ecma_compiled_code_get_line_info */ diff --git a/jerry-core/ecma/base/ecma-helpers.h b/jerry-core/ecma/base/ecma-helpers.h index 9a87c58e9..0e98ea243 100644 --- a/jerry-core/ecma/base/ecma-helpers.h +++ b/jerry-core/ecma/base/ecma-helpers.h @@ -241,9 +241,7 @@ ecma_value_t ecma_make_number_value (ecma_number_t ecma_number); ecma_value_t ecma_make_int32_value (int32_t int32_number); ecma_value_t ecma_make_uint32_value (uint32_t uint32_number); ecma_value_t JERRY_ATTR_PURE ecma_make_string_value (const ecma_string_t *ecma_string_p); -#if JERRY_ESNEXT ecma_value_t JERRY_ATTR_PURE ecma_make_symbol_value (const ecma_string_t *ecma_symbol_p); -#endif /* JERRY_ESNEXT */ ecma_value_t JERRY_ATTR_PURE ecma_make_prop_name_value (const ecma_string_t *ecma_prop_name_p); ecma_value_t JERRY_ATTR_PURE ecma_make_magic_string_value (lit_magic_string_id_t id); ecma_value_t JERRY_ATTR_PURE ecma_make_object_value (const ecma_object_t *object_p); @@ -254,9 +252,7 @@ ecma_number_t JERRY_ATTR_PURE ecma_get_float_from_value (ecma_value_t value); ecma_number_t *ecma_get_pointer_from_float_value (ecma_value_t value); ecma_number_t JERRY_ATTR_PURE ecma_get_number_from_value (ecma_value_t value); ecma_string_t JERRY_ATTR_PURE *ecma_get_string_from_value (ecma_value_t value); -#if JERRY_ESNEXT ecma_string_t JERRY_ATTR_PURE *ecma_get_symbol_from_value (ecma_value_t value); -#endif /* JERRY_ESNEXT */ ecma_string_t JERRY_ATTR_PURE *ecma_get_prop_name_from_value (ecma_value_t value); ecma_object_t JERRY_ATTR_PURE *ecma_get_object_from_value (ecma_value_t value); ecma_extended_primitive_t JERRY_ATTR_PURE *ecma_get_extended_primitive_from_value (ecma_value_t value); @@ -277,11 +273,9 @@ void ecma_free_number (ecma_value_t value); lit_magic_string_id_t ecma_get_typeof_lit_id (ecma_value_t value); /* ecma-helpers-string.c */ -#if JERRY_ESNEXT ecma_string_t *ecma_new_symbol_from_descriptor_string (ecma_value_t string_desc); bool ecma_prop_name_is_symbol (ecma_string_t *string_p); ecma_length_t ecma_op_advance_string_index (ecma_string_t *str_p, ecma_length_t index_num, bool is_unicode); -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER ecma_string_t *ecma_new_map_key_string (ecma_value_t value); bool ecma_prop_name_is_map_key (ecma_string_t *string_p); @@ -293,9 +287,7 @@ ecma_string_t *ecma_new_ecma_string_from_utf8_converted_to_cesu8 (const lit_utf8 ecma_string_t * ecma_new_ecma_external_string_from_cesu8 (const lit_utf8_byte_t *string_p, lit_utf8_size_t string_size, void *user_p); ecma_string_t *ecma_new_ecma_string_from_code_unit (ecma_char_t code_unit); -#if JERRY_ESNEXT ecma_string_t *ecma_new_ecma_string_from_code_units (ecma_char_t first_code_unit, ecma_char_t second_code_unit); -#endif /* JERRY_ESNEXT */ ecma_string_t *ecma_new_ecma_string_from_length (ecma_length_t index); ecma_string_t *ecma_new_ecma_string_from_uint32 (uint32_t uint32_number); ecma_string_t *ecma_new_non_direct_string_from_uint32 (uint32_t uint32_number); @@ -330,9 +322,6 @@ const lit_utf8_byte_t *ecma_string_get_chars (const ecma_string_t *string_p, bool ecma_compare_ecma_string_to_magic_id (const ecma_string_t *string_p, lit_magic_string_id_t id); bool ecma_string_is_empty (const ecma_string_t *string_p); bool ecma_string_is_length (const ecma_string_t *string_p); -#if JERRY_ESNEXT -bool ecma_compare_ecma_string_to_global_symbol (ecma_string_t *string_p, lit_magic_string_id_t property_id); -#endif /* JERRY_ESNEXT */ jmem_cpointer_t ecma_string_to_property_name (ecma_string_t *prop_name_p, ecma_property_t *name_type_p); ecma_string_t *ecma_string_from_property_name (ecma_property_t property, jmem_cpointer_t prop_name_cp); @@ -359,10 +348,8 @@ const lit_utf8_byte_t *ecma_string_trim_front (const lit_utf8_byte_t *start_p, c const lit_utf8_byte_t *ecma_string_trim_back (const lit_utf8_byte_t *start_p, const lit_utf8_byte_t *end_p); void ecma_string_trim_helper (const lit_utf8_byte_t **utf8_str_p, lit_utf8_size_t *utf8_str_size); ecma_string_t *ecma_string_trim (const ecma_string_t *string_p); -#if JERRY_ESNEXT ecma_value_t ecma_string_pad (ecma_value_t original_string_p, ecma_value_t max_length, ecma_value_t fill_string, bool pad_on_start); -#endif /* JERRY_ESNEXT */ ecma_stringbuilder_t ecma_stringbuilder_create (void); ecma_stringbuilder_t ecma_stringbuilder_create_from (ecma_string_t *string_p); @@ -409,9 +396,7 @@ void ecma_collection_destroy (ecma_collection_t *collection_p); void ecma_collection_free (ecma_collection_t *collection_p); void ecma_collection_free_if_not_object (ecma_collection_t *collection_p); void ecma_collection_free_objects (ecma_collection_t *collection_p); -#if JERRY_ESNEXT void ecma_collection_free_template_literal (ecma_collection_t *collection_p); -#endif /* JERRY_ESNEXT */ bool ecma_collection_check_duplicated_entries (ecma_collection_t *collection_p); bool ecma_collection_has_string_value (ecma_collection_t *collection_p, ecma_string_t *string_p); @@ -426,9 +411,7 @@ void ecma_compact_collection_destroy (ecma_value_t *compact_collection_p); ecma_object_t *ecma_create_object (ecma_object_t *prototype_object_p, size_t ext_object_size, ecma_object_type_t type); ecma_object_t *ecma_create_decl_lex_env (ecma_object_t *outer_lexical_environment_p); ecma_object_t *ecma_create_object_lex_env (ecma_object_t *outer_lexical_environment_p, ecma_object_t *binding_obj_p); -#if JERRY_ESNEXT ecma_object_t *ecma_create_lex_env_class (ecma_object_t *outer_lexical_environment_p, size_t lexical_env_size); -#endif /* JERRY_ESNEXT */ bool JERRY_ATTR_PURE ecma_is_lexical_environment (const ecma_object_t *object_p); void ecma_op_ordinary_object_set_extensible (ecma_object_t *object_p); ecma_object_type_t JERRY_ATTR_PURE ecma_get_object_type (const ecma_object_t *object_p); @@ -501,10 +484,8 @@ void ecma_bytecode_ref (ecma_compiled_code_t *bytecode_p); void ecma_bytecode_deref (ecma_compiled_code_t *bytecode_p); ecma_value_t ecma_script_get_from_value (ecma_value_t value); ecma_value_t *ecma_compiled_code_resolve_arguments_start (const ecma_compiled_code_t *bytecode_header_p); -#if JERRY_ESNEXT ecma_value_t *ecma_compiled_code_resolve_function_name (const ecma_compiled_code_t *bytecode_header_p); ecma_collection_t *ecma_compiled_code_get_tagged_template_collection (const ecma_compiled_code_t *bytecode_header_p); -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO uint8_t *ecma_compiled_code_get_line_info (const ecma_compiled_code_t *bytecode_header_p); #endif /* JERRY_LINE_INFO */ diff --git a/jerry-core/ecma/base/ecma-init-finalize.c b/jerry-core/ecma/base/ecma-init-finalize.c index 63801b3a4..60a3b2e0b 100644 --- a/jerry-core/ecma/base/ecma-init-finalize.c +++ b/jerry-core/ecma/base/ecma-init-finalize.c @@ -58,13 +58,9 @@ ecma_init (void) JERRY_CONTEXT (stack_base) = (uintptr_t) &sp; #endif /* (JERRY_STACK_LIMIT != 0) */ -#if JERRY_ESNEXT ecma_job_queue_init (); -#endif /* JERRY_ESNEXT */ -#if JERRY_ESNEXT JERRY_CONTEXT (current_new_target_p) = NULL; -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY JERRY_CONTEXT (arraybuffer_compact_allocation_limit) = 256; @@ -77,9 +73,7 @@ ecma_init (void) void ecma_finalize (void) { -#if JERRY_ESNEXT JERRY_ASSERT (JERRY_CONTEXT (current_new_target_p) == NULL); -#endif /* JERRY_ESNEXT */ ecma_finalize_global_environment (); uint8_t runs = 0; @@ -93,7 +87,6 @@ ecma_finalize (void) } } while (JERRY_CONTEXT (ecma_gc_new_objects) != 0); -#if JERRY_ESNEXT jmem_cpointer_t *global_symbols_cp = JERRY_CONTEXT (global_symbols_cp); for (uint32_t i = 0; i < ECMA_BUILTIN_GLOBAL_SYMBOL_COUNT; i++) @@ -103,7 +96,6 @@ ecma_finalize (void) ecma_deref_ecma_string (ECMA_GET_NON_NULL_POINTER (ecma_string_t, global_symbols_cp[i])); } } -#endif /* JERRY_ESNEXT */ ecma_finalize_lit_storage (); } /* ecma_finalize */ diff --git a/jerry-core/ecma/base/ecma-literal-storage.c b/jerry-core/ecma/base/ecma-literal-storage.c index 3b97afbdf..429691abc 100644 --- a/jerry-core/ecma/base/ecma-literal-storage.c +++ b/jerry-core/ecma/base/ecma-literal-storage.c @@ -29,7 +29,6 @@ * @{ */ -#if JERRY_ESNEXT /** * Free symbol list */ @@ -56,7 +55,6 @@ ecma_free_symbol_list (jmem_cpointer_t symbol_list_cp) /**< symbol list */ symbol_list_cp = next_item_cp; } } /* ecma_free_symbol_list */ -#endif /* JERRY_ESNEXT */ /** * Free string list @@ -146,9 +144,7 @@ ecma_free_bigint_list (jmem_cpointer_t bigint_list_cp) /**< bigint list */ void ecma_finalize_lit_storage (void) { -#if JERRY_ESNEXT ecma_free_symbol_list (JERRY_CONTEXT (symbol_list_first_cp)); -#endif /* JERRY_ESNEXT */ ecma_free_string_list (JERRY_CONTEXT (string_list_first_cp)); ecma_free_number_list (JERRY_CONTEXT (number_list_first_cp)); #if JERRY_BUILTIN_BIGINT @@ -729,13 +725,11 @@ ecma_snapshot_resolve_serializable_values (const ecma_compiled_code_t *compiled_ base_p -= argument_end; } -#if JERRY_ESNEXT /* function name */ if (CBC_FUNCTION_GET_TYPE (compiled_code_p->status_flags) != CBC_FUNCTION_CONSTRUCTOR) { base_p--; } -#endif /* JERRY_ESNEXT */ return base_p; } /* ecma_snapshot_resolve_serializable_values */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c index 84956daff..771fca8e3 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.c @@ -25,13 +25,9 @@ #include "jrt.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" #define BUILTIN_INC_HEADER_NAME "ecma-builtin-aggregateerror-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID aggregate_error_prototype #include "ecma-builtin-internal-routines-template.inc.h" - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.inc.h index f03cb638f..b5b3a11ab 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror-prototype.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Object properties: * (property name, object pointer getter) */ @@ -33,6 +31,4 @@ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_AGGREGATE_ERROR_UL, ECMA_P /* ECMA-262 v5, 15.11.7.10 */ STRING_VALUE (LIT_MAGIC_STRING_MESSAGE, LIT_MAGIC_STRING__EMPTY, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c index e1c256181..4313168bf 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.c @@ -29,8 +29,6 @@ #include "jcontext.h" #include "jrt.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -109,5 +107,3 @@ ecma_builtin_aggregate_error_dispatch_construct (const ecma_value_t *arguments_l * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.inc.h index c343b41d2..c7f0f6fbf 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-aggregateerror.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Number properties: * (property name, number value, writable, enumerable, configurable) */ @@ -34,6 +32,4 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_AGGREGATE_ERROR_PROTOT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_AGGREGATE_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c index 308845ff0..c295f7a0e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.c @@ -19,8 +19,6 @@ #include "ecma-iterator-object.h" #include "ecma-typedarray-object.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -224,5 +222,3 @@ ecma_builtin_array_iterator_prototype_dispatch_routine (uint8_t builtin_routine_ * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.inc.h index 1338fb44b..c74d68da0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-iterator-prototype.inc.h @@ -19,14 +19,10 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_ARRAY_ITERATOR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_NEXT, ECMA_ARRAY_ITERATOR_PROTOTYPE_OBJECT_NEXT, 0, 0) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c index 2caad899a..5f67573a0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.c @@ -16,13 +16,9 @@ #include "ecma-builtin-helpers.h" #include "ecma-builtins.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" #define BUILTIN_INC_HEADER_NAME "ecma-builtin-array-prototype-unscopables.inc.h" #define BUILTIN_UNDERSCORED_ID array_prototype_unscopables #include "ecma-builtin-internal-routines-template.inc.h" - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.inc.h index d4d79db8a..2cc4bc503 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype-unscopables.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - SIMPLE_VALUE (LIT_MAGIC_STRING_AT, ECMA_VALUE_TRUE, ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE) SIMPLE_VALUE (LIT_MAGIC_STRING_COPY_WITHIN, ECMA_VALUE_TRUE, ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE) @@ -43,6 +41,4 @@ SIMPLE_VALUE (LIT_MAGIC_STRING_KEYS, ECMA_VALUE_TRUE, ECMA_PROPERTY_CONFIGURABLE SIMPLE_VALUE (LIT_MAGIC_STRING_VALUES, ECMA_VALUE_TRUE, ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c index 7201a0c21..61b56127b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.c @@ -48,10 +48,7 @@ enum { ECMA_ARRAY_PROTOTYPE_ROUTINE_START = 0, -/* Note: these 2 routine ids must be in this order */ -#if !JERRY_ESNEXT - ECMA_ARRAY_PROTOTYPE_TO_STRING, -#endif /* !JERRY_ESNEXT */ + /* Note: these 2 routine ids must be in this order */ ECMA_ARRAY_PROTOTYPE_SORT, ECMA_ARRAY_PROTOTYPE_CONCAT, ECMA_ARRAY_PROTOTYPE_TO_LOCALE_STRING, @@ -188,17 +185,14 @@ ecma_builtin_array_prototype_object_concat (const ecma_value_t args[], /**< argu ecma_object_t *obj_p) /**< array object */ { /* 2. */ -#if JERRY_ESNEXT ecma_object_t *new_array_p = ecma_op_array_species_create (obj_p, 0); if (JERRY_UNLIKELY (new_array_p == NULL)) { return ECMA_VALUE_ERROR; } -#else /* !JERRY_ESNEXT */ - ecma_object_t *new_array_p = ecma_op_new_array_object (0); -#endif /* JERRY_ESNEXT */ + /* 3. */ ecma_length_t new_length = 0; /* 5.b - 5.c for this_arg */ @@ -458,7 +452,6 @@ ecma_builtin_array_prototype_object_push (const ecma_value_t *argument_list_p, / return ecma_make_uint32_value (new_length); } -#if JERRY_ESNEXT /* 5. */ if ((ecma_number_t) (length + arguments_number) > ECMA_NUMBER_MAX_SAFE_INTEGER) { @@ -477,34 +470,15 @@ ecma_builtin_array_prototype_object_push (const ecma_value_t *argument_list_p, / } } - ecma_number_t n = (ecma_number_t) length; -#else /* JERRY_ESNEXT */ - ecma_number_t n = (ecma_number_t) length; - - /* 5. */ - for (ecma_length_t index = 0; index < arguments_number; index++, n++) - { - /* 5.b */ - ecma_string_t *index_str_p = ecma_new_ecma_string_from_number (n); - ecma_value_t put_value = ecma_op_object_put (obj_p, index_str_p, argument_list_p[index], true); - ecma_deref_ecma_string (index_str_p); - - if (ECMA_IS_VALUE_ERROR (put_value)) - { - return put_value; - } - } - -#endif /* JERRY_ESNEXT */ /* 6 - 7. */ - ecma_value_t set_length_value = ecma_builtin_array_prototype_helper_set_length (obj_p, n); + ecma_value_t set_length_value = ecma_builtin_array_prototype_helper_set_length (obj_p, (ecma_number_t) length); if (ECMA_IS_VALUE_ERROR (set_length_value)) { return set_length_value; } - return ecma_make_number_value (n); + return ecma_make_length_value (length); } /* ecma_builtin_array_prototype_object_push */ /** @@ -550,7 +524,6 @@ ecma_builtin_array_prototype_object_reverse (ecma_value_t this_arg, /**< this ar ecma_string_t *lower_str_p = ecma_new_ecma_string_from_length (lower); ecma_string_t *upper_str_p = ecma_new_ecma_string_from_length (upper); -#if JERRY_ESNEXT ecma_value_t lower_value = ECMA_VALUE_EMPTY; ecma_value_t upper_value = ECMA_VALUE_EMPTY; @@ -595,29 +568,6 @@ ecma_builtin_array_prototype_object_reverse (ecma_value_t this_arg, /**< this ar goto clean_up; } } -#else /* !JERRY_ESNEXT */ - ecma_value_t lower_value = ecma_op_object_get (obj_p, lower_str_p); - - if (ECMA_IS_VALUE_ERROR (lower_value)) - { - ecma_deref_ecma_string (lower_str_p); - ecma_deref_ecma_string (upper_str_p); - return ret_value; - } - - ecma_value_t upper_value = ecma_op_object_get (obj_p, upper_str_p); - - if (ECMA_IS_VALUE_ERROR (upper_value)) - { - goto clean_up; - } - - ecma_value_t has_lower = ecma_op_object_has_property (obj_p, lower_str_p); - ecma_value_t has_upper = ecma_op_object_has_property (obj_p, upper_str_p); - - bool lower_exist = ecma_is_value_true (has_lower); - bool upper_exist = ecma_is_value_true (has_upper); -#endif /* JERRY_ESNEXT */ if (lower_exist && upper_exist) { @@ -835,7 +785,7 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ bool use_fast_path = ecma_op_object_is_fast_array (obj_p); ecma_length_t copied_length = (end > start) ? end - start : 0; -#if JERRY_ESNEXT + ecma_object_t *new_array_p = ecma_op_array_species_create (obj_p, copied_length); if (JERRY_UNLIKELY (new_array_p == NULL)) @@ -844,9 +794,6 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ } use_fast_path &= ecma_op_object_is_fast_array (new_array_p); -#else /* !JERRY_ESNEXT */ - ecma_object_t *new_array_p = ecma_op_new_array_object (0); -#endif /* JERRY_ESNEXT */ if (use_fast_path && copied_length > 0) { @@ -872,7 +819,6 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ ecma_extended_object_t *ext_to_obj_p = (ecma_extended_object_t *) new_array_p; -#if JERRY_ESNEXT uint32_t target_length = ext_to_obj_p->u.array.length; ecma_value_t *to_buffer_p; JERRY_ASSERT (copied_length <= UINT32_MAX); @@ -890,9 +836,6 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ ecma_delete_fast_array_properties (new_array_p, (uint32_t) copied_length); to_buffer_p = ECMA_GET_NON_NULL_POINTER (ecma_value_t, new_array_p->u1.property_list_cp); } -#else /* !JERRY_ESNEXT */ - ecma_value_t *to_buffer_p = ecma_fast_array_extend (new_array_p, copied_length); -#endif /* JERRY_ESNEXT */ ecma_value_t *from_buffer_p = ECMA_GET_NON_NULL_POINTER (ecma_value_t, obj_p->u1.property_list_cp); @@ -901,9 +844,7 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ for (uint32_t k = (uint32_t) start; k < (uint32_t) end; k++, n++) { -#if JERRY_ESNEXT ecma_free_value_if_not_object (to_buffer_p[n]); -#endif /* JERRY_ESNEXT */ to_buffer_p[n] = ecma_copy_value_if_not_object (from_buffer_p[k]); } @@ -932,27 +873,21 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ { /* 10.c.ii */ ecma_value_t put_comp; -#if JERRY_ESNEXT - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE | JERRY_PROP_SHOULD_THROW; -#else /* !JERRY_ESNEXT */ - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE; -#endif /* JERRY_ESNEXT */ - put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, n, get_value, prop_flags); + put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, + n, + get_value, + ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE + | JERRY_PROP_SHOULD_THROW); ecma_free_value (get_value); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (put_comp)) { ecma_deref_object (new_array_p); return put_comp; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_true (put_comp)); -#endif /* JERRY_ESNEXT */ } } -#if JERRY_ESNEXT ecma_value_t set_length_value = ecma_builtin_array_prototype_helper_set_length (new_array_p, ((ecma_number_t) n)); if (ECMA_IS_VALUE_ERROR (set_length_value)) @@ -960,7 +895,6 @@ ecma_builtin_array_prototype_object_slice (ecma_value_t arg1, /**< start */ ecma_deref_object (new_array_p); return set_length_value; } -#endif /* JERRY_ESNEXT */ return ecma_make_object_value (new_array_p); } /* ecma_builtin_array_prototype_object_slice */ @@ -1282,7 +1216,6 @@ ecma_builtin_array_prototype_object_splice (const ecma_value_t args[], /**< argu ecma_length_t new_length = len + insert_count - actual_delete_count; -#if JERRY_ESNEXT /* ES11: 8. */ if ((ecma_number_t) new_length > ECMA_NUMBER_MAX_SAFE_INTEGER) { @@ -1296,10 +1229,6 @@ ecma_builtin_array_prototype_object_splice (const ecma_value_t args[], /**< argu { return ECMA_VALUE_ERROR; } -#else /* !JERRY_ESNEXT */ - /* ES5.1: 2. */ - ecma_object_t *new_array_p = ecma_op_new_array_object (actual_delete_count); -#endif /* JERRY_ESNEXT */ /* ES5.1: 8, ES11: 10. */ ecma_length_t k = 0; @@ -1318,28 +1247,21 @@ ecma_builtin_array_prototype_object_splice (const ecma_value_t args[], /**< argu if (ecma_is_value_found (from_present)) { -#if JERRY_ESNEXT - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE | JERRY_PROP_SHOULD_THROW; -#else /* !JERRY_ESNEXT */ - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE; -#endif /* JERRY_ESNEXT */ - - ecma_value_t put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, k, from_present, prop_flags); + ecma_value_t put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, + k, + from_present, + ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE + | JERRY_PROP_SHOULD_THROW); ecma_free_value (from_present); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (put_comp)) { ecma_deref_object (new_array_p); return put_comp; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_true (put_comp)); -#endif /* JERRY_ESNEXT */ } } -#if JERRY_ESNEXT /* ES11: 12. */ ecma_value_t set_length = ecma_builtin_array_prototype_helper_set_length (new_array_p, ((ecma_number_t) actual_delete_count)); @@ -1349,7 +1271,6 @@ ecma_builtin_array_prototype_object_splice (const ecma_value_t args[], /**< argu ecma_deref_object (new_array_p); return set_length; } -#endif /* JERRY_ESNEXT */ /* ES5.1: 12, ES11: 15. */ if (insert_count < actual_delete_count) @@ -1514,20 +1435,13 @@ ecma_builtin_array_prototype_object_unshift (const ecma_value_t args[], /**< arg } } -#if JERRY_ESNEXT - const bool should_iterate = args_number > 0; -#else /* !JERRY_ESNEXT */ - const bool should_iterate = true; -#endif /* JERRY_ESNEXT */ - if (should_iterate) + if (args_number > 0) { -#if JERRY_ESNEXT /* ES11:4.a. */ if ((ecma_number_t) (len + args_number) > ECMA_NUMBER_MAX_SAFE_INTEGER) { return ecma_raise_type_error (ECMA_ERR_UNSHIFT_TOO_HIGH); } -#endif /* JERRY_ESNEXT */ /* ES5.1:5.,6. ES11: 4.b, 4.c */ for (ecma_length_t k = len; k > 0; k--) @@ -1943,16 +1857,12 @@ ecma_builtin_array_prototype_object_map (ecma_value_t arg1, /**< callbackfn */ } /* 6. */ -#if JERRY_ESNEXT ecma_object_t *new_array_p = ecma_op_array_species_create (obj_p, len); if (JERRY_UNLIKELY (new_array_p == NULL)) { return ECMA_VALUE_ERROR; } -#else /* !JERRY_ESNEXT */ - ecma_object_t *new_array_p = ecma_op_new_array_object (len); -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (ecma_is_value_object (arg1)); ecma_object_t *func_object_p = ecma_get_object_from_value (arg1); @@ -1988,24 +1898,20 @@ ecma_builtin_array_prototype_object_map (ecma_value_t arg1, /**< callbackfn */ /* 8.c.iii */ ecma_value_t put_comp; -#if JERRY_ESNEXT - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE | JERRY_PROP_SHOULD_THROW; -#else /* !JERRY_ESNEXT */ - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE; -#endif /* JERRY_ESNEXT */ - put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, index, mapped_value, prop_flags); + put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, + index, + mapped_value, + ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE + | JERRY_PROP_SHOULD_THROW); ecma_free_value (mapped_value); ecma_free_value (current_value); -#if JERRY_ESNEXT + if (ECMA_IS_VALUE_ERROR (put_comp)) { ecma_deref_object (new_array_p); return put_comp; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_true (put_comp)); -#endif /* JERRY_ESNEXT */ } } @@ -2034,7 +1940,6 @@ ecma_builtin_array_prototype_object_filter (ecma_value_t arg1, /**< callbackfn * } /* 6. */ -#if JERRY_ESNEXT ecma_object_t *new_array_p = ecma_op_array_species_create (obj_p, 0); if (JERRY_UNLIKELY (new_array_p == NULL)) @@ -2044,12 +1949,6 @@ ecma_builtin_array_prototype_object_filter (ecma_value_t arg1, /**< callbackfn * /* ES11: 22.1.3.7. 7.c.iii.1 */ const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE | JERRY_PROP_SHOULD_THROW; -#else /* !JERRY_ESNEXT */ - ecma_object_t *new_array_p = ecma_op_new_array_object (0); - - /* ES5.1: 15.4.4.20. 9.c.iii.1 */ - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE; -#endif /* JERRY_ESNEXT */ /* We already checked that arg1 is callable, so it will always be an object. */ JERRY_ASSERT (ecma_is_value_object (arg1)); @@ -2092,7 +1991,7 @@ ecma_builtin_array_prototype_object_filter (ecma_value_t arg1, /**< callbackfn * { ecma_value_t put_comp; put_comp = ecma_builtin_helper_def_prop_by_index (new_array_p, new_array_index, get_value, prop_flags); -#if JERRY_ESNEXT + if (ECMA_IS_VALUE_ERROR (put_comp)) { ecma_free_value (call_value); @@ -2101,9 +2000,7 @@ ecma_builtin_array_prototype_object_filter (ecma_value_t arg1, /**< callbackfn * return put_comp; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_true (put_comp)); -#endif /* JERRY_ESNEXT */ + new_array_index++; } @@ -2235,8 +2132,6 @@ ecma_builtin_array_reduce_from (const ecma_value_t args_p[], /**< routine's argu return accumulator; } /* ecma_builtin_array_reduce_from */ -#if JERRY_ESNEXT - /** * The Array.prototype object's 'fill' routine * @@ -2852,7 +2747,6 @@ ecma_builtin_array_prototype_object_flat_map (ecma_value_t callback, /**< callba /* 6. */ return ecma_make_object_value (new_array_p); } /* ecma_builtin_array_prototype_object_flat_map */ -#endif /* JERRY_ESNEXT */ /** * Dispatcher of the built-in's routines @@ -2880,12 +2774,6 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { ecma_value_t ret_value = ECMA_VALUE_EMPTY; -#if !JERRY_ESNEXT - if (builtin_routine_id == ECMA_ARRAY_PROTOTYPE_TO_STRING) - { - ret_value = ecma_array_object_to_string (obj_this); - } -#endif /* !JERRY_ESNEXT */ if (builtin_routine_id == ECMA_ARRAY_PROTOTYPE_SORT) { ret_value = ecma_builtin_array_prototype_object_sort (this_arg, arguments_list_p[0], obj_p); @@ -2899,7 +2787,6 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< return ret_value; } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (builtin_routine_id >= ECMA_ARRAY_PROTOTYPE_ENTRIES && builtin_routine_id <= ECMA_ARRAY_PROTOTYPE_KEYS)) { @@ -2918,7 +2805,6 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< ecma_deref_object (obj_p); return ret_value; } -#endif /* JERRY_ESNEXT */ ecma_length_t length; ecma_value_t len_value = ecma_op_object_get_length (obj_p, &length); @@ -3019,7 +2905,6 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< length); break; } -#if JERRY_ESNEXT case ECMA_ARRAY_PROTOTYPE_COPY_WITHIN: { ret_value = ecma_builtin_array_prototype_object_copy_within (arguments_list_p, arguments_number, obj_p, length); @@ -3060,7 +2945,6 @@ ecma_builtin_array_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< ecma_builtin_array_prototype_object_flat_map (arguments_list_p[0], arguments_list_p[1], obj_p, length); break; } -#endif /* JERRY_ESNEXT */ default: { JERRY_ASSERT (builtin_routine_id == ECMA_ARRAY_PROTOTYPE_FILTER); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.inc.h index 4ca296afd..19110f78e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array-prototype.inc.h @@ -27,12 +27,10 @@ /* ECMA-262 v5, 15.4.4.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_ARRAY, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#if JERRY_ESNEXT /* ECMA-262 v6, 22.1.3.31 */ OBJECT_VALUE (LIT_GLOBAL_SYMBOL_UNSCOPABLES, ECMA_BUILTIN_ID_ARRAY_PROTOTYPE_UNSCOPABLES, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Number properties: * (property name, object pointer getter) */ @@ -43,9 +41,6 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, ECMA_PROPERTY_FLAG_WRITABLE) /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_TO_LOCALE_STRING_UL, ECMA_ARRAY_PROTOTYPE_TO_LOCALE_STRING, 0, 0) -#if !JERRY_ESNEXT -ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ECMA_ARRAY_PROTOTYPE_TO_STRING, 0, 0) -#endif /* !JERRY_ESNEXT */ ROUTINE (LIT_MAGIC_STRING_CONCAT, ECMA_ARRAY_PROTOTYPE_CONCAT, NON_FIXED, 1) ROUTINE (LIT_MAGIC_STRING_JOIN, ECMA_ARRAY_PROTOTYPE_JOIN, 1, 1) ROUTINE (LIT_MAGIC_STRING_POP, ECMA_ARRAY_PROTOTYPE_POP, 0, 0) @@ -68,7 +63,6 @@ ROUTINE (LIT_MAGIC_STRING_FILTER, ECMA_ARRAY_PROTOTYPE_FILTER, 2, 1) /* Note these 2 routines must be in this order */ ROUTINE (LIT_MAGIC_STRING_REDUCE, ECMA_ARRAY_PROTOTYPE_REDUCE, 2, 1) ROUTINE (LIT_MAGIC_STRING_REDUCE_RIGHT_UL, ECMA_ARRAY_PROTOTYPE_REDUCE_RIGHT, 2, 1) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_FIND, ECMA_ARRAY_PROTOTYPE_FIND, 2, 1) ROUTINE (LIT_MAGIC_STRING_FIND_INDEX, ECMA_ARRAY_PROTOTYPE_FIND_INDEX, 2, 1) ROUTINE (LIT_MAGIC_STRING_FILL, ECMA_ARRAY_PROTOTYPE_FILL, 3, 1) @@ -85,7 +79,6 @@ INTRINSIC_PROPERTY (LIT_MAGIC_STRING_VALUES, INTRINSIC_PROPERTY (LIT_GLOBAL_SYMBOL_ITERATOR, LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ARRAY */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array.c b/jerry-core/ecma/builtin-objects/ecma-builtin-array.c index bfd782e87..2bf7c7b0b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array.c @@ -46,11 +46,9 @@ enum { ECMA_ARRAY_ROUTINE_START = 0, ECMA_ARRAY_ROUTINE_IS_ARRAY, -#if JERRY_ESNEXT ECMA_ARRAY_ROUTINE_FROM, ECMA_ARRAY_ROUTINE_OF, ECMA_ARRAY_ROUTINE_SPECIES_GET -#endif /* JERRY_ESNEXT */ }; #define BUILTIN_INC_HEADER_NAME "ecma-builtin-array.inc.h" @@ -67,7 +65,6 @@ enum * @{ */ -#if JERRY_ESNEXT /** * The Array object's 'from' routine * @@ -458,8 +455,6 @@ ecma_builtin_array_object_of (ecma_value_t this_arg, /**< 'this' argument */ return ecma_make_object_value (obj_p); } /* ecma_builtin_array_object_of */ -#endif /* JERRY_ESNEXT */ - /** * Handle calling [[Call]] of built-in Array object * @@ -500,9 +495,6 @@ ecma_builtin_array_dispatch_construct (const ecma_value_t *arguments_list_p, /** { JERRY_ASSERT (arguments_list_len == 0 || arguments_list_p != NULL); -#if !JERRY_ESNEXT - return ecma_builtin_array_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_ARRAY_PROTOTYPE); @@ -523,7 +515,6 @@ ecma_builtin_array_dispatch_construct (const ecma_value_t *arguments_list_p, /** ECMA_SET_NON_NULL_POINTER (object_p->u2.prototype_cp, proto_p); ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_array_dispatch_construct */ /** @@ -549,7 +540,6 @@ ecma_builtin_array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in w return ecma_is_value_array (arguments_list_p[0]); } -#if JERRY_ESNEXT case ECMA_ARRAY_ROUTINE_FROM: { return ecma_builtin_array_object_from (this_arg, arguments_list_p, arguments_number); @@ -562,7 +552,6 @@ ecma_builtin_array_dispatch_routine (uint8_t builtin_routine_id, /**< built-in w { return ecma_copy_value (this_arg); } -#endif /* JERRY_ESNEXT */ default: { JERRY_UNREACHABLE (); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h index 19f8b731e..bf43da90a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-array.inc.h @@ -31,21 +31,16 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_ARRAY_PROTOTYPE, ECMA_ * (property name, object pointer getter) */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_ARRAY_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_IS_ARRAY_UL, ECMA_ARRAY_ROUTINE_IS_ARRAY, 1, 1) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_FROM, ECMA_ARRAY_ROUTINE_FROM, NON_FIXED, 1) ROUTINE (LIT_MAGIC_STRING_OF, ECMA_ARRAY_ROUTINE_OF, NON_FIXED, 0) /* ECMA-262 v6, 22.1.2.5 */ ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_ARRAY_ROUTINE_SPECIES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* !(JERRY_BUILTIN_ARRAY) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.c index 034df5040..43308c86a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.c @@ -33,8 +33,6 @@ #include "opcodes.h" #include "vm-defines.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -64,7 +62,7 @@ enum * \addtogroup ecmabuiltins * @{ * - * \addtogroup generator ECMA %AsyncFromSyncIteratorPrototype% object built-in + * \addtogroup asyncfromsynciteratorprototype ECMA %AsyncFromSyncIteratorPrototype% object built-in * @{ */ @@ -355,5 +353,3 @@ ecma_builtin_async_from_sync_iterator_prototype_dispatch_routine (uint8_t builti * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.inc.h index c1413fcb1..7c5e9c39d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-from-sync-iterator-prototype.inc.h @@ -19,14 +19,10 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_NEXT, ECMA_ASYNC_FROM_SYNC_ITERATOR_PROTOTYPE_ROUTINE_NEXT, 1, 1) ROUTINE (LIT_MAGIC_STRING_RETURN, ECMA_ASYNC_FROM_SYNC_ITERATOR_PROTOTYPE_ROUTINE_RETURN, 1, 1) ROUTINE (LIT_MAGIC_STRING_THROW, ECMA_ASYNC_FROM_SYNC_ITERATOR_PROTOTYPE_ROUTINE_THROW, 1, 1) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c index 150bb9532..6be0c1621 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.c @@ -15,8 +15,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -39,5 +37,3 @@ * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.inc.h index 32e3cfae7..e4388d3c0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function-prototype.inc.h @@ -19,14 +19,10 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* ECMA-262 v11, 25.7.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_ASYNC_FUNCTION, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v11, 25.7.3.2 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_ASYNC_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c index 115af43c3..de1a7dbc3 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.c @@ -15,8 +15,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" #include "ecma-function-object.h" @@ -68,5 +66,3 @@ ecma_builtin_async_function_dispatch_construct (const ecma_value_t *arguments_li * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.inc.h index fb96a0028..0fe50ae27 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-function.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* ECMA-262 v11, 25.7.2 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_ASYNC_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -33,6 +31,4 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_ASYNC_FUNCTION_PROTOTY /* ECMA-262 v11, 25.7.3.2 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_ASYNC_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c index ad2fcd67d..34d442f7a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.c @@ -15,8 +15,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" #include "ecma-function-object.h" @@ -31,7 +29,7 @@ * \addtogroup ecmabuiltins * @{ * - * \addtogroup asyncgenerator ECMA AsyncGeneratorFunction object built-in + * \addtogroup asyncgeneratorfunction ECMA AsyncGeneratorFunction object built-in * @{ */ @@ -70,5 +68,3 @@ ecma_builtin_async_generator_function_dispatch_construct (const ecma_value_t *ar * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.inc.h index 40914c493..edc88c715 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-function.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* ECMA-262 v10, 25.3.2 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_ASYNC_GENERATOR_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -30,6 +28,4 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 25.3.2.2 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_ASYNC_GENERATOR, ECMA_PROPERTY_FIXED) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c index fb0d84c85..474bd8774 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.c @@ -26,8 +26,6 @@ #include "opcodes.h" #include "vm-defines.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -57,12 +55,12 @@ enum * \addtogroup ecmabuiltins * @{ * - * \addtogroup asyncgenerator ECMA AsyncGenerator.prototype object built-in + * \addtogroup asyncgeneratorprototype ECMA AsyncGenerator.prototype object built-in * @{ */ /** - * Convert routine type to operation type.. + * Convert routine type to operation type. */ #define ECMA_ASYNC_GENERATOR_ROUTINE_TO_OPERATION(type) \ ((ecma_async_generator_operation_type_t) ((type) -ECMA_ASYNC_GENERATOR_PROTOTYPE_ROUTINE_NEXT)) @@ -150,5 +148,3 @@ ecma_builtin_async_generator_prototype_dispatch_routine (uint8_t builtin_routine * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.inc.h index 481c097d0..dcad1c627 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator-prototype.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Object properties: * (property name, object pointer getter) */ @@ -36,6 +34,4 @@ ROUTINE (LIT_MAGIC_STRING_NEXT, ECMA_ASYNC_GENERATOR_PROTOTYPE_ROUTINE_NEXT, 1, ROUTINE (LIT_MAGIC_STRING_RETURN, ECMA_ASYNC_GENERATOR_PROTOTYPE_ROUTINE_RETURN, 1, 1) ROUTINE (LIT_MAGIC_STRING_THROW, ECMA_ASYNC_GENERATOR_PROTOTYPE_ROUTINE_THROW, 1, 1) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c index 2f5651b11..469374206 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.c @@ -15,8 +15,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -39,5 +37,3 @@ * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.inc.h index 076e42cc9..a856cbbe6 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-generator.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* ECMA-262 v6, 25.3.2.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_ASYNC_GENERATOR_FUNCTION, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -32,6 +30,4 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_ASYNC_GENERATOR_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c index ec65c7657..28579fee1 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.c @@ -17,8 +17,6 @@ #include "ecma-builtins.h" #include "ecma-iterator-object.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -103,5 +101,3 @@ ecma_builtin_async_iterator_prototype_dispatch_routine (uint8_t builtin_routine_ * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.inc.h index 4a0cb720f..53d43d00a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-async-iterator-prototype.inc.h @@ -19,12 +19,8 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_GLOBAL_SYMBOL_ASYNC_ITERATOR, ECMA_BUILTIN_ASYNC_ITERATOR_PROTOTYPE_OBJECT_ASYNC_ITERATOR, 0, 0) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h index 51e0c298a..36f684554 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-boolean.inc.h @@ -31,10 +31,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_BOOLEAN_PROTOTYPE, ECM * (property name, object pointer getter) */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_BOOLEAN_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_BOOLEAN */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c index 082273e82..5ad4f2d81 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.c @@ -92,9 +92,6 @@ enum ECMA_DATE_PROTOTYPE_TO_STRING, /* ECMA-262 v5, 15.9.5.2 */ ECMA_DATE_PROTOTYPE_TO_DATE_STRING, /* ECMA-262 v5, 15.9.5.3 */ -#if !JERRY_ESNEXT - ECMA_DATE_PROTOTYPE_TO_UTC_STRING, /* ECMA-262 v5, 15.9.5.42 */ -#endif /* JERRY_ESNEXT */ ECMA_DATE_PROTOTYPE_TO_TIME_STRING, /* ECMA-262 v5, 15.9.5.4 */ ECMA_DATE_PROTOTYPE_TO_ISO_STRING, /* ECMA-262 v5, 15.9.5.43 */ @@ -102,9 +99,7 @@ enum ECMA_DATE_PROTOTYPE_SET_TIME, /* ECMA-262 v5, 15.9.5.27 */ ECMA_DATE_PROTOTYPE_TO_JSON, /* ECMA-262 v5, 15.9.5.44 */ -#if JERRY_ESNEXT ECMA_DATE_PROTOTYPE_TO_PRIMITIVE, /* ECMA-262 v6 20.3.4.45 */ -#endif /* JERRY_ESNEXT */ }; #define BUILTIN_INC_HEADER_NAME "ecma-builtin-date-prototype.inc.h" @@ -178,7 +173,6 @@ ecma_builtin_date_prototype_to_json (ecma_value_t this_arg) /**< this argument * return ret_value; } /* ecma_builtin_date_prototype_to_json */ -#if JERRY_ESNEXT /** * The Date.prototype object's toPrimitive routine * @@ -216,7 +210,6 @@ ecma_builtin_date_prototype_to_primitive (ecma_value_t this_arg, /**< this argum return ecma_raise_type_error (ECMA_ERR_INVALID_ARGUMENT_TYPE_IN_TOPRIMITIVE); } /* ecma_builtin_date_prototype_to_primitive */ -#endif /* JERRY_ESNEXT */ /** * Dispatch get date functions @@ -400,28 +393,20 @@ ecma_builtin_date_prototype_dispatch_set (uint16_t builtin_routine_id, /**< buil } } -#if JERRY_ESNEXT ecma_date_object_t *date_object_p = (ecma_date_object_t *) object_p; ecma_number_t *date_value_p = &date_object_p->date_value; -#else /* !JERRY_ESNEXT */ - ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) object_p; - ecma_number_t *date_value_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, ext_object_p->u.cls.u3.date); -#endif /* JERRY_ESNEXT */ - ecma_number_t date_value = *date_value_p; if (!BUILTIN_DATE_FUNCTION_IS_UTC (builtin_routine_id)) { ecma_number_t local_tza; -#if JERRY_ESNEXT if (date_object_p->header.u.cls.u1.date_flags & ECMA_DATE_TZA_SET) { local_tza = date_object_p->header.u.cls.u3.tza; JERRY_ASSERT (local_tza == ecma_date_local_time_zone_adjustment (date_value)); } else -#endif /* JERRY_ESNEXT */ { local_tza = ecma_date_local_time_zone_adjustment (date_value); } @@ -472,9 +457,7 @@ ecma_builtin_date_prototype_dispatch_set (uint16_t builtin_routine_id, /**< buil if (ecma_number_is_nan (converted_number[0])) { *date_value_p = converted_number[0]; -#if JERRY_ESNEXT date_object_p->header.u.cls.u1.date_flags &= (uint8_t) ~ECMA_DATE_TZA_SET; -#endif /* JERRY_ESNEXT */ return ecma_make_number_value (converted_number[0]); } @@ -603,9 +586,7 @@ ecma_builtin_date_prototype_dispatch_set (uint16_t builtin_routine_id, /**< buil *date_value_p = full_date; -#if JERRY_ESNEXT date_object_p->header.u.cls.u1.date_flags &= (uint8_t) ~ECMA_DATE_TZA_SET; -#endif /* JERRY_ESNEXT */ return ecma_make_number_value (full_date); } /* ecma_builtin_date_prototype_dispatch_set */ @@ -631,12 +612,10 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b return ecma_builtin_date_prototype_to_json (this_arg); } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (builtin_routine_id == ECMA_DATE_PROTOTYPE_TO_PRIMITIVE)) { return ecma_builtin_date_prototype_to_primitive (this_arg, arguments_list[0]); } -#endif /* JERRY_ESNEXT */ if (!ecma_is_value_object (this_arg) || !ecma_object_class_is (ecma_get_object_from_value (this_arg), ECMA_OBJECT_CLASS_DATE)) @@ -646,14 +625,8 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b ecma_object_t *this_obj_p = ecma_get_object_from_value (this_arg); -#if JERRY_ESNEXT ecma_date_object_t *date_object_p = (ecma_date_object_t *) this_obj_p; ecma_number_t *date_value_p = &date_object_p->date_value; -#else /* JERRY_ESNEXT */ - ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) this_obj_p; - ecma_number_t *date_value_p = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, ext_object_p->u.cls.u3.date); -#endif /* JERRY_ESNEXT */ - ecma_number_t date_value = *date_value_p; if (builtin_routine_id == ECMA_DATE_PROTOTYPE_GET_TIME) @@ -671,9 +644,7 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b } *date_value_p = ecma_date_time_clip (time_num); -#if JERRY_ESNEXT date_object_p->header.u.cls.u1.date_flags &= (uint8_t) ~ECMA_DATE_TZA_SET; -#endif /* JERRY_ESNEXT */ return ecma_make_number_value (*date_value_p); } @@ -685,7 +656,7 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b if (!BUILTIN_DATE_FUNCTION_IS_UTC (builtin_routine_id)) { ecma_number_t local_tza; -#if JERRY_ESNEXT + if (date_object_p->header.u.cls.u1.date_flags & ECMA_DATE_TZA_SET) { local_tza = date_object_p->header.u.cls.u3.tza; @@ -693,14 +664,11 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b } else { -#endif /* JERRY_ESNEXT */ local_tza = ecma_date_local_time_zone_adjustment (date_value); -#if JERRY_ESNEXT JERRY_ASSERT (local_tza <= INT32_MAX && local_tza >= INT32_MIN); date_object_p->header.u.cls.u3.tza = (int32_t) local_tza; date_object_p->header.u.cls.u1.date_flags |= ECMA_DATE_TZA_SET; } -#endif /* JERRY_ESNEXT */ date_value += local_tza; } @@ -736,12 +704,6 @@ ecma_builtin_date_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< b { return ecma_date_value_to_date_string (date_value); } -#if !JERRY_ESNEXT - case ECMA_DATE_PROTOTYPE_TO_UTC_STRING: - { - return ecma_date_value_to_utc_string (date_value); - } -#endif /* JERRY_ESNEXT */ default: { JERRY_ASSERT (builtin_routine_id == ECMA_DATE_PROTOTYPE_TO_TIME_STRING); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.inc.h index ff4f9a20f..a960cc45a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date-prototype.inc.h @@ -65,7 +65,6 @@ ROUTINE (LIT_MAGIC_STRING_SET_FULL_YEAR_UL, ECMA_DATE_PROTOTYPE_SET_FULL_YEAR, N ROUTINE (LIT_MAGIC_STRING_SET_UTC_FULL_YEAR_UL, ECMA_DATE_PROTOTYPE_SET_UTC_FULL_YEAR, NON_FIXED, 3) ROUTINE (LIT_MAGIC_STRING_TO_ISO_STRING_UL, ECMA_DATE_PROTOTYPE_TO_ISO_STRING, 0, 0) ROUTINE (LIT_MAGIC_STRING_TO_JSON_UL, ECMA_DATE_PROTOTYPE_TO_JSON, 1, 1) -#if JERRY_ESNEXT ROUTINE_CONFIGURABLE_ONLY (LIT_GLOBAL_SYMBOL_TO_PRIMITIVE, ECMA_DATE_PROTOTYPE_TO_PRIMITIVE, 1, 1) INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_UTC_STRING_UL, LIT_MAGIC_STRING_TO_UTC_STRING_UL, @@ -74,16 +73,6 @@ INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_UTC_STRING_UL, INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TO_GMT_STRING_UL, LIT_MAGIC_STRING_TO_UTC_STRING_UL, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* JERRY_BUILTIN_ANNEXB */ -#else /* !JERRY_ESNEXT */ -ROUTINE (LIT_MAGIC_STRING_TO_UTC_STRING_UL, ECMA_DATE_PROTOTYPE_TO_UTC_STRING, 0, 0) -#if JERRY_BUILTIN_ANNEXB -ROUTINE (LIT_MAGIC_STRING_TO_GMT_STRING_UL, ECMA_DATE_PROTOTYPE_TO_UTC_STRING, 0, 0) -#endif /* JERRY_BUILTIN_ANNEXB */ -#endif /* !JERRY_ESNEXT */ - -#if JERRY_BUILTIN_ANNEXB - ROUTINE (LIT_MAGIC_STRING_GET_YEAR_UL, ECMA_DATE_PROTOTYPE_GET_YEAR, 0, 0) ROUTINE (LIT_MAGIC_STRING_SET_YEAR_UL, ECMA_DATE_PROTOTYPE_SET_YEAR, 1, 1) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date.c b/jerry-core/ecma/builtin-objects/ecma-builtin-date.c index af90c7a13..201634d93 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date.c @@ -669,13 +669,7 @@ static ecma_value_t ecma_builtin_date_utc (const ecma_value_t args[], /**< arguments list */ uint32_t args_number) /**< number of arguments */ { -#if JERRY_ESNEXT - const uint32_t required_args_number = 1; -#else /* !JERRY_ESNEXT */ - const uint32_t required_args_number = 2; -#endif /* JERRY_ESNEXT */ - - if (args_number < required_args_number) + if (args_number < 1) { return ecma_make_nan_value (); } @@ -712,7 +706,6 @@ ecma_builtin_date_now_helper (void) static ecma_value_t ecma_builtin_date_create (ecma_number_t tv) { -#if JERRY_ESNEXT JERRY_ASSERT (JERRY_CONTEXT (current_new_target_p) != NULL); ecma_object_t *prototype_obj_p = @@ -731,17 +724,6 @@ ecma_builtin_date_create (ecma_number_t tv) date_object_p->header.u.cls.u1.date_flags = ECMA_DATE_TZA_NONE; date_object_p->header.u.cls.u3.tza = 0; date_object_p->date_value = tv; -#else /* !JERRY_ESNEXT */ - ecma_number_t *date_value_p = ecma_alloc_number (); - *date_value_p = tv; - - ecma_object_t *prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_DATE_PROTOTYPE); - ecma_object_t *obj_p = ecma_create_object (prototype_obj_p, sizeof (ecma_extended_object_t), ECMA_OBJECT_TYPE_CLASS); - - ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p; - ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_DATE; - ECMA_SET_INTERNAL_VALUE_POINTER (ext_object_p->u.cls.u3.date, date_value_p); -#endif /* JERRY_ESNEXT */ return ecma_make_object_value (obj_p); } /* ecma_builtin_date_create */ @@ -793,14 +775,7 @@ ecma_builtin_date_dispatch_construct (const ecma_value_t *arguments_list_p, /**< if (ecma_is_value_object (argument) && ecma_object_class_is (ecma_get_object_from_value (argument), ECMA_OBJECT_CLASS_DATE)) { -#if JERRY_ESNEXT - tv = ((ecma_date_object_t *) ecma_get_object_from_value (argument))->date_value; -#else /* !JERRY_ESNEXT */ - ecma_extended_object_t *arg_ext_object_p = (ecma_extended_object_t *) ecma_get_object_from_value (argument); - tv = *ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, arg_ext_object_p->u.cls.u3.date); -#endif /* JERRY_ESNEXT */ - - return ecma_builtin_date_create (tv); + return ecma_builtin_date_create (((ecma_date_object_t *) ecma_get_object_from_value (argument))->date_value); } /* 4.b */ ecma_value_t primitive = ecma_op_to_primitive (argument, ECMA_PREFERRED_TYPE_NO); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h index f390e0dd0..a50ac00fb 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date.inc.h @@ -30,9 +30,7 @@ ROUTINE (LIT_MAGIC_STRING_PARSE, ECMA_DATE_ROUTINE_PARSE, 1, 1) ROUTINE (LIT_MAGIC_STRING_UTC_U, ECMA_DATE_ROUTINE_UTC, NON_FIXED, 7) ROUTINE (LIT_MAGIC_STRING_NOW, ECMA_DATE_ROUTINE_NOW, 0, 0) -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_DATE_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_DATE */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-error.c b/jerry-core/ecma/builtin-objects/ecma-builtin-error.c index 1f8deddaf..846186a19 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-error.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-error.c @@ -65,9 +65,6 @@ ecma_value_t ecma_builtin_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_ERROR_PROTOTYPE); @@ -87,7 +84,6 @@ ecma_builtin_error_dispatch_construct (const ecma_value_t *arguments_list_p, /** ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h index 7098dd952..d8cff1bdf 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-error.inc.h @@ -30,8 +30,6 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.7.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c index 3804420d9..341d179b1 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.c @@ -67,9 +67,6 @@ ecma_value_t ecma_builtin_eval_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_eval_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE); @@ -89,7 +86,6 @@ ecma_builtin_eval_error_dispatch_construct (const ecma_value_t *arguments_list_p ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_eval_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h index 9efa35f69..29c8f9660 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-evalerror.inc.h @@ -32,9 +32,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.11.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_EVAL_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c index 8910eaaa7..e7f0b1f9a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.c @@ -48,9 +48,7 @@ enum ECMA_FUNCTION_PROTOTYPE_CALL, ECMA_FUNCTION_PROTOTYPE_APPLY, ECMA_FUNCTION_PROTOTYPE_BIND, -#if JERRY_ESNEXT ECMA_FUNCTION_PROTOTYPE_SYMBOL_HAS_INSTANCE, -#endif /* JERRY_ESNEXT */ }; #define BUILTIN_INC_HEADER_NAME "ecma-builtin-function-prototype.inc.h" @@ -103,12 +101,10 @@ ecma_builtin_function_prototype_object_to_string (ecma_object_t *func_obj_p) /** if (extended_info & CBC_EXTENDED_CODE_FLAGS_HAS_SOURCE_CODE_RANGE) { -#if JERRY_ESNEXT if (extended_info & CBC_EXTENDED_CODE_FLAGS_HAS_ARGUMENT_LENGTH) { ecma_extended_info_decode_vlq (&extended_info_p); } -#endif /* JERRY_ESNEXT */ uint32_t range_start = ecma_extended_info_decode_vlq (&extended_info_p); uint32_t range_size = ecma_extended_info_decode_vlq (&extended_info_p); @@ -159,7 +155,6 @@ ecma_builtin_function_prototype_object_to_string (ecma_object_t *func_obj_p) /** lit_magic_string_id_t header_id = LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON; -#if JERRY_ESNEXT switch (CBC_FUNCTION_GET_TYPE (bytecode_p->status_flags)) { case CBC_FUNCTION_GENERATOR: @@ -178,7 +173,6 @@ ecma_builtin_function_prototype_object_to_string (ecma_object_t *func_obj_p) /** break; } } -#endif /* JERRY_ESNEXT */ ecma_stringbuilder_t builder = ecma_stringbuilder_create_from (ecma_get_magic_string (header_id)); ecma_value_t function_arguments = CBC_SCRIPT_GET_FUNCTION_ARGUMENTS (script_p, script_p->refs_and_type); @@ -314,9 +308,6 @@ ecma_builtin_function_prototype_object_bind (ecma_object_t *this_arg_obj_p, /**< /* 4. 11. 18. */ ecma_object_t *prototype_obj_p; -#if !JERRY_ESNEXT - prototype_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE); -#else /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY if (ECMA_OBJECT_IS_PROXY (this_arg_obj_p)) { @@ -344,7 +335,6 @@ ecma_builtin_function_prototype_object_bind (ecma_object_t *this_arg_obj_p, /**< #if JERRY_BUILTIN_PROXY } #endif /* JERRY_BUILTIN_PROXY */ -#endif /* !JERRY_ESNEXT */ ecma_object_t *function_p; ecma_bound_function_t *bound_func_p; @@ -390,7 +380,6 @@ ecma_builtin_function_prototype_object_bind (ecma_object_t *this_arg_obj_p, /**< bound_func_p->header.u.bound_function.args_len_or_this = args_len_or_this; } -#if JERRY_ESNEXT if (prototype_obj_p != NULL) { ecma_deref_object (prototype_obj_p); @@ -461,7 +450,6 @@ ecma_builtin_function_prototype_object_bind (ecma_object_t *this_arg_obj_p, /**< NULL); name_prop_value_p->value = bound_function_name; -#endif /* JERRY_ESNEXT */ /* * [[Class]] property is not stored explicitly for objects of ECMA_OBJECT_TYPE_FUNCTION type. @@ -516,12 +504,10 @@ ecma_builtin_function_prototype_dispatch_routine (uint8_t builtin_routine_id, /* { if (!ecma_op_is_callable (this_arg)) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (builtin_routine_id == ECMA_FUNCTION_PROTOTYPE_SYMBOL_HAS_INSTANCE)) { return ECMA_VALUE_FALSE; } -#endif /* JERRY_ESNEXT */ return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_FUNCTION); } @@ -546,12 +532,10 @@ ecma_builtin_function_prototype_dispatch_routine (uint8_t builtin_routine_id, /* { return ecma_builtin_function_prototype_object_bind (func_obj_p, arguments_list_p, arguments_number); } -#if JERRY_ESNEXT case ECMA_FUNCTION_PROTOTYPE_SYMBOL_HAS_INSTANCE: { return ecma_op_object_has_instance (func_obj_p, arguments_list_p[0]); } -#endif /* JERRY_ESNEXT */ default: { JERRY_UNREACHABLE (); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h index 46261d2da..8bab444fb 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function-prototype.inc.h @@ -29,10 +29,7 @@ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_FUNCTION, ECMA_PROPE * (property name, object pointer getter) */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 0, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING__EMPTY, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ @@ -41,7 +38,6 @@ ROUTINE (LIT_MAGIC_STRING_APPLY, ECMA_FUNCTION_PROTOTYPE_APPLY, 2, 2) ROUTINE (LIT_MAGIC_STRING_CALL, ECMA_FUNCTION_PROTOTYPE_CALL, NON_FIXED, 1) ROUTINE (LIT_MAGIC_STRING_BIND, ECMA_FUNCTION_PROTOTYPE_BIND, NON_FIXED, 1) -#if JERRY_ESNEXT /** * ECMA-262 v6.0 19.2.3.6 @@hasInstance * the property attributes are: { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. @@ -55,6 +51,5 @@ ACCESSOR_BUILTIN_FUNCTION (LIT_MAGIC_STRING_CALLER, ECMA_BUILTIN_ID_TYPE_ERROR_THROWER, ECMA_BUILTIN_ID_TYPE_ERROR_THROWER, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h index 388755de3..92e50edaa 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-function.inc.h @@ -29,9 +29,6 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE, EC * (property name, object pointer getter) */ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c index 14907dd17..acb25eecd 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.c @@ -15,8 +15,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" #include "ecma-function-object.h" @@ -31,7 +29,7 @@ * \addtogroup ecmabuiltins * @{ * - * \addtogroup generator ECMA GeneratorFunction object built-in + * \addtogroup generatorfunction ECMA GeneratorFunction object built-in * @{ */ @@ -68,5 +66,3 @@ ecma_builtin_generator_function_dispatch_construct (const ecma_value_t *argument * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h index a6d60bdc5..39416a911 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-function.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* ECMA-262 v6, 25.2.2 */ STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_GENERATOR_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -30,6 +28,4 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 25.2.2.2 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_GENERATOR, ECMA_PROPERTY_FIXED) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c index 703f6e1d1..15afb4d17 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.c @@ -24,8 +24,6 @@ #include "opcodes.h" #include "vm-defines.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -55,12 +53,12 @@ enum * \addtogroup ecmabuiltins * @{ * - * \addtogroup generator ECMA Generator.prototype object built-in + * \addtogroup generatorprototype ECMA Generator.prototype object built-in * @{ */ /** - * Convert routine type to operation type.. + * Convert routine type to operation type. */ #define ECMA_GENERATOR_ROUTINE_TO_OPERATION(type) \ ((ecma_iterator_command_type_t) ((type) -ECMA_GENERATOR_PROTOTYPE_ROUTINE_NEXT)) @@ -252,5 +250,3 @@ ecma_builtin_generator_prototype_dispatch_routine (uint8_t builtin_routine_id, / * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.inc.h index 4028b4e85..07086dbd7 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator-prototype.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Object properties: * (property name, object pointer getter) */ @@ -36,6 +34,4 @@ ROUTINE (LIT_MAGIC_STRING_NEXT, ECMA_GENERATOR_PROTOTYPE_ROUTINE_NEXT, 1, 1) ROUTINE (LIT_MAGIC_STRING_RETURN, ECMA_GENERATOR_PROTOTYPE_ROUTINE_RETURN, 1, 1) ROUTINE (LIT_MAGIC_STRING_THROW, ECMA_GENERATOR_PROTOTYPE_ROUTINE_THROW, 1, 1) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c b/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c index 29045609c..6d822933e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator.c @@ -15,8 +15,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -39,5 +37,3 @@ * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-generator.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-generator.inc.h index bf3fc2f5c..b45bd9371 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-generator.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-generator.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* ECMA-262 v6, 25.3.2.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_GENERATOR_FUNCTION, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -30,6 +28,4 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_GENERATOR_PROTOTYPE, E /* ECMA-262 v6, 25.3.2.3.3 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_GENERATOR_FUNCTION_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c index 6cc44663c..d9ccc8ff6 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-global.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-global.c @@ -100,12 +100,10 @@ ecma_builtin_global_object_eval (ecma_value_t x) /**< routine's first argument * parse_opts |= ECMA_PARSE_STRICT_MODE; } -#if JERRY_ESNEXT if (vm_is_direct_eval_form_call ()) { parse_opts |= ECMA_GET_LOCAL_PARSE_OPTS (); } -#endif /* JERRY_ESNEXT */ /* steps 2 to 8 */ return ecma_op_eval (x, parse_opts); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h index 6048dfd45..e0b02698f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h @@ -173,14 +173,12 @@ OBJECT_VALUE (LIT_MAGIC_STRING_WEAKMAP_UL, ECMA_BUILTIN_ID_WEAKMAP, ECMA_PROPERT OBJECT_VALUE (LIT_MAGIC_STRING_WEAKREF_UL, ECMA_BUILTIN_ID_WEAKREF, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) #endif /* JERRY_BUILTIN_WEAKREF */ -#if JERRY_ESNEXT OBJECT_VALUE (LIT_MAGIC_STRING_AGGREGATE_ERROR_UL, ECMA_BUILTIN_ID_AGGREGATE_ERROR, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) OBJECT_VALUE (LIT_MAGIC_STRING_PROMISE_UL, ECMA_BUILTIN_ID_PROMISE, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) /* ECMA-262 v6, 19.4.1.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_SYMBOL_UL, ECMA_BUILTIN_ID_SYMBOL, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_GLOBAL_THIS /* ECMA-262 v11, 18.1.1 */ @@ -212,14 +210,10 @@ ROUTINE (LIT_MAGIC_STRING_DECODE_URI, ECMA_GLOBAL_DECODE_URI, 1, 1) ROUTINE (LIT_MAGIC_STRING_DECODE_URI_COMPONENT, ECMA_GLOBAL_DECODE_URI_COMPONENT, 1, 1) ROUTINE (LIT_MAGIC_STRING_ENCODE_URI, ECMA_GLOBAL_ENCODE_URI, 1, 1) ROUTINE (LIT_MAGIC_STRING_ENCODE_URI_COMPONENT, ECMA_GLOBAL_ENCODE_URI_COMPONENT, 1, 1) -#if JERRY_ESNEXT + INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_FLOAT, LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_INT, LIT_MAGIC_STRING_PARSE_INT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#else /* !JERRY_ESNEXT */ -ROUTINE (LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_GLOBAL_PARSE_FLOAT, 1, 1) -ROUTINE (LIT_MAGIC_STRING_PARSE_INT, ECMA_GLOBAL_PARSE_INT, 2, 2) -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ANNEXB ROUTINE (LIT_MAGIC_STRING_ESCAPE, ECMA_GLOBAL_ESCAPE, 1, 1) ROUTINE (LIT_MAGIC_STRING_UNESCAPE, ECMA_GLOBAL_UNESCAPE, 1, 1) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.c b/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.c index d727f026f..3a048d22b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.c @@ -13,24 +13,26 @@ * limitations under the License. */ -#include "ecma-globals.h" - -#if JERRY_ESNEXT - #include "ecma-builtin-handlers.h" + +#include "ecma-globals.h" #include "ecma-iterator-object.h" #include "ecma-promise-object.h" static const ecma_builtin_handler_t ecma_native_handlers[] = { +/** @cond doxygen_suppress */ #define ECMA_NATIVE_HANDLER(id, handler, length) handler, #include "ecma-builtin-handlers.inc.h" #undef ECMA_NATIVE_HANDLER + /** @endcond */ }; static const uint8_t ecma_native_handler_lengths[] = { +/** @cond doxygen_suppress */ #define ECMA_NATIVE_HANDLER(id, handler, length) length, #include "ecma-builtin-handlers.inc.h" #undef ECMA_NATIVE_HANDLER + /** @endcond */ }; /** @@ -56,5 +58,3 @@ ecma_builtin_handler_get_length (ecma_native_handler_id_t id) /**< handler id */ JERRY_ASSERT (id != ECMA_NATIVE_HANDLER_START && id < ECMA_NATIVE_HANDLER__COUNT); return ecma_native_handler_lengths[id - 1]; } /* ecma_builtin_handler_get_length */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.h b/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.h index 21e96311e..014347392 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-handlers.h @@ -16,22 +16,21 @@ #ifndef ECMA_BUILTIN_HANDLERS_H #define ECMA_BUILTIN_HANDLERS_H -#include "ecma-globals.h" - -#if JERRY_ESNEXT - #include "ecma-builtins.h" +#include "ecma-globals.h" #include "ecma-helpers.h" #include "ecma-promise-object.h" #include "ecma-proxy-object.h" typedef enum { + /** @cond doxygen_suppress */ ECMA_NATIVE_HANDLER_START = 0, #define ECMA_NATIVE_HANDLER(id, handler, length) id, #include "ecma-builtin-handlers.inc.h" #undef ECMA_NATIVE_HANDLER ECMA_NATIVE_HANDLER__COUNT + /** @endcond */ } ecma_native_handler_id_t; typedef enum @@ -49,6 +48,4 @@ typedef enum ecma_builtin_handler_t ecma_builtin_handler_get (ecma_native_handler_id_t id); uint8_t ecma_builtin_handler_get_length (ecma_native_handler_id_t id); -#endif /* JERRY_ESNEXT */ - #endif /* !ECMA_BUILTIN_HANDLERS_H */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h index 94cf68014..cbd81c698 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-defines.inc.h @@ -25,7 +25,6 @@ #define STRING_VALUE(name, magic_string_id, prop_attributes) #endif /* !STRING_VALUE */ -#if JERRY_ESNEXT #ifndef SYMBOL_VALUE #define SYMBOL_VALUE(symbol, desc_magic_string_id) #endif /* !SYMBOL_VALUE */ @@ -37,7 +36,6 @@ #ifndef ACCESSOR_BUILTIN_FUNCTION_OBJECT #define ACCESSOR_BUILTIN_FUNCTION_OBJECT(name, getter_builtin_id, setter_builtin_id, prop_attributes) #endif /* !ACCESSOR_BUILTIN_FUNCTION_OBJECT */ -#endif /* JERRY_ESNEXT */ #ifndef OBJECT_VALUE #define OBJECT_VALUE(name, obj_builtin_id, prop_attributes) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h index 951c5fb43..3d053c5da 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers-macro-undefs.inc.h @@ -16,11 +16,9 @@ #undef SIMPLE_VALUE #undef NUMBER_VALUE #undef STRING_VALUE -#if JERRY_ESNEXT #undef SYMBOL_VALUE #undef INTRINSIC_PROPERTY #undef ACCESSOR_BUILTIN_FUNCTION_OBJECT -#endif /* JERRY_ESNEXT */ #undef OBJECT_VALUE #undef ROUTINE #undef ROUTINE_CONFIGURABLE_ONLY diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c index 90104af4b..e298fad4a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c @@ -37,7 +37,6 @@ * @{ */ -#if JERRY_ESNEXT /** * Helper function for Object.prototype.toString routine when * the @@toStringTag property is present @@ -100,7 +99,6 @@ ecma_builtin_helper_object_to_string_tag_helper (ecma_value_t tag_value) /**< st return ecma_make_string_value (ret_string_p); } /* ecma_builtin_helper_object_to_string_tag_helper */ -#endif /* JERRY_ESNEXT */ /** * Common implementation of the Object.prototype.toString routine @@ -144,7 +142,6 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg builtin_tag = ecma_object_get_class_name (obj_p); -#if JERRY_ESNEXT ecma_value_t is_array = ecma_is_value_array (obj_this); if (ECMA_IS_VALUE_ERROR (is_array)) @@ -181,8 +178,6 @@ ecma_builtin_helper_object_to_string (const ecma_value_t this_arg) /**< this arg } ecma_free_value (tag); -#endif /* JERRY_ESNEXT */ - ecma_deref_object (obj_p); } @@ -260,7 +255,6 @@ ecma_builtin_helper_array_index_normalize (ecma_value_t arg, /**< index */ ecma_length_t length, /**< array's length */ ecma_length_t *number_p) /**< [out] ecma_length_t */ { -#if JERRY_ESNEXT ecma_number_t to_int; if (ECMA_IS_VALUE_ERROR (ecma_op_to_integer (arg, &to_int))) @@ -272,9 +266,6 @@ ecma_builtin_helper_array_index_normalize (ecma_value_t arg, /**< index */ : (ecma_length_t) JERRY_MIN (to_int, (ecma_number_t) length)); return ECMA_VALUE_EMPTY; -#else /* !JERRY_ESNEXT */ - return ecma_builtin_helper_uint32_index_normalize (arg, length, number_p); -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_helper_array_index_normalize */ /** @@ -336,7 +327,6 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *array_obj_p, /**< array * ecma_value_t value) /**< value to concat */ { /* 5.b */ -#if JERRY_ESNEXT ecma_value_t is_spreadable = ecma_op_is_concat_spreadable (value); if (ECMA_IS_VALUE_ERROR (is_spreadable)) @@ -347,17 +337,11 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *array_obj_p, /**< array * bool spread_object = is_spreadable == ECMA_VALUE_TRUE; /* ES11: 22.1.3.1.5.c.iv.3.b */ const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE | JERRY_PROP_SHOULD_THROW; -#else /* !JERRY_ESNEXT */ - /* ES5.1: 15.4.4.4.5.b.iii.3.b */ - const uint32_t prop_flags = ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE; - bool spread_object = ecma_is_value_true (ecma_is_value_array (value)); -#endif /* JERRY_ESNEXT */ if (spread_object) { ecma_object_t *obj_p = ecma_get_object_from_value (value); -#if JERRY_ESNEXT ecma_length_t arg_len; ecma_value_t error = ecma_op_object_get_length (obj_p, &arg_len); @@ -371,10 +355,7 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *array_obj_p, /**< array * { return ecma_raise_type_error (ECMA_ERR_INVALID_ARRAY_LENGTH); } -#else /* !JERRY_ESNEXT */ - /* 5.b.ii */ - uint32_t arg_len = ecma_array_get_length (obj_p); -#endif /* JERRY_ESNEXT */ + /* 5.b.iii */ for (ecma_length_t array_index = 0; array_index < arg_len; array_index++) { @@ -396,14 +377,11 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *array_obj_p, /**< array * ecma_value_t put_comp = ecma_builtin_helper_def_prop_by_index (array_obj_p, *length_p + array_index, get_value, prop_flags); ecma_free_value (get_value); -#if JERRY_ESNEXT + if (ECMA_IS_VALUE_ERROR (put_comp)) { return put_comp; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_true (put_comp)); -#endif /* JERRY_ESNEXT */ } *length_p += arg_len; @@ -414,14 +392,10 @@ ecma_builtin_helper_array_concat_value (ecma_object_t *array_obj_p, /**< array * /* This will always be a simple value since 'is_throw' is false, so no need to free. */ ecma_value_t put_comp = ecma_builtin_helper_def_prop_by_index (array_obj_p, (*length_p)++, value, prop_flags); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (put_comp)) { return put_comp; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_true (put_comp)); -#endif /* JERRY_ESNEXT */ return ECMA_VALUE_EMPTY; } /* ecma_builtin_helper_array_concat_value */ @@ -578,7 +552,6 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_string_t *original_st /* 5 (indexOf) -- 6 (lastIndexOf) */ const lit_utf8_size_t original_len = ecma_string_get_length (original_str_p); -#if JERRY_ESNEXT /* 4, 6 (startsWith, includes, endsWith) */ if (mode >= ECMA_STRING_STARTS_WITH) { @@ -595,7 +568,6 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_string_t *original_st return ecma_raise_type_error (ECMA_ERR_SEARCH_STRING_CANNOT_BE_OF_TYPE_REGEXP); } } -#endif /* JERRY_ESNEXT */ /* 7, 8 */ ecma_string_t *search_str_p = ecma_op_to_string (arg1); @@ -609,18 +581,15 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_string_t *original_st /* 4 (indexOf, lastIndexOf), 9 (startsWith, includes), 10 (endsWith) */ ecma_number_t pos_num; -#if JERRY_ESNEXT + if (mode > ECMA_STRING_LAST_INDEX_OF) { ret_value = ecma_op_to_integer (arg2, &pos_num); } else { -#endif /* JERRY_ESNEXT */ ret_value = ecma_op_to_number (arg2, &pos_num); -#if JERRY_ESNEXT } -#endif /* JERRY_ESNEXT */ /* 10 (startsWith, includes), 11 (endsWith) */ if (ECMA_IS_VALUE_ERROR (ret_value)) @@ -640,7 +609,6 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_string_t *original_st switch (mode) { -#if JERRY_ESNEXT case ECMA_STRING_STARTS_WITH: { if (start > original_len) @@ -685,8 +653,6 @@ ecma_builtin_helper_string_prototype_object_index_of (ecma_string_t *original_st ret_value = ecma_make_boolean_value (index == (uint32_t) start_ends_with); break; } -#endif /* JERRY_ESNEXT */ - case ECMA_STRING_INDEX_OF: { /* 8 (indexOf) -- 9 (lastIndexOf) */ @@ -932,7 +898,6 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con } case LIT_CHAR_AMPERSAND: { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ctx_p->matched_p == NULL)) { JERRY_ASSERT (ctx_p->capture_count == 0); @@ -944,7 +909,6 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con ecma_stringbuilder_append (&(ctx_p->builder), ecma_get_string_from_value (match_value)); break; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (ctx_p->matched_p != NULL); ecma_stringbuilder_append_raw (&(ctx_p->builder), ctx_p->matched_p, ctx_p->matched_size); @@ -957,7 +921,6 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con } case LIT_CHAR_SINGLE_QUOTE: { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ctx_p->matched_p == NULL)) { JERRY_ASSERT (ctx_p->capture_count == 0); @@ -975,7 +938,6 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con (lit_utf8_size_t) (ctx_p->string_p + ctx_p->string_size - begin_p)); break; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (ctx_p->matched_p != NULL); ecma_stringbuilder_append_raw (&(ctx_p->builder), @@ -990,12 +952,11 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con if (lit_char_is_decimal_digit (c)) { uint32_t capture_count = ctx_p->capture_count; -#if JERRY_ESNEXT + if (capture_count == 0 && ctx_p->u.collection_p != NULL) { capture_count = ctx_p->u.collection_p->item_count; } -#endif /* JERRY_ESNEXT */ uint8_t idx = (uint8_t) (c - LIT_CHAR_0); if (curr_p < replace_end_p && lit_char_is_decimal_digit (*(curr_p))) @@ -1026,7 +987,6 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con break; #endif /* JERRY_BUILTIN_REGEXP */ } -#if JERRY_ESNEXT else if (ctx_p->u.collection_p != NULL) { const ecma_value_t capture_value = ctx_p->u.collection_p->buffer_p[idx]; @@ -1037,7 +997,6 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con break; } -#endif /* JERRY_ESNEXT */ } } @@ -1061,6 +1020,19 @@ ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p) /**< replace con } } /* ecma_builtin_replace_substitute */ +/** + * Helper function to determine if method is the builtin exec method + * + * @return true, if function is the builtin exec method + * false, otherwise + */ +extern inline bool JERRY_ATTR_ALWAYS_INLINE +ecma_builtin_is_regexp_exec (ecma_extended_object_t *obj_p) /**< function object */ +{ + return (ecma_get_object_type (&obj_p->object) == ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION + && obj_p->u.built_in.routine_id == ECMA_REGEXP_PROTOTYPE_ROUTINE_EXEC); +} /* ecma_builtin_is_regexp_exec */ + /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h index 71ae115b3..482cf8fab 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-helpers.h @@ -28,6 +28,37 @@ * @{ */ +/** + * List of built-in routine identifiers. + */ +enum +{ + /** These routines must be in this order */ + ECMA_REGEXP_PROTOTYPE_ROUTINE_START = 0, + ECMA_REGEXP_PROTOTYPE_ROUTINE_EXEC, +#if JERRY_BUILTIN_ANNEXB + ECMA_REGEXP_PROTOTYPE_ROUTINE_COMPILE, +#endif /* JERRY_BUILTIN_ANNEXB */ + + ECMA_REGEXP_PROTOTYPE_ROUTINE_TEST, + ECMA_REGEXP_PROTOTYPE_ROUTINE_TO_STRING, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_SOURCE, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_FLAGS, + + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_GLOBAL, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_IGNORE_CASE, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_MULTILINE, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_STICKY, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_UNICODE, + ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_DOT_ALL, + + ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SEARCH, + ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_MATCH, + ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_REPLACE, + ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SPLIT, + ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_MATCH_ALL, +}; + /** * Mode of string index routine. */ @@ -90,10 +121,7 @@ typedef struct } ecma_replace_context_t; void ecma_builtin_replace_substitute (ecma_replace_context_t *ctx_p); - -#if JERRY_ESNEXT bool ecma_builtin_is_regexp_exec (ecma_extended_object_t *obj_p); -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h index be175c23a..3755f6124 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-internal-routines-template.inc.h @@ -141,7 +141,6 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = { { name, ECMA_BUILTIN_PROPERTY_NUMBER, (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, number_value }, #define STRING_VALUE(name, magic_string_id, prop_attributes) \ { name, ECMA_BUILTIN_PROPERTY_STRING, (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, magic_string_id }, -#if JERRY_ESNEXT #define SYMBOL_VALUE(name, symbol) { name, ECMA_BUILTIN_PROPERTY_SYMBOL, ECMA_PROPERTY_BUILT_IN_FIXED, symbol }, #define INTRINSIC_PROPERTY(name, magic_string_id, prop_attributes) \ { name, ECMA_BUILTIN_PROPERTY_INTRINSIC_PROPERTY, (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, magic_string_id }, @@ -150,7 +149,6 @@ const ecma_builtin_property_descriptor_t PROPERTY_DESCRIPTOR_LIST_NAME[] = { ECMA_BUILTIN_PROPERTY_ACCESSOR_BUILTIN_FUNCTION, \ (prop_attributes) | ECMA_PROPERTY_FLAG_BUILT_IN, \ ECMA_ACCESSOR_READ_WRITE (getter_builtin_id, setter_builtin_id) }, -#endif /* JERRY_ESNEXT */ #include BUILTIN_INC_HEADER_NAME { LIT_MAGIC_STRING__COUNT, ECMA_BUILTIN_PROPERTY_END, 0, 0 } }; diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c b/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c index 0134afa65..66519dcdc 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.c @@ -25,8 +25,6 @@ #include "lit-char-helpers.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -106,7 +104,7 @@ ecma_builtin_intrinsic_array_prototype_values (ecma_value_t this_value) /**< thi * Returned value must be freed with ecma_free_value. */ static ecma_value_t -ecma_builtin_intrinsic_map_prototype_entries (ecma_value_t this_value) +ecma_builtin_intrinsic_map_prototype_entries (ecma_value_t this_value) /**< this value */ { ecma_extended_object_t *map_object_p = ecma_op_container_get_object (this_value, LIT_MAGIC_STRING_MAP_UL); @@ -132,7 +130,7 @@ ecma_builtin_intrinsic_map_prototype_entries (ecma_value_t this_value) * Returned value must be freed with ecma_free_value. */ static ecma_value_t -ecma_builtin_intrinsic_set_prototype_values (ecma_value_t this_value) +ecma_builtin_intrinsic_set_prototype_values (ecma_value_t this_value) /**< this value */ { ecma_extended_object_t *map_object_p = ecma_op_container_get_object (this_value, LIT_MAGIC_STRING_SET_UL); @@ -164,32 +162,11 @@ ecma_builtin_intrinsic_dispatch_routine (uint8_t builtin_routine_id, /**< built- switch (builtin_routine_id) { +#if JERRY_BUILTIN_ARRAY case ECMA_INTRINSIC_ARRAY_PROTOTYPE_VALUES: { return ecma_builtin_intrinsic_array_prototype_values (this_arg); } - case ECMA_INTRINSIC_TYPEDARRAY_PROTOTYPE_VALUES: - { - if (!ecma_is_typedarray (this_arg)) - { - return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_TYPED_ARRAY); - } - - if (ecma_arraybuffer_is_detached (ecma_typedarray_get_arraybuffer (ecma_get_object_from_value (this_arg)))) - { - return ecma_raise_type_error (ECMA_ERR_ARRAYBUFFER_IS_DETACHED); - } - - return ecma_typedarray_iterators_helper (this_arg, ECMA_ITERATOR_VALUES); - } - case ECMA_INTRINSIC_SET_PROTOTYPE_VALUES: - { - return ecma_builtin_intrinsic_set_prototype_values (this_arg); - } - case ECMA_INTRINSIC_MAP_PROTOTYPE_ENTRIES: - { - return ecma_builtin_intrinsic_map_prototype_entries (this_arg); - } case ECMA_INTRINSIC_ARRAY_TO_STRING: { ecma_value_t this_obj = ecma_op_to_object (this_arg); @@ -203,6 +180,34 @@ ecma_builtin_intrinsic_dispatch_routine (uint8_t builtin_routine_id, /**< built- return result; } +#endif /* JERRY_BUILTIN_ARRAY */ +#if JERRY_BUILTIN_TYPEDARRAY + case ECMA_INTRINSIC_TYPEDARRAY_PROTOTYPE_VALUES: + { + if (!ecma_is_typedarray (this_arg)) + { + return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_TYPED_ARRAY); + } + + if (ecma_arraybuffer_is_detached (ecma_typedarray_get_arraybuffer (ecma_get_object_from_value (this_arg)))) + { + return ecma_raise_type_error (ECMA_ERR_ARRAYBUFFER_IS_DETACHED); + } + + return ecma_typedarray_iterators_helper (this_arg, ECMA_ITERATOR_VALUES); + } +#endif /* JERRY_BUILTIN_TYPEDARRAY */ +#if JERRY_BUILTIN_CONTAINER + case ECMA_INTRINSIC_SET_PROTOTYPE_VALUES: + { + return ecma_builtin_intrinsic_set_prototype_values (this_arg); + } + case ECMA_INTRINSIC_MAP_PROTOTYPE_ENTRIES: + { + return ecma_builtin_intrinsic_map_prototype_entries (this_arg); + } +#endif /* JERRY_BUILTIN_CONTAINER */ +#if JERRY_BUILTIN_DATE case ECMA_INTRINSIC_DATE_TO_UTC_STRING: { if (!ecma_is_value_object (this_arg) @@ -211,13 +216,7 @@ ecma_builtin_intrinsic_dispatch_routine (uint8_t builtin_routine_id, /**< built- return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_DATE_OBJECT); } -#if JERRY_ESNEXT ecma_number_t *date_value_p = &((ecma_date_object_t *) ecma_get_object_from_value (this_arg))->date_value; -#else /* !JERRY_ESNEXT */ - ecma_extended_object_t *arg_ext_object_p = (ecma_extended_object_t *) ecma_get_object_from_value (argument); - ecma_number_t *date_value_p = - ECMA_GET_INTERNAL_VALUE_POINTER (ecma_number_t, arg_ext_object_p->u.class_prop.u.date); -#endif /* JERRY_ESNEXT */ if (ecma_number_is_nan (*date_value_p)) { @@ -226,6 +225,8 @@ ecma_builtin_intrinsic_dispatch_routine (uint8_t builtin_routine_id, /**< built- return ecma_date_value_to_utc_string (*date_value_p); } +#endif /* JERRY_BUILTIN_DATE */ +#if JERRY_BUILTIN_STRING case ECMA_INTRINSIC_STRING_TRIM_START: case ECMA_INTRINSIC_STRING_TRIM_END: { @@ -265,6 +266,7 @@ ecma_builtin_intrinsic_dispatch_routine (uint8_t builtin_routine_id, /**< built- ecma_deref_ecma_string (to_str_p); return result; } +#endif /* JERRY_BUILTIN_STRING */ default: { JERRY_ASSERT (builtin_routine_id == ECMA_INTRINSIC_PARSE_INT || builtin_routine_id == ECMA_INTRINSIC_PARSE_FLOAT); @@ -301,5 +303,3 @@ ecma_builtin_intrinsic_dispatch_routine (uint8_t builtin_routine_id, /**< built- * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.inc.h index d3d0e5825..54c82c4d7 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-intrinsic.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_INTERNAL_MAGIC_STRING_ARRAY_PROTOTYPE_VALUES, ECMA_INTRINSIC_ARRAY_PROTOTYPE_VALUES, 0, 0) @@ -33,5 +31,5 @@ ROUTINE (LIT_MAGIC_STRING_TO_STRING_UL, ECMA_INTRINSIC_ARRAY_TO_STRING, 0, 0) ROUTINE (LIT_MAGIC_STRING_TO_UTC_STRING_UL, ECMA_INTRINSIC_DATE_TO_UTC_STRING, 0, 0) ROUTINE (LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_INTRINSIC_PARSE_FLOAT, 1, 1) ROUTINE (LIT_MAGIC_STRING_PARSE_INT, ECMA_INTRINSIC_PARSE_INT, 2, 2) -#endif /* JERRY_ESNEXT */ + #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c index 1bcc91663..ca991d66a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.c @@ -17,8 +17,6 @@ #include "ecma-builtins.h" #include "ecma-iterator-object.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -102,5 +100,3 @@ ecma_builtin_iterator_prototype_dispatch_routine (uint8_t builtin_routine_id, /* * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.inc.h index 4719360a6..4054eb401 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-iterator-prototype.inc.h @@ -19,12 +19,8 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_GLOBAL_SYMBOL_ITERATOR, ECMA_BUILTIN_ITERATOR_PROTOTYPE_OBJECT_ITERATOR, 0, 0) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-json.c b/jerry-core/ecma/builtin-objects/ecma-builtin-json.c index 2dfa053a8..11a6871b6 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-json.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-json.c @@ -653,13 +653,11 @@ ecma_builtin_json_internalize_property (ecma_object_t *reviver_p, /**< reviver f /* 3.a */ ecma_value_t is_array = ecma_is_value_array (value); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (is_array)) { ecma_free_value (value); return is_array; } -#endif /* JERRY_ESNEXT */ ecma_object_t *object_p = ecma_get_object_from_value (value); @@ -702,15 +700,12 @@ ecma_builtin_json_internalize_property (ecma_object_t *reviver_p, /**< reviver f { ecma_collection_t *props_p = ecma_op_object_get_enumerable_property_names (object_p, ECMA_ENUMERABLE_PROPERTY_KEYS); -#if JERRY_ESNEXT + if (JERRY_UNLIKELY (props_p == NULL)) { ecma_deref_object (object_p); return ECMA_VALUE_ERROR; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (props_p != NULL); -#endif /* JERRY_ESNEXT */ ecma_value_t *buffer_p = props_p->buffer_p; @@ -773,12 +768,10 @@ ecma_builtin_json_internalize_process_property (ecma_object_t *reviver_p, /**< r /* ES11: 2.b.iii.2.a / 2.c.ii.2.a */ ecma_value_t delete_val = ecma_op_object_delete (object_p, prop_name, false); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (delete_val)) { return delete_val; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (ecma_is_value_boolean (delete_val)); } @@ -789,12 +782,10 @@ ecma_builtin_json_internalize_process_property (ecma_object_t *reviver_p, /**< r ecma_builtin_helper_def_prop (object_p, prop_name, new_element, ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE); ecma_free_value (new_element); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (def_value)) { return def_value; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (ecma_is_value_boolean (def_value)); } @@ -900,7 +891,6 @@ ecma_builtin_json_quote (ecma_stringbuilder_t *builder_p, /**< builder for the r bool should_escape = false; -#if JERRY_ESNEXT if (lit_is_code_point_utf16_high_surrogate (c)) { if (str_p < str_end_p) @@ -922,7 +912,6 @@ ecma_builtin_json_quote (ecma_stringbuilder_t *builder_p, /**< builder for the r { should_escape = true; } -#endif /* JERRY_ESNEXT */ if (c == LIT_CHAR_BACKSLASH || c == LIT_CHAR_DOUBLE_QUOTE) { @@ -1571,12 +1560,10 @@ ecma_builtin_json_stringify (ecma_value_t arg1, /**< value */ { ecma_value_t is_array = ecma_is_value_array (arg2); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (is_array)) { return is_array; } -#endif /* JERRY_ESNEXT */ if (ecma_is_value_true (is_array)) { diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h index 217769992..30d135517 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-json.inc.h @@ -21,10 +21,8 @@ #if JERRY_BUILTIN_JSON -#if JERRY_ESNEXT /* ECMA-262 v6, 24.3.3 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_JSON_U, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-math.c b/jerry-core/ecma/builtin-objects/ecma-builtin-math.c index 0e69365f2..33a9bc23f 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-math.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-math.c @@ -62,7 +62,6 @@ enum ECMA_MATH_OBJECT_SIN, /* ECMA-262 v5, 15.8.2.16 */ ECMA_MATH_OBJECT_SQRT, /* ECMA-262 v5, 15.8.2.17 */ ECMA_MATH_OBJECT_TAN, /* ECMA-262 v5, 15.8.2.18 */ -#if JERRY_ESNEXT ECMA_MATH_OBJECT_ACOSH, /* ECMA-262 v6, 20.2.2.3 */ ECMA_MATH_OBJECT_ASINH, /* ECMA-262 v6, 20.2.2.5 */ ECMA_MATH_OBJECT_ATANH, /* ECMA-262 v6, 20.2.2.7 */ @@ -78,19 +77,14 @@ enum ECMA_MATH_OBJECT_SINH, /* ECMA-262 v6, 20.2.2.31 */ ECMA_MATH_OBJECT_TANH, /* ECMA-262 v6, 20.2.2.34 */ ECMA_MATH_OBJECT_TRUNC, /* ECMA-262 v6, 20.2.2.35 */ -#endif /* JERRY_ESNEXT */ ECMA_MATH_OBJECT_ATAN2, -/* ECMA-262 v5, 15.8.2.5 */ /* first routine with 2 arguments */ -#if JERRY_ESNEXT + /* ECMA-262 v5, 15.8.2.5 */ /* first routine with 2 arguments */ ECMA_MATH_OBJECT_IMUL, /* ECMA-262 v6, 20.2.2.19 */ -#endif /* JERRY_ESNEXT */ ECMA_MATH_OBJECT_POW, /* ECMA-262 v5, 15.8.2.13 */ /* last routine with 1 or 2 arguments*/ ECMA_MATH_OBJECT_MAX, /* ECMA-262 v5, 15.8.2.11 */ ECMA_MATH_OBJECT_MIN, /* ECMA-262 v5, 15.8.2.12 */ -#if JERRY_ESNEXT ECMA_MATH_OBJECT_HYPOT, /* ECMA-262 v6, 20.2.2.18 */ -#endif /* JERRY_ESNEXT */ ECMA_MATH_OBJECT_RANDOM, /* ECMA-262 v5, 15.8.2.14 */ }; @@ -164,7 +158,6 @@ ecma_builtin_math_object_max_min (bool is_max, /**< 'max' or 'min' operation */ return ecma_make_number_value (result_num); } /* ecma_builtin_math_object_max_min */ -#if JERRY_ESNEXT /** * The Math object's 'hypot' routine * @@ -270,8 +263,6 @@ ecma_builtin_math_object_sign (ecma_number_t arg) return (ecma_number_t) 1.0; } /* ecma_builtin_math_object_sign */ -#endif /* JERRY_ESNEXT */ - /** * The Math object's 'random' routine. * @@ -384,7 +375,6 @@ ecma_builtin_math_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wi x = DOUBLE_TO_ECMA_NUMBER_T (log (x)); break; } -#if JERRY_ESNEXT case ECMA_MATH_OBJECT_TRUNC: { x = ecma_builtin_math_object_trunc (x); @@ -395,7 +385,6 @@ ecma_builtin_math_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wi x = ecma_builtin_math_object_sign (x); break; } -#endif /* JERRY_ESNEXT */ case ECMA_MATH_OBJECT_ROUND: { if (ecma_number_is_nan (x) || ecma_number_is_zero (x) || ecma_number_is_infinity (x)) @@ -456,7 +445,6 @@ ecma_builtin_math_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wi x = ecma_number_pow (x, y); break; } -#if JERRY_ESNEXT case ECMA_MATH_OBJECT_ACOSH: { x = DOUBLE_TO_ECMA_NUMBER_T (acosh (x)); @@ -543,7 +531,6 @@ ecma_builtin_math_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wi x = (int32_t) (ecma_number_to_uint32 (x) * ecma_number_to_uint32 (y)); break; } -#endif /* JERRY_ESNEXT */ } return ecma_make_number_value (x); } /* if (builtin_routine_id <= ECMA_MATH_OBJECT_POW) */ @@ -555,12 +542,10 @@ ecma_builtin_math_dispatch_routine (uint8_t builtin_routine_id, /**< built-in wi arguments_number); } -#if JERRY_ESNEXT if (builtin_routine_id == ECMA_MATH_OBJECT_HYPOT) { return ecma_builtin_math_object_hypot (arguments_list, arguments_number); } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (builtin_routine_id == ECMA_MATH_OBJECT_RANDOM); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h index 16d24d5e8..c30ad25d0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-math.inc.h @@ -48,10 +48,8 @@ NUMBER_VALUE (LIT_MAGIC_STRING_SQRT1_2_U, ECMA_BUILTIN_NUMBER_SQRT_1_2, ECMA_PRO /* ECMA-262 v5, 15.8.1.8 */ NUMBER_VALUE (LIT_MAGIC_STRING_SQRT2_U, ECMA_BUILTIN_NUMBER_SQRT2, ECMA_PROPERTY_FIXED) -#if JERRY_ESNEXT /* ECMA-262 v6, 20.2.1.9 */ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_MATH_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ @@ -73,7 +71,6 @@ ROUTINE (LIT_MAGIC_STRING_ROUND, ECMA_MATH_OBJECT_ROUND, 1, 1) ROUTINE (LIT_MAGIC_STRING_SIN, ECMA_MATH_OBJECT_SIN, 1, 1) ROUTINE (LIT_MAGIC_STRING_SQRT, ECMA_MATH_OBJECT_SQRT, 1, 1) ROUTINE (LIT_MAGIC_STRING_TAN, ECMA_MATH_OBJECT_TAN, 1, 1) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_ACOSH, ECMA_MATH_OBJECT_ACOSH, 1, 1) ROUTINE (LIT_MAGIC_STRING_ASINH, ECMA_MATH_OBJECT_ASINH, 1, 1) ROUTINE (LIT_MAGIC_STRING_ATANH, ECMA_MATH_OBJECT_ATANH, 1, 1) @@ -91,7 +88,6 @@ ROUTINE (LIT_MAGIC_STRING_SIGN, ECMA_MATH_OBJECT_SIGN, 1, 1) ROUTINE (LIT_MAGIC_STRING_SINH, ECMA_MATH_OBJECT_SINH, 1, 1) ROUTINE (LIT_MAGIC_STRING_TANH, ECMA_MATH_OBJECT_TANH, 1, 1) ROUTINE (LIT_MAGIC_STRING_TRUNC, ECMA_MATH_OBJECT_TRUNC, 1, 1) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_MATH */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-number.c b/jerry-core/ecma/builtin-objects/ecma-builtin-number.c index 6d4dfbd7a..89fa1ab9a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-number.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-number.c @@ -34,7 +34,6 @@ #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" -#if JERRY_ESNEXT /** * This object has a custom dispatch function. */ @@ -51,7 +50,6 @@ enum ECMA_NUMBER_OBJECT_ROUTINE_IS_INTEGER, ECMA_NUMBER_OBJECT_ROUTINE_IS_SAFE_INTEGER }; -#endif /* JERRY_ESNEXT */ #define BUILTIN_INC_HEADER_NAME "ecma-builtin-number.inc.h" #define BUILTIN_UNDERSCORED_ID number @@ -155,7 +153,6 @@ ecma_builtin_number_dispatch_construct (const ecma_value_t *arguments_list_p, /* #endif /* JERRY_BUILTIN_BIGINT */ } /* ecma_builtin_number_dispatch_construct */ -#if JERRY_ESNEXT /** * The Number object 'isInteger' and 'isSafeInteger' routine * @@ -240,8 +237,6 @@ ecma_builtin_number_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } } /* ecma_builtin_number_dispatch_routine */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h index c586aa07a..5a30cbf0e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-number.inc.h @@ -41,8 +41,6 @@ NUMBER_VALUE (LIT_MAGIC_STRING_POSITIVE_INFINITY_U, ECMA_BUILTIN_NUMBER_POSITIVE /* ECMA-262 v5, 15.7.3.6 */ NUMBER_VALUE (LIT_MAGIC_STRING_NEGATIVE_INFINITY_U, ECMA_BUILTIN_NUMBER_NEGATIVE_INFINITY, ECMA_PROPERTY_FIXED) -#if JERRY_ESNEXT - /* ECMA-262 v6, 20.1.2.1 */ NUMBER_VALUE (LIT_MAGIC_STRING_EPSILON_U, ECMA_BUILTIN_NUMBER_EPSILON, ECMA_PROPERTY_FIXED) @@ -53,7 +51,6 @@ NUMBER_VALUE (LIT_MAGIC_STRING_MAX_SAFE_INTEGER_U, ECMA_BUILTIN_NUMBER_MAX_SAFE_ NUMBER_VALUE (LIT_MAGIC_STRING_MIN_SAFE_INTEGER_U, ECMA_BUILTIN_NUMBER_MIN_SAFE_INTEGER, ECMA_PROPERTY_FIXED) STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_NUMBER_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Object properties: * (property name, object pointer getter) */ @@ -65,12 +62,11 @@ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_NUMBER_PROTOTYPE, ECMA /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_IS_FINITE, ECMA_NUMBER_OBJECT_ROUTINE_IS_FINITE, 1, 1) ROUTINE (LIT_MAGIC_STRING_IS_NAN, ECMA_NUMBER_OBJECT_ROUTINE_IS_NAN, 1, 1) ROUTINE (LIT_MAGIC_STRING_IS_INTEGER, ECMA_NUMBER_OBJECT_ROUTINE_IS_INTEGER, 1, 1) ROUTINE (LIT_MAGIC_STRING_IS_SAFE_INTEGER, ECMA_NUMBER_OBJECT_ROUTINE_IS_SAFE_INTEGER, 1, 1) INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_FLOAT, LIT_MAGIC_STRING_PARSE_FLOAT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) INTRINSIC_PROPERTY (LIT_MAGIC_STRING_PARSE_INT, LIT_MAGIC_STRING_PARSE_INT, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* JERRY_ESNEXT */ + #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c index e57af2ec3..28abfbb46 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.c @@ -52,12 +52,12 @@ enum ECMA_OBJECT_PROTOTYPE_HAS_OWN_PROPERTY, ECMA_OBJECT_PROTOTYPE_PROPERTY_IS_ENUMERABLE, ECMA_OBJECT_PROTOTYPE_SET_PROTO, -#if JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB +#if JERRY_BUILTIN_ANNEXB ECMA_OBJECT_PROTOTYPE_DEFINE_GETTER, ECMA_OBJECT_PROTOTYPE_DEFINE_SETTER, ECMA_OBJECT_PROTOTYPE_LOOKUP_GETTER, ECMA_OBJECT_PROTOTYPE_LOOKUP_SETTER, -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB */ +#endif /* JERRY_BUILTIN_ANNEXB */ }; #define BUILTIN_INC_HEADER_NAME "ecma-builtin-object-prototype.inc.h" @@ -193,7 +193,7 @@ ecma_builtin_object_prototype_object_property_is_enumerable (ecma_object_t *obj_ return ecma_make_boolean_value (is_enumerable); } /* ecma_builtin_object_prototype_object_property_is_enumerable */ -#if JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB +#if JERRY_BUILTIN_ANNEXB /** * The Object.prototype object's '__defineGetter__' and '__defineSetter__' routine * @@ -369,7 +369,7 @@ ecma_builtin_object_prototype_lookup_getter_setter (ecma_value_t this_arg, /**< return ret_value; } /* ecma_builtin_object_prototype_lookup_getter_setter */ -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB */ +#endif /* JERRY_BUILTIN_ANNEXB */ /** * Dispatcher of the built-in's routines @@ -427,13 +427,11 @@ ecma_builtin_object_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< ecma_value_t ret_value; -#if JERRY_ESNEXT if (builtin_routine_id == ECMA_OBJECT_PROTOTYPE_GET_PROTO) { ret_value = ecma_builtin_object_object_get_prototype_of (obj_p); } else -#endif /* JERRY_ESNEXT */ { ret_value = ecma_builtin_object_prototype_object_is_prototype_of (obj_p, arguments_list_p[0]); } @@ -445,7 +443,6 @@ ecma_builtin_object_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< JERRY_ASSERT (builtin_routine_id >= ECMA_OBJECT_PROTOTYPE_HAS_OWN_PROPERTY); -#if JERRY_ESNEXT if (builtin_routine_id == ECMA_OBJECT_PROTOTYPE_SET_PROTO) { return ecma_builtin_object_object_set_proto (this_arg, arguments_list_p[0]); @@ -474,7 +471,6 @@ ecma_builtin_object_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< false); } #endif /* JERRY_BUILTIN_ANNEXB */ -#endif /* JERRY_ESNEXT*/ ecma_string_t *prop_name_p = ecma_op_to_property_key (arguments_list_p[0]); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.inc.h index 47d2b8b42..b218eda5a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object-prototype.inc.h @@ -39,11 +39,11 @@ ROUTINE (LIT_MAGIC_STRING_HAS_OWN_PROPERTY_UL, ECMA_OBJECT_PROTOTYPE_HAS_OWN_PRO ROUTINE (LIT_MAGIC_STRING_IS_PROTOTYPE_OF_UL, ECMA_OBJECT_PROTOTYPE_IS_PROTOTYPE_OF, 1, 1) ROUTINE (LIT_MAGIC_STRING_PROPERTY_IS_ENUMERABLE_UL, ECMA_OBJECT_PROTOTYPE_PROPERTY_IS_ENUMERABLE, 1, 1) -#if JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB +#if JERRY_BUILTIN_ANNEXB ROUTINE (LIT_MAGIC_STRING_DEFINE_GETTER, ECMA_OBJECT_PROTOTYPE_DEFINE_GETTER, 2, 2) ROUTINE (LIT_MAGIC_STRING_DEFINE_SETTER, ECMA_OBJECT_PROTOTYPE_DEFINE_SETTER, 2, 2) ROUTINE (LIT_MAGIC_STRING_LOOKUP_GETTER, ECMA_OBJECT_PROTOTYPE_LOOKUP_GETTER, 1, 1) ROUTINE (LIT_MAGIC_STRING_LOOKUP_SETTER, ECMA_OBJECT_PROTOTYPE_LOOKUP_SETTER, 1, 1) -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB*/ +#endif /* JERRY_BUILTIN_ANNEXB*/ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c index e355e6871..392ba2d3b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.c @@ -21,20 +21,17 @@ #include "ecma-builtins.h" #include "ecma-conversion.h" #include "ecma-exceptions.h" +#include "ecma-function-object.h" #include "ecma-gc.h" #include "ecma-globals.h" #include "ecma-helpers.h" +#include "ecma-iterator-object.h" #include "ecma-objects-general.h" #include "ecma-objects.h" #include "ecma-proxy-object.h" -#include "jrt.h" -#if JERRY_ESNEXT -#include "ecma-function-object.h" -#include "ecma-iterator-object.h" - #include "jcontext.h" -#endif /* JERRY_ESNEXT */ +#include "jrt.h" #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -126,7 +123,6 @@ ecma_value_t ecma_builtin_object_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if JERRY_ESNEXT if (JERRY_CONTEXT (current_new_target_p) != ecma_builtin_get (ECMA_BUILTIN_ID_OBJECT)) { ecma_object_t *prototype_obj_p = @@ -141,7 +137,7 @@ ecma_builtin_object_dispatch_construct (const ecma_value_t *arguments_list_p, /* return ecma_make_object_value (object_p); } -#endif /* JERRY_ESNEXT */ + return ecma_builtin_object_dispatch_call (arguments_list_p, arguments_list_len); } /* ecma_builtin_object_dispatch_construct */ @@ -176,7 +172,6 @@ ecma_builtin_object_object_get_prototype_of (ecma_object_t *obj_p) /**< routine' return ECMA_VALUE_NULL; } /* ecma_builtin_object_object_get_prototype_of */ -#if JERRY_ESNEXT /** * The Object object's 'setPrototypeOf' routine * @@ -303,7 +298,6 @@ ecma_builtin_object_object_set_proto (ecma_value_t arg1, /**< routine's first ar return ECMA_VALUE_UNDEFINED; } /* ecma_builtin_object_object_set_proto */ -#endif /* JERRY_ESNEXT */ /** * SetIntegrityLevel operation @@ -731,7 +725,6 @@ ecma_builtin_object_object_get_own_property_descriptor (ecma_object_t *obj_p, /* return ECMA_VALUE_UNDEFINED; } /* ecma_builtin_object_object_get_own_property_descriptor */ -#if JERRY_ESNEXT /** * The Object object's 'getOwnPropertyDescriptors' routine * @@ -799,7 +792,6 @@ ecma_builtin_object_object_get_own_property_descriptors (ecma_object_t *obj_p) / return ecma_make_object_value (descriptors_p); } /* ecma_builtin_object_object_get_own_property_descriptors */ -#endif /* JERRY_ESNEXT */ /** * The Object object's 'defineProperties' routine @@ -852,12 +844,10 @@ ecma_builtin_object_object_define_properties (ecma_object_t *obj_p, /**< routine ecma_property_descriptor_t prop_desc; ecma_value_t get_desc = ecma_op_object_get_own_property_descriptor (props_p, prop_name_p, &prop_desc); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (get_desc)) { goto cleanup; } -#endif /* JERRY_ESNEXT */ if (ecma_is_value_true (get_desc)) { @@ -1024,8 +1014,6 @@ ecma_builtin_object_object_define_property (ecma_object_t *obj_p, /**< routine's return ecma_make_object_value (obj_p); } /* ecma_builtin_object_object_define_property */ -#if JERRY_ESNEXT - /** * The Object object's 'assign' routine * @@ -1286,8 +1274,6 @@ cleanup_iterator: return result; } /* ecma_builtin_object_from_entries */ -#endif /* JERRY_ESNEXT */ - /** * GetOwnPropertyKeys abstract method * @@ -1301,7 +1287,6 @@ static ecma_value_t ecma_op_object_get_own_property_keys (ecma_value_t this_arg, /**< this argument */ uint16_t type) /**< routine type */ { -#if JERRY_ESNEXT /* 1. */ ecma_value_t object = ecma_op_to_object (this_arg); @@ -1351,12 +1336,6 @@ ecma_op_object_get_own_property_keys (ecma_value_t this_arg, /**< this argument ecma_collection_free (props_p); return result_array; -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (type); - ecma_object_t *obj_p = ecma_get_object_from_value (this_arg); - ecma_collection_t *props_p = ecma_op_object_own_property_keys (obj_p, JERRY_PROPERTY_FILTER_ALL); - return ecma_op_new_array_object_from_collection (props_p, false); -#endif /* JERRY_ESNEXT */ } /* ecma_op_object_get_own_property_keys */ /** @@ -1384,7 +1363,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in { return ecma_builtin_object_object_create (arg1, arg2); } -#if JERRY_ESNEXT case ECMA_OBJECT_ROUTINE_SET_PROTOTYPE_OF: { return ecma_builtin_object_object_set_prototype_of (arg1, arg2); @@ -1393,7 +1371,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in { return ecma_builtin_object_object_is (arg1, arg2); } -#endif /* JERRY_ESNEXT */ default: { break; @@ -1401,21 +1378,13 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } ecma_object_t *obj_p; -#if !JERRY_ESNEXT - if (!ecma_is_value_object (arg1)) - { - return ecma_raise_type_error (ECMA_ERR_ARGUMENT_IS_NOT_AN_OBJECT); - } -#endif /* !JERRY_ESNEXT */ if (builtin_routine_id <= ECMA_OBJECT_ROUTINE_DEFINE_PROPERTIES) { -#if JERRY_ESNEXT if (!ecma_is_value_object (arg1)) { return ecma_raise_type_error (ECMA_ERR_ARGUMENT_IS_NOT_AN_OBJECT); } -#endif /* JERRY_ESNEXT */ obj_p = ecma_get_object_from_value (arg1); @@ -1439,7 +1408,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } else if (builtin_routine_id <= ECMA_OBJECT_ROUTINE_ENTRIES) { -#if JERRY_ESNEXT ecma_value_t object = ecma_op_to_object (arg1); if (ECMA_IS_VALUE_ERROR (object)) { @@ -1447,9 +1415,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } obj_p = ecma_get_object_from_value (object); -#else /* !JERRY_ESNEXT */ - obj_p = ecma_get_object_from_value (arg1); -#endif /* JERRY_ESNEXT */ ecma_value_t result; switch (builtin_routine_id) @@ -1459,7 +1424,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in result = ecma_builtin_object_object_get_prototype_of (obj_p); break; } -#if JERRY_ESNEXT case ECMA_OBJECT_ROUTINE_ASSIGN: { result = ecma_builtin_object_object_assign (obj_p, arguments_list_p + 1, arguments_number - 1); @@ -1467,7 +1431,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } case ECMA_OBJECT_ROUTINE_ENTRIES: case ECMA_OBJECT_ROUTINE_VALUES: -#endif /* JERRY_ESNEXT */ case ECMA_OBJECT_ROUTINE_KEYS: { JERRY_ASSERT (builtin_routine_id - ECMA_OBJECT_ROUTINE_KEYS < ECMA_ENUMERABLE_PROPERTY__COUNT); @@ -1491,7 +1454,6 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in ecma_deref_ecma_string (prop_name_p); break; } -#if JERRY_ESNEXT case ECMA_OBJECT_ROUTINE_HAS_OWN: { ecma_string_t *prop_name_p = ecma_op_to_property_key (arg2); @@ -1516,16 +1478,13 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in result = ecma_builtin_object_from_entries (arg1); break; } -#endif /* JERRY_ESNEXT */ default: { JERRY_UNREACHABLE (); } } -#if JERRY_ESNEXT ecma_deref_object (obj_p); -#endif /* JERRY_ESNEXT */ return result; } else if (builtin_routine_id <= ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_SYMBOLS) @@ -1534,12 +1493,10 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in } else if (builtin_routine_id <= ECMA_OBJECT_ROUTINE_SEAL) { -#if JERRY_ESNEXT if (!ecma_is_value_object (arg1)) { return ecma_copy_value (arg1); } -#endif /* JERRY_ESNEXT */ obj_p = ecma_get_object_from_value (arg1); switch (builtin_routine_id) @@ -1565,12 +1522,11 @@ ecma_builtin_object_dispatch_routine (uint8_t builtin_routine_id, /**< built-in else { JERRY_ASSERT (builtin_routine_id <= ECMA_OBJECT_ROUTINE_IS_SEALED); -#if JERRY_ESNEXT + if (!ecma_is_value_object (arg1)) { return ecma_make_boolean_value (builtin_routine_id != ECMA_OBJECT_ROUTINE_IS_EXTENSIBLE); } -#endif /* JERRY_ESNEXT */ obj_p = ecma_get_object_from_value (arg1); switch (builtin_routine_id) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h index b046141b3..ee02ad627 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-object.inc.h @@ -29,43 +29,31 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.2.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_OBJECT_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_GET_PROTOTYPE_OF_UL, ECMA_OBJECT_ROUTINE_GET_PROTOTYPE_OF, 1, 1) ROUTINE (LIT_MAGIC_STRING_GET_OWN_PROPERTY_NAMES_UL, ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_NAMES, 1, 1) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_GET_OWN_PROPERTY_SYMBOLS_UL, ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_SYMBOLS, 1, 1) -#endif /* JERRY_ESNEXT */ ROUTINE (LIT_MAGIC_STRING_SEAL, ECMA_OBJECT_ROUTINE_SEAL, 1, 1) ROUTINE (LIT_MAGIC_STRING_FREEZE, ECMA_OBJECT_ROUTINE_FREEZE, 1, 1) ROUTINE (LIT_MAGIC_STRING_PREVENT_EXTENSIONS_UL, ECMA_OBJECT_ROUTINE_PREVENT_EXTENSIONS, 1, 1) ROUTINE (LIT_MAGIC_STRING_IS_SEALED_UL, ECMA_OBJECT_ROUTINE_IS_SEALED, 1, 1) ROUTINE (LIT_MAGIC_STRING_IS_FROZEN_UL, ECMA_OBJECT_ROUTINE_IS_FROZEN, 1, 1) ROUTINE (LIT_MAGIC_STRING_IS_EXTENSIBLE, ECMA_OBJECT_ROUTINE_IS_EXTENSIBLE, 1, 1) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_ENTRIES, ECMA_OBJECT_ROUTINE_ENTRIES, 1, 1) ROUTINE (LIT_MAGIC_STRING_VALUES, ECMA_OBJECT_ROUTINE_VALUES, 1, 1) -#endif /* JERRY_ESNEXT */ ROUTINE (LIT_MAGIC_STRING_KEYS, ECMA_OBJECT_ROUTINE_KEYS, 1, 1) ROUTINE (LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL, ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_DESCRIPTOR, 2, 2) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_HAS_OWN_UL, ECMA_OBJECT_ROUTINE_HAS_OWN, 2, 2) ROUTINE (LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTORS_UL, ECMA_OBJECT_ROUTINE_GET_OWN_PROPERTY_DESCRIPTORS, 1, 1) ROUTINE (LIT_MAGIC_STRING_OBJECT_FROM_ENTRIES, ECMA_OBJECT_ROUTINE_FROM_ENTRIES, 1, 1) -#endif /* JERRY_ESNEXT */ ROUTINE (LIT_MAGIC_STRING_CREATE, ECMA_OBJECT_ROUTINE_CREATE, 2, 2) ROUTINE (LIT_MAGIC_STRING_DEFINE_PROPERTIES_UL, ECMA_OBJECT_ROUTINE_DEFINE_PROPERTIES, 2, 2) ROUTINE (LIT_MAGIC_STRING_DEFINE_PROPERTY_UL, ECMA_OBJECT_ROUTINE_DEFINE_PROPERTY, 3, 3) - -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_SET_PROTOTYPE_OF_UL, ECMA_OBJECT_ROUTINE_SET_PROTOTYPE_OF, 2, 2) ROUTINE (LIT_MAGIC_STRING_ASSIGN, ECMA_OBJECT_ROUTINE_ASSIGN, NON_FIXED, 2) ROUTINE (LIT_MAGIC_STRING_IS, ECMA_OBJECT_ROUTINE_IS, 2, 2) -#endif /* JERRY_ESNEXT */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c index 252512d67..b24f6d5bf 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.c @@ -16,8 +16,6 @@ #include "ecma-globals.h" #include "ecma-promise-object.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -93,5 +91,3 @@ ecma_builtin_promise_prototype_dispatch_routine (uint8_t builtin_routine_id, /** * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h index 2f741624b..76ee6fdae 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise-prototype.inc.h @@ -15,8 +15,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Object properties: * (property name, object pointer getter) */ @@ -29,6 +27,4 @@ ROUTINE (LIT_MAGIC_STRING_THEN, ECMA_PROMISE_PROTOTYPE_ROUTINE_THEN, 2, 2) ROUTINE (LIT_MAGIC_STRING_CATCH, ECMA_PROMISE_PROTOTYPE_ROUTINE_CATCH, 1, 1) ROUTINE (LIT_MAGIC_STRING_FINALLY, ECMA_PROMISE_PROTOTYPE_ROUTINE_FINALLY, 1, 1) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c index 7a53b9c10..02f600c55 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.c @@ -27,8 +27,6 @@ #include "jcontext.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -527,5 +525,3 @@ ecma_builtin_promise_dispatch_routine (uint8_t builtin_routine_id, /**< built-in * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h index 52a63aa4c..6c697539a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-promise.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Number properties: * (property name, number value, writable, enumerable, configurable) */ @@ -45,6 +43,4 @@ ROUTINE (LIT_MAGIC_STRING_ANY, ECMA_PROMISE_ROUTINE_ANY, 1, 1) /* ES2015 25.4.4.6 */ ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ECMA_PROMISE_ROUTINE_SPECIES_GET, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c index 83ae4feb9..c17a2369d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.c @@ -67,9 +67,6 @@ ecma_value_t ecma_builtin_range_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_range_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE); @@ -89,7 +86,6 @@ ecma_builtin_range_error_dispatch_construct (const ecma_value_t *arguments_list_ ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_range_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h index 042c13a38..6891fa5b5 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-rangeerror.inc.h @@ -31,10 +31,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.11.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_RANGE_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c index 5c983555c..2a3f2da5e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.c @@ -67,9 +67,6 @@ ecma_value_t ecma_builtin_reference_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_reference_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE); @@ -89,7 +86,6 @@ ecma_builtin_reference_error_dispatch_construct (const ecma_value_t *arguments_l ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_reference_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h index fa268dbc0..b28ada196 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-referenceerror.inc.h @@ -31,10 +31,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.11.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_REFERENCE_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c index 69fa1e47a..94c0384dd 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.c @@ -41,39 +41,6 @@ */ #define BUILTIN_CUSTOM_DISPATCH -/** - * List of built-in routine identifiers. - */ -enum -{ - /** These routines must be in this order */ - ECMA_REGEXP_PROTOTYPE_ROUTINE_START = 0, - ECMA_REGEXP_PROTOTYPE_ROUTINE_EXEC, -#if JERRY_BUILTIN_ANNEXB - ECMA_REGEXP_PROTOTYPE_ROUTINE_COMPILE, -#endif /* JERRY_BUILTIN_ANNEXB */ - - ECMA_REGEXP_PROTOTYPE_ROUTINE_TEST, - ECMA_REGEXP_PROTOTYPE_ROUTINE_TO_STRING, -#if JERRY_ESNEXT - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_SOURCE, - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_FLAGS, - - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_GLOBAL, - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_IGNORE_CASE, - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_MULTILINE, - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_STICKY, - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_UNICODE, - ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_DOT_ALL, - - ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SEARCH, - ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_MATCH, - ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_REPLACE, - ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SPLIT, - ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_MATCH_ALL, -#endif /* JERRY_ESNEXT */ -}; - #define BUILTIN_INC_HEADER_NAME "ecma-builtin-regexp-prototype.inc.h" #define BUILTIN_UNDERSCORED_ID regexp_prototype #include "ecma-builtin-internal-routines-template.inc.h" @@ -88,7 +55,6 @@ enum * @{ */ -#if JERRY_ESNEXT /** * Helper function to retrieve the flags associated with a RegExp object * @@ -239,7 +205,6 @@ ecma_builtin_regexp_prototype_get_source (ecma_extended_object_t *re_obj_p) /**< return ecma_op_escape_regexp_pattern (ecma_get_string_from_value (bc_p->source)); } /* ecma_builtin_regexp_prototype_get_source */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ANNEXB /** @@ -258,13 +223,6 @@ ecma_builtin_regexp_prototype_compile (ecma_value_t this_arg, /**< this */ ecma_value_t pattern_arg, /**< pattern or RegExp object */ ecma_value_t flags_arg) /**< flags */ { -#if !JERRY_ESNEXT - if (ecma_get_object_from_value (this_arg) == ecma_builtin_get (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE)) - { - return ecma_raise_type_error (ECMA_ERR_ARGUMENT_IS_NOT_AN_REGEXP); - } -#endif /* !JERRY_ESNEXT */ - ecma_object_t *this_obj_p = ecma_get_object_from_value (this_arg); ecma_extended_object_t *re_obj_p = (ecma_extended_object_t *) this_obj_p; re_compiled_code_t *old_bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t, re_obj_p->u.cls.u3.value); @@ -362,7 +320,6 @@ static ecma_value_t ecma_builtin_regexp_prototype_test (ecma_value_t this_arg, /**< this argument */ ecma_value_t arg) /**< routine's argument */ { -#if JERRY_ESNEXT ecma_string_t *arg_str_p = ecma_op_to_string (arg); if (JERRY_UNLIKELY (arg_str_p == NULL)) @@ -378,14 +335,6 @@ ecma_builtin_regexp_prototype_test (ecma_value_t this_arg, /**< this argument */ { return result; } -#else /* !JERRY_ESNEXT */ - ecma_value_t result = ecma_builtin_regexp_prototype_exec (this_arg, arg); - - if (ECMA_IS_VALUE_ERROR (result)) - { - return result; - } -#endif /* JERRY_ESNEXT */ ecma_value_t ret_value = ecma_make_boolean_value (!ecma_is_value_null (result)); ecma_free_value (result); @@ -405,7 +354,6 @@ ecma_builtin_regexp_prototype_test (ecma_value_t this_arg, /**< this argument */ static ecma_value_t ecma_builtin_regexp_prototype_to_string (ecma_object_t *object_p) /**< this object */ { -#if JERRY_ESNEXT ecma_value_t result = ecma_op_object_get_by_magic_id (object_p, LIT_MAGIC_STRING_SOURCE); if (ECMA_IS_VALUE_ERROR (result)) { @@ -446,54 +394,8 @@ ecma_builtin_regexp_prototype_to_string (ecma_object_t *object_p) /**< this obje ecma_deref_ecma_string (flags_p); return ecma_make_string_value (ecma_stringbuilder_finalize (&builder)); -#else /* !JERRY_ESNEXT */ - ecma_extended_object_t *re_obj_p = (ecma_extended_object_t *) object_p; - - re_compiled_code_t *bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t, re_obj_p->u.cls.u3.value); - - ecma_string_t *source_p = ecma_get_string_from_value (bc_p->source); - uint16_t flags = bc_p->header.status_flags; - - ecma_stringbuilder_t result = ecma_stringbuilder_create (); - ecma_stringbuilder_append_byte (&result, LIT_CHAR_SLASH); - ecma_stringbuilder_append (&result, source_p); - ecma_stringbuilder_append_byte (&result, LIT_CHAR_SLASH); - - if (flags & RE_FLAG_GLOBAL) - { - ecma_stringbuilder_append_byte (&result, LIT_CHAR_LOWERCASE_G); - } - - if (flags & RE_FLAG_IGNORE_CASE) - { - ecma_stringbuilder_append_byte (&result, LIT_CHAR_LOWERCASE_I); - } - - if (flags & RE_FLAG_MULTILINE) - { - ecma_stringbuilder_append_byte (&result, LIT_CHAR_LOWERCASE_M); - } - - return ecma_make_string_value (ecma_stringbuilder_finalize (&result)); -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_regexp_prototype_to_string */ -#if JERRY_ESNEXT -/** - * Helper function to determine if method is the builtin exec method - * - * @return true, if function is the builtin exec method - * false, otherwise - */ -extern inline bool JERRY_ATTR_ALWAYS_INLINE -ecma_builtin_is_regexp_exec (ecma_extended_object_t *obj_p) -{ - return (ecma_get_object_type (&obj_p->object) == ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION - && obj_p->u.built_in.routine_id == ECMA_REGEXP_PROTOTYPE_ROUTINE_EXEC); -} /* ecma_builtin_is_regexp_exec */ -#endif /* JERRY_ESNEXT */ - -#if JERRY_ESNEXT /** * The RegExp.prototype object's 'matchAll' routine * @@ -628,7 +530,6 @@ ecma_builtin_regexp_prototype_match_all (ecma_object_t *regexp_obj_p, /**< this return ecma_make_object_value (result_obj); } /* ecma_builtin_regexp_prototype_match_all */ -#endif /* JERRY_ESNEXT */ /** * Dispatcher of the Regexp built-in's routines @@ -645,12 +546,6 @@ ecma_builtin_regexp_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { JERRY_UNUSED (arguments_number); -#if !JERRY_ESNEXT - bool require_regexp = builtin_routine_id <= ECMA_REGEXP_PROTOTYPE_ROUTINE_TO_STRING; -#else /* JERRY_ESNEXT */ - bool require_regexp = builtin_routine_id < ECMA_REGEXP_PROTOTYPE_ROUTINE_TEST; -#endif /* JERRY_ESNEXT */ - ecma_object_t *obj_p = NULL; /* 1. && 2. */ @@ -658,7 +553,8 @@ ecma_builtin_regexp_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { obj_p = ecma_get_object_from_value (this_arg); - if (require_regexp && !ecma_object_class_is (obj_p, ECMA_OBJECT_CLASS_REGEXP)) + if (builtin_routine_id < ECMA_REGEXP_PROTOTYPE_ROUTINE_TEST + && !ecma_object_class_is (obj_p, ECMA_OBJECT_CLASS_REGEXP)) { obj_p = NULL; } @@ -689,7 +585,6 @@ ecma_builtin_regexp_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { return ecma_builtin_regexp_prototype_to_string (obj_p); } -#if JERRY_ESNEXT case ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SEARCH: { return ecma_regexp_search_helper (this_arg, arguments_list_p[0]); @@ -749,7 +644,6 @@ ecma_builtin_regexp_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< ecma_extended_object_t *re_obj_p = (ecma_extended_object_t *) obj_p; return ecma_builtin_regexp_prototype_flags_helper (re_obj_p, builtin_routine_id); } -#endif /* JERRY_ESNEXT */ default: { JERRY_UNREACHABLE (); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.inc.h index 9b60457e8..51486e9fd 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-prototype.inc.h @@ -24,7 +24,6 @@ /* ECMA-262 v5, 15.10.6.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_CONSTRUCTOR, ECMA_BUILTIN_ID_REGEXP, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#if JERRY_ESNEXT ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_FLAGS, ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_FLAGS, ECMA_PROPERTY_FLAG_CONFIGURABLE) ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_SOURCE, ECMA_REGEXP_PROTOTYPE_ROUTINE_GET_SOURCE, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -52,22 +51,6 @@ ROUTINE (LIT_GLOBAL_SYMBOL_SEARCH, ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SEARCH, ROUTINE (LIT_GLOBAL_SYMBOL_SPLIT, ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_SPLIT, 2, 2) ROUTINE (LIT_GLOBAL_SYMBOL_MATCH, ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_MATCH, 1, 1) ROUTINE (LIT_GLOBAL_SYMBOL_MATCH_ALL, ECMA_REGEXP_PROTOTYPE_ROUTINE_SYMBOL_MATCH_ALL, 1, 1) -#else /* !JERRY_ESNEXT */ -/* ECMA-262 v5, 15.10.7.1 */ -STRING_VALUE (LIT_MAGIC_STRING_SOURCE, LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP, ECMA_PROPERTY_FIXED) - -/* ECMA-262 v5, 15.10.7.2 */ -SIMPLE_VALUE (LIT_MAGIC_STRING_GLOBAL, ECMA_VALUE_FALSE, ECMA_PROPERTY_FIXED) - -/* ECMA-262 v5, 15.10.7.3 */ -SIMPLE_VALUE (LIT_MAGIC_STRING_IGNORECASE_UL, ECMA_VALUE_FALSE, ECMA_PROPERTY_FIXED) - -/* ECMA-262 v5, 15.10.7.4 */ -SIMPLE_VALUE (LIT_MAGIC_STRING_MULTILINE, ECMA_VALUE_FALSE, ECMA_PROPERTY_FIXED) - -/* ECMA-262 v5, 15.10.7.5 */ -NUMBER_VALUE (LIT_MAGIC_STRING_LASTINDEX_UL, 0, ECMA_PROPERTY_FLAG_WRITABLE) -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ANNEXB ROUTINE (LIT_MAGIC_STRING_COMPILE, ECMA_REGEXP_PROTOTYPE_ROUTINE_COMPILE, 2, 2) diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c index 83070766f..5a1d554df 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.c @@ -20,8 +20,6 @@ #include "ecma-iterator-object.h" #include "ecma-objects.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -184,5 +182,3 @@ free_variables: * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h index d2eebddb7..612bf6972 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp-string-iterator-prototype.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_REGEXP_STRING_ITERATOR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) @@ -29,6 +27,4 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_NEXT, ecma_builtin_regexp_string_iterator_prototype_object_next, 0, 0) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c index a2dc4353b..0b3cfe58d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.c @@ -49,13 +49,9 @@ ecma_builtin_regexp_dispatch_helper (const ecma_value_t *arguments_list_p, /**< { ecma_value_t pattern_value = ECMA_VALUE_UNDEFINED; ecma_value_t flags_value = ECMA_VALUE_UNDEFINED; -#if JERRY_ESNEXT bool create_regexp_from_bc = false; bool free_arguments = false; ecma_object_t *new_target_p = JERRY_CONTEXT (current_new_target_p); -#else /* !JERRY_ESNEXT */ - ecma_object_t *new_target_p = NULL; -#endif /* JERRY_ESNEXT */ if (arguments_list_len > 0) { @@ -68,7 +64,6 @@ ecma_builtin_regexp_dispatch_helper (const ecma_value_t *arguments_list_p, /**< } } -#if JERRY_ESNEXT ecma_value_t regexp_value = ecma_op_is_regexp (pattern_value); if (ECMA_IS_VALUE_ERROR (regexp_value)) @@ -144,31 +139,18 @@ ecma_builtin_regexp_dispatch_helper (const ecma_value_t *arguments_list_p, /**< free_arguments = true; } -#else /* !JERRY_ESNEXT */ - if (ecma_object_is_regexp_object (pattern_value)) - { - if (ecma_is_value_undefined (flags_value)) - { - return ecma_copy_value (pattern_value); - } - - return ecma_raise_type_error (ECMA_ERR_INVALID_ARGUMENT_IS_PASSED_TO_REGEXP_FUNCTION); - } -#endif /* JERRY_ESNEXT */ ecma_value_t ret_value = ECMA_VALUE_ERROR; ecma_object_t *new_target_obj_p = ecma_op_regexp_alloc (new_target_p); if (JERRY_LIKELY (new_target_obj_p != NULL)) { -#if JERRY_ESNEXT if (create_regexp_from_bc) { ret_value = ecma_op_create_regexp_from_bytecode (new_target_obj_p, bc_p); JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (ret_value)); } else -#endif /* JERRY_ESNEXT */ { ret_value = ecma_op_create_regexp_from_pattern (new_target_obj_p, pattern_value, flags_value); @@ -179,13 +161,11 @@ ecma_builtin_regexp_dispatch_helper (const ecma_value_t *arguments_list_p, /**< } } -#if JERRY_ESNEXT if (free_arguments) { ecma_free_value (pattern_value); ecma_free_value (flags_value); } -#endif /* JERRY_ESNEXT */ return ret_value; } /* ecma_builtin_regexp_dispatch_helper */ @@ -216,7 +196,6 @@ ecma_builtin_regexp_dispatch_construct (const ecma_value_t *arguments_list_p, /* return ecma_builtin_regexp_dispatch_helper (arguments_list_p, arguments_list_len); } /* ecma_builtin_regexp_dispatch_construct */ -#if JERRY_ESNEXT /** * 21.2.4.2 get RegExp [ @@species ] accessor * @@ -228,7 +207,6 @@ ecma_builtin_regexp_species_get (ecma_value_t this_value) /**< This Value */ { return ecma_copy_value (this_value); } /* ecma_builtin_regexp_species_get */ -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h index 882e42caf..a9fa89228 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-regexp.inc.h @@ -25,13 +25,10 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 2, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.10.5.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_REGEXP_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_REGEXP_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* ECMA-262 v6, 21.2.4.2 */ ACCESSOR_READ_ONLY (LIT_GLOBAL_SYMBOL_SPECIES, ecma_builtin_regexp_species_get, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_REGEXP */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c index c78082395..5f2158cf9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.c @@ -17,8 +17,6 @@ #include "ecma-builtins.h" #include "ecma-iterator-object.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -205,5 +203,3 @@ ecma_builtin_string_iterator_prototype_dispatch_routine (uint8_t builtin_routine * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.inc.h index e5d043d11..adc799d1d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-iterator-prototype.inc.h @@ -19,14 +19,10 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_STRING_ITERATOR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_NEXT, ECMA_BUILTIN_STRING_ITERATOR_PROTOTYPE_OBJECT_NEXT, 0, 0) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c index fb46e02e9..8616fbf5a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.c @@ -291,7 +291,6 @@ static ecma_value_t ecma_builtin_string_prototype_object_match (ecma_value_t this_argument, /**< this argument */ ecma_value_t regexp_arg) /**< routine's argument */ { -#if JERRY_ESNEXT /* 3. */ if (!(ecma_is_value_undefined (regexp_arg) || ecma_is_value_null (regexp_arg))) { @@ -351,37 +350,8 @@ ecma_builtin_string_prototype_object_match (ecma_value_t this_argument, /**< thi ecma_free_value (new_regexp); return ret_value; - -#else /* !JERRY_ESNEXT */ - if (ecma_object_is_regexp_object (regexp_arg)) - { - return ecma_regexp_match_helper (regexp_arg, this_argument); - } - - ecma_object_t *regexp_obj_p = ecma_op_regexp_alloc (NULL); - - if (JERRY_UNLIKELY (regexp_obj_p == NULL)) - { - return ECMA_VALUE_ERROR; - } - - ecma_value_t new_regexp = ecma_op_create_regexp_from_pattern (regexp_obj_p, regexp_arg, ECMA_VALUE_UNDEFINED); - - if (ECMA_IS_VALUE_ERROR (new_regexp)) - { - ecma_deref_object (regexp_obj_p); - return new_regexp; - } - - ecma_value_t result = ecma_regexp_match_helper (new_regexp, this_argument); - - ecma_free_value (new_regexp); - - return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_string_prototype_object_match */ -#if JERRY_ESNEXT /** * The String.prototype object's 'matchAll' routine * @@ -505,7 +475,6 @@ ecma_builtin_string_prototype_object_match_all (ecma_value_t this_argument, /**< return ret_value; } /* ecma_builtin_string_prototype_object_match_all */ -#endif /* JERRY_ESNEXT */ /** * The String.prototype object's 'replace' and 'replaceAll' routine @@ -524,7 +493,6 @@ ecma_builtin_string_prototype_object_replace_helper (ecma_value_t this_value, /* ecma_value_t replace_value, /**< routine's second argument */ bool replace_all) { -#if JERRY_ESNEXT if (!(ecma_is_value_undefined (search_value) || ecma_is_value_null (search_value))) { if (replace_all) @@ -590,12 +558,6 @@ ecma_builtin_string_prototype_object_replace_helper (ecma_value_t this_value, /* return replace_result; } } -#else /* !JERRY_ESNEXT */ - if (ecma_object_is_regexp_object (search_value)) - { - return ecma_regexp_replace_helper (search_value, this_value, replace_value); - } -#endif /* JERRY_ESNEXT */ ecma_string_t *input_str_p = ecma_op_to_string (this_value); @@ -762,7 +724,6 @@ static ecma_value_t ecma_builtin_string_prototype_object_search (ecma_value_t this_value, /**< this argument */ ecma_value_t regexp_value) /**< routine's argument */ { -#if JERRY_ESNEXT if (!(ecma_is_value_undefined (regexp_value) || ecma_is_value_null (regexp_value))) { ecma_object_t *obj_p = ecma_get_object_from_value (ecma_op_to_object (regexp_value)); @@ -781,12 +742,6 @@ ecma_builtin_string_prototype_object_search (ecma_value_t this_value, /**< this return search_result; } } -#else /* !JERRY_ESNEXT */ - if (ecma_object_is_regexp_object (regexp_value)) - { - return ecma_regexp_search_helper (regexp_value, this_value); - } -#endif /* JERRY_ESNEXT */ ecma_value_t result = ECMA_VALUE_ERROR; @@ -799,7 +754,8 @@ ecma_builtin_string_prototype_object_search (ecma_value_t this_value, /**< this ecma_string_t *pattern_p = ecma_regexp_read_pattern_str_helper (regexp_value); if (pattern_p == NULL) { - goto cleanup_string; + ecma_deref_ecma_string (string_p); + return result; } ecma_object_t *new_regexp_obj_p = ecma_op_regexp_alloc (NULL); @@ -808,7 +764,7 @@ ecma_builtin_string_prototype_object_search (ecma_value_t this_value, /**< this { ecma_deref_ecma_string (string_p); ecma_deref_ecma_string (pattern_p); - return ECMA_VALUE_ERROR; + return result; } ecma_value_t new_regexp = @@ -818,22 +774,17 @@ ecma_builtin_string_prototype_object_search (ecma_value_t this_value, /**< this if (ECMA_IS_VALUE_ERROR (new_regexp)) { + ecma_deref_ecma_string (string_p); ecma_deref_object (new_regexp_obj_p); - goto cleanup_string; + return result; } -#if !JERRY_ESNEXT - result = ecma_regexp_search_helper (new_regexp, ecma_make_string_value (string_p)); - ecma_deref_object (ecma_get_object_from_value (new_regexp)); -#else /* JERRY_ESNEXT */ ecma_object_t *regexp_obj_p = ecma_get_object_from_value (new_regexp); ecma_value_t this_str_value = ecma_make_string_value (string_p); result = ecma_op_invoke_by_symbol_id (new_regexp, LIT_GLOBAL_SYMBOL_SEARCH, &this_str_value, 1); ecma_deref_object (regexp_obj_p); -#endif /* !JERRY_ESNEXT */ - -cleanup_string: ecma_deref_ecma_string (string_p); + return result; } /* ecma_builtin_string_prototype_object_search */ @@ -926,7 +877,6 @@ ecma_builtin_string_prototype_object_split (ecma_value_t this_value, /**< this a ecma_value_t separator_value, /**< separator */ ecma_value_t limit_value) /**< limit */ { -#if JERRY_ESNEXT if (!(ecma_is_value_undefined (separator_value) || ecma_is_value_null (separator_value))) { ecma_object_t *obj_p = ecma_get_object_from_value (ecma_op_to_object (separator_value)); @@ -947,12 +897,6 @@ ecma_builtin_string_prototype_object_split (ecma_value_t this_value, /**< this a return split_result; } } -#else /* !JERRY_ESNEXT */ - if (ecma_object_is_regexp_object (separator_value)) - { - return ecma_regexp_split_helper (separator_value, this_value, limit_value); - } -#endif /* JERRY_ESNEXT */ ecma_value_t result = ECMA_VALUE_ERROR; @@ -1180,7 +1124,6 @@ ecma_builtin_string_prototype_object_conversion_helper (ecma_string_t *input_str { lit_code_point_t cp = lit_cesu8_read_next (&input_curr_p); -#if JERRY_ESNEXT if (lit_is_code_point_utf16_high_surrogate (cp) && input_curr_p < input_str_end_p) { const ecma_char_t next_ch = lit_cesu8_peek_next (input_curr_p); @@ -1190,7 +1133,6 @@ ecma_builtin_string_prototype_object_conversion_helper (ecma_string_t *input_str input_curr_p += LIT_UTF8_MAX_BYTES_IN_CODE_UNIT; } } -#endif /* JERRY_ESNEXT */ if (lower_case) { @@ -1224,8 +1166,6 @@ ecma_builtin_string_prototype_object_trim (ecma_string_t *original_string_p) /** return ecma_make_string_value (trimmed_string_p); } /* ecma_builtin_string_prototype_object_trim */ -#if JERRY_ESNEXT - /** * The String.prototype object's 'repeat' routine * @@ -1338,8 +1278,6 @@ ecma_builtin_string_prototype_object_code_point_at (ecma_string_t *this_string_p return ecma_make_uint32_value (lit_convert_surrogate_pair_to_code_point (first, second)); } /* ecma_builtin_string_prototype_object_code_point_at */ -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_ANNEXB /** @@ -1403,8 +1341,6 @@ ecma_builtin_string_prototype_object_substr (ecma_string_t *this_string_p, /**< #endif /* JERRY_BUILTIN_ANNEXB */ -#if JERRY_ESNEXT - /** * The String.prototype object's @@iterator routine * @@ -1423,8 +1359,6 @@ ecma_builtin_string_prototype_object_iterator (ecma_value_t to_string) /**< this ECMA_ITERATOR_VALUES); } /* ecma_builtin_string_prototype_object_iterator */ -#endif /* JERRY_ESNEXT */ - /** * Dispatcher of the built-in's routines * @@ -1458,12 +1392,10 @@ ecma_builtin_string_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< return ecma_builtin_string_prototype_object_match (this_arg, arg1); } -#if JERRY_ESNEXT if (builtin_routine_id == ECMA_STRING_PROTOTYPE_MATCH_ALL) { return ecma_builtin_string_prototype_object_match_all (this_arg, arg1); } -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_REGEXP */ if (builtin_routine_id <= ECMA_STRING_PROTOTYPE_CHAR_CODE_AT) @@ -1478,12 +1410,11 @@ ecma_builtin_string_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< { return ecma_builtin_string_prototype_object_replace_helper (this_arg, arg1, arg2, false); } -#if JERRY_ESNEXT + else if (builtin_routine_id == ECMA_STRING_PROTOTYPE_REPLACE_ALL) { return ecma_builtin_string_prototype_object_replace_helper (this_arg, arg1, arg2, true); } -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_REGEXP */ ecma_string_t *string_p = ecma_op_to_string (this_arg); @@ -1515,11 +1446,9 @@ ecma_builtin_string_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< } case ECMA_STRING_PROTOTYPE_LAST_INDEX_OF: case ECMA_STRING_PROTOTYPE_INDEX_OF: -#if JERRY_ESNEXT case ECMA_STRING_PROTOTYPE_STARTS_WITH: case ECMA_STRING_PROTOTYPE_INCLUDES: case ECMA_STRING_PROTOTYPE_ENDS_WITH: -#endif /* JERRY_ESNEXT */ { ecma_string_index_of_mode_t mode; mode = (ecma_string_index_of_mode_t) (builtin_routine_id - ECMA_STRING_PROTOTYPE_LAST_INDEX_OF); @@ -1569,7 +1498,6 @@ ecma_builtin_string_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< break; } #endif /* JERRY_BUILTIN_ANNEXB */ -#if JERRY_ESNEXT case ECMA_STRING_PROTOTYPE_REPEAT: { ret_value = ecma_builtin_string_prototype_object_repeat (string_p, arg1); @@ -1591,7 +1519,6 @@ ecma_builtin_string_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< ret_value = ecma_string_pad (to_string_val, arg1, arg2, builtin_routine_id == ECMA_STRING_PROTOTYPE_PAD_START); break; } -#endif /* JERRY_ESNEXT */ default: { JERRY_UNREACHABLE (); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h index ba3278f14..3e54d2629 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string-prototype.inc.h @@ -49,9 +49,7 @@ ROUTINE (LIT_MAGIC_STRING_LOCALE_COMPARE_UL, ECMA_STRING_PROTOTYPE_LOCALE_COMPAR #if JERRY_BUILTIN_REGEXP ROUTINE (LIT_MAGIC_STRING_MATCH, ECMA_STRING_PROTOTYPE_MATCH, 1, 1) ROUTINE (LIT_MAGIC_STRING_REPLACE, ECMA_STRING_PROTOTYPE_REPLACE, 2, 2) -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_REPLACE_ALL, ECMA_STRING_PROTOTYPE_REPLACE_ALL, 2, 2) -#endif /* JERRY_ESNEXT */ ROUTINE (LIT_MAGIC_STRING_SEARCH, ECMA_STRING_PROTOTYPE_SEARCH, 1, 1) #endif /* JERRY_BUILTIN_REGEXP */ @@ -67,7 +65,6 @@ ROUTINE (LIT_MAGIC_STRING_TRIM, ECMA_STRING_PROTOTYPE_TRIM, 0, 0) ROUTINE (LIT_MAGIC_STRING_SUBSTR, ECMA_STRING_PROTOTYPE_SUBSTR, 2, 2) #endif /* JERRY_BUILTIN_ANNEXB */ -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_REPEAT, ECMA_STRING_PROTOTYPE_REPEAT, 1, 1) ROUTINE (LIT_MAGIC_STRING_STARTS_WITH, ECMA_STRING_PROTOTYPE_STARTS_WITH, 2, 1) ROUTINE (LIT_MAGIC_STRING_INCLUDES, ECMA_STRING_PROTOTYPE_INCLUDES, 2, 1) @@ -82,7 +79,6 @@ INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TRIM_START, LIT_MAGIC_STRING_TRIM_START, EC INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TRIM_LEFT, LIT_MAGIC_STRING_TRIM_START, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TRIM_END, LIT_MAGIC_STRING_TRIM_END, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) INTRINSIC_PROPERTY (LIT_MAGIC_STRING_TRIM_RIGHT, LIT_MAGIC_STRING_TRIM_END, ECMA_PROPERTY_CONFIGURABLE_WRITABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_STRING */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c index 13207c420..b0276312c 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string.c @@ -22,12 +22,10 @@ #include "ecma-helpers.h" #include "ecma-objects.h" #include "ecma-string-object.h" - -#include "lit-strings.h" -#if JERRY_ESNEXT #include "ecma-symbol-object.h" -#endif /* JERRY_ESNEXT */ + #include "jrt.h" +#include "lit-strings.h" #if JERRY_BUILTIN_STRING @@ -118,8 +116,6 @@ ecma_builtin_string_object_from_char_code (const ecma_value_t args[], /**< argum return isError ? ECMA_VALUE_ERROR : ecma_make_string_value (ret_string_p); } /* ecma_builtin_string_object_from_char_code */ -#if JERRY_ESNEXT - /** * The String object's 'raw' routine * @@ -332,8 +328,6 @@ ecma_builtin_string_object_from_code_point (const ecma_value_t args[], /**< argu return ecma_make_string_value (ret_str_p); } /* ecma_builtin_string_object_from_code_point */ -#endif /* JERRY_ESNEXT */ - /** * Handle calling [[Call]] of built-in String object * @@ -355,13 +349,11 @@ ecma_builtin_string_dispatch_call (const ecma_value_t *arguments_list_p, /**< ar { ret_value = ecma_make_magic_string_value (LIT_MAGIC_STRING__EMPTY); } -#if JERRY_ESNEXT /* 2.a */ else if (ecma_is_value_symbol (arguments_list_p[0])) { ret_value = ecma_get_symbol_descriptive_string (arguments_list_p[0]); } -#endif /* JERRY_ESNEXT */ /* 2.b */ else { @@ -412,7 +404,6 @@ ecma_builtin_string_dispatch_routine (uint8_t builtin_routine_id, /**< built-in { return ecma_builtin_string_object_from_char_code (arguments_list_p, arguments_number); } -#if JERRY_ESNEXT case ECMA_BUILTIN_STRING_OBJECT_FROM_CODE_POINT: { return ecma_builtin_string_object_from_code_point (arguments_list_p, arguments_number); @@ -421,7 +412,6 @@ ecma_builtin_string_dispatch_routine (uint8_t builtin_routine_id, /**< built-in { return ecma_builtin_string_object_raw (arguments_list_p, arguments_number); } -#endif /* JERRY_ESNEXT */ default: { JERRY_UNREACHABLE (); diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h index 8bc413438..2178acf1b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-string.inc.h @@ -31,19 +31,13 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.7.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_STRING_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_STRING_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ /* Routine properties: * (property name, C routine name, arguments number or NON_FIXED, value of the routine's length property) */ ROUTINE (LIT_MAGIC_STRING_FROM_CHAR_CODE_UL, ECMA_BUILTIN_STRING_OBJECT_FROM_CHAR_CODE, NON_FIXED, 1) - -#if JERRY_ESNEXT ROUTINE (LIT_MAGIC_STRING_FROM_CODE_POINT_UL, ECMA_BUILTIN_STRING_OBJECT_FROM_CODE_POINT, NON_FIXED, 1) ROUTINE (LIT_MAGIC_STRING_RAW, ECMA_BUILTIN_STRING_OBJECT_RAW, NON_FIXED, 1) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_STRING */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c index c508148b1..df4c9d5f9 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.c @@ -25,8 +25,6 @@ #include "jrt.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -111,5 +109,3 @@ ecma_builtin_symbol_prototype_dispatch_routine (uint8_t builtin_routine_id, /**< * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h index 585b86b61..9b0daa0c5 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol-prototype.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Object properties: * (property name, object pointer getter) */ @@ -35,6 +33,5 @@ STRING_VALUE (LIT_GLOBAL_SYMBOL_TO_STRING_TAG, LIT_MAGIC_STRING_SYMBOL_UL, ECMA_ /* ECMA-262, v11, 19.4.3.2 */ ACCESSOR_READ_ONLY (LIT_MAGIC_STRING_DESCRIPTION, ECMA_SYMBOL_PROTOTYPE_DESCRIPTION, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c index 38c13297b..3ce75f9bb 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.c @@ -27,8 +27,6 @@ #include "jcontext.h" #include "jrt.h" -#if JERRY_ESNEXT - #define ECMA_BUILTINS_INTERNAL #include "ecma-builtins-internal.h" @@ -253,5 +251,3 @@ ecma_builtin_symbol_key_for (ecma_value_t this_arg, /**< this argument */ * @} * @} */ - -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h index 1d34b3a41..9fecbd4fc 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-symbol.inc.h @@ -19,8 +19,6 @@ #include "ecma-builtin-helpers-macro-defines.inc.h" -#if JERRY_ESNEXT - /* Number properties: * (property name, number value, writable, enumerable, configurable) */ @@ -79,6 +77,4 @@ SYMBOL_VALUE (LIT_MAGIC_STRING_MATCH_ALL, LIT_GLOBAL_SYMBOL_MATCH_ALL) ROUTINE (LIT_MAGIC_STRING_FOR, ecma_builtin_symbol_for, 1, 1) ROUTINE (LIT_MAGIC_STRING_KEY_FOR, ecma_builtin_symbol_key_for, 1, 1) -#endif /* JERRY_ESNEXT */ - #include "ecma-builtin-helpers-macro-undefs.inc.h" diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c index 6227ef600..449c0db65 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.c @@ -67,9 +67,6 @@ ecma_value_t ecma_builtin_syntax_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_syntax_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE); @@ -89,7 +86,6 @@ ecma_builtin_syntax_error_dispatch_construct (const ecma_value_t *arguments_list ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_syntax_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h index 18df82555..bee730cfc 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-syntaxerror.inc.h @@ -31,10 +31,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.11.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_SYNTAX_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c index a16fce508..c18cdaadf 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.c @@ -67,9 +67,6 @@ ecma_value_t ecma_builtin_type_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_type_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE); @@ -89,7 +86,6 @@ ecma_builtin_type_error_dispatch_construct (const ecma_value_t *arguments_list_p ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_type_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h index a4508f91a..d2bb8e330 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-typeerror.inc.h @@ -31,10 +31,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.11.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_TYPE_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c index 52d7a2b6c..1c7333e9e 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.c @@ -67,9 +67,6 @@ ecma_value_t ecma_builtin_uri_error_dispatch_construct (const ecma_value_t *arguments_list_p, /**< arguments list */ uint32_t arguments_list_len) /**< number of arguments */ { -#if !JERRY_ESNEXT - return ecma_builtin_uri_error_dispatch_call (arguments_list_p, arguments_list_len); -#else /* JERRY_ESNEXT */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (JERRY_CONTEXT (current_new_target_p), ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE); @@ -89,7 +86,6 @@ ecma_builtin_uri_error_dispatch_construct (const ecma_value_t *arguments_list_p, ecma_deref_object (proto_p); return result; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_uri_error_dispatch_construct */ /** diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h index fd98a1d77..ed1d3d5a0 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-urierror.inc.h @@ -31,10 +31,7 @@ NUMBER_VALUE (LIT_MAGIC_STRING_LENGTH, 1, ECMA_PROPERTY_FLAG_DEFAULT_LENGTH) /* ECMA-262 v5, 15.11.3.1 */ OBJECT_VALUE (LIT_MAGIC_STRING_PROTOTYPE, ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE, ECMA_PROPERTY_FIXED) - -#if JERRY_ESNEXT STRING_VALUE (LIT_MAGIC_STRING_NAME, LIT_MAGIC_STRING_URI_ERROR_UL, ECMA_PROPERTY_FLAG_CONFIGURABLE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_ERRORS */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h b/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h index c8030b6b9..5695e2d8a 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtins-internal.h @@ -31,12 +31,10 @@ typedef enum ECMA_BUILTIN_PROPERTY_SIMPLE, /**< simple value property */ ECMA_BUILTIN_PROPERTY_NUMBER, /**< number value property */ ECMA_BUILTIN_PROPERTY_STRING, /**< string value property */ -#if JERRY_ESNEXT ECMA_BUILTIN_PROPERTY_SYMBOL, /**< symbol value property */ ECMA_BUILTIN_PROPERTY_INTRINSIC_PROPERTY, /**< intrinsic routine property */ ECMA_BUILTIN_PROPERTY_ACCESSOR_BUILTIN_FUNCTION, /**< full accessor property with builtin function object getter/setter pair */ -#endif /* JERRY_ESNEXT */ ECMA_BUILTIN_PROPERTY_OBJECT, /**< builtin object property */ ECMA_BUILTIN_PROPERTY_ROUTINE, /**< routine property */ ECMA_BUILTIN_PROPERTY_ACCESSOR_READ_WRITE, /**< full accessor property */ @@ -51,11 +49,9 @@ typedef enum { ECMA_BUILTIN_NUMBER_MAX = 256, /**< value of ECMA_NUMBER_MAX_VALUE */ ECMA_BUILTIN_NUMBER_MIN, /**< value of ECMA_NUMBER_MIN_VALUE */ -#if JERRY_ESNEXT ECMA_BUILTIN_NUMBER_EPSILON, /**< value of ECMA_NUMBER_EPSILON */ ECMA_BUILTIN_NUMBER_MAX_SAFE_INTEGER, /**< value of ECMA_NUMBER_MAX_SAFE_INTEGER */ ECMA_BUILTIN_NUMBER_MIN_SAFE_INTEGER, /**< value of ECMA_NUMBER_MIN_SAFE_INTEGER */ -#endif /* JERRY_ESNEXT */ ECMA_BUILTIN_NUMBER_E, /**< value of ECMA_NUMBER_E */ ECMA_BUILTIN_NUMBER_PI, /**< value of ECMA_NUMBER_PI */ ECMA_BUILTIN_NUMBER_LN10, /**< value of ECMA_NUMBER_LN10 */ diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.c b/jerry-core/ecma/builtin-objects/ecma-builtins.c index 61692cb04..c14500717 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.c +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.c @@ -455,40 +455,6 @@ ecma_instantiate_builtin (ecma_global_object_t *global_object_p, /**< global obj } #endif /* JERRY_BUILTIN_BOOLEAN */ -#if !JERRY_ESNEXT -#if JERRY_BUILTIN_DATE - case ECMA_BUILTIN_ID_DATE_PROTOTYPE: - { - JERRY_ASSERT (obj_type == ECMA_OBJECT_TYPE_BUILT_IN_CLASS); - ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p; - - ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_DATE; - - ecma_number_t *prim_prop_num_value_p = ecma_alloc_number (); - *prim_prop_num_value_p = ecma_number_make_nan (); - ECMA_SET_INTERNAL_VALUE_POINTER (ext_object_p->u.cls.u3.value, prim_prop_num_value_p); - break; - } -#endif /* JERRY_BUILTIN_DATE */ - -#if JERRY_BUILTIN_REGEXP - case ECMA_BUILTIN_ID_REGEXP_PROTOTYPE: - { - JERRY_ASSERT (obj_type == ECMA_OBJECT_TYPE_BUILT_IN_CLASS); - ecma_extended_object_t *ext_object_p = (ecma_extended_object_t *) obj_p; - - ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_REGEXP; - - re_compiled_code_t *bc_p = - re_compile_bytecode (ecma_get_magic_string (LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP), RE_FLAG_EMPTY); - - JERRY_ASSERT (bc_p != NULL); - - ECMA_SET_INTERNAL_VALUE_POINTER (ext_object_p->u.cls.u3.value, bc_p); - break; - } -#endif /* JERRY_BUILTIN_REGEXP */ -#endif /* !JERRY_ESNEXT */ default: { JERRY_ASSERT (obj_type != ECMA_OBJECT_TYPE_BUILT_IN_CLASS); @@ -550,15 +516,13 @@ ecma_builtin_create_global_object (void) /* Temporary self reference for GC mark. */ ECMA_SET_NON_NULL_POINTER (global_object_p->global_env_cp, object_p); -#if JERRY_ESNEXT global_object_p->global_scope_cp = global_object_p->global_env_cp; -#endif /* JERRY_ESNEXT */ ecma_object_t *global_lex_env_p = ecma_create_object_lex_env (NULL, object_p); + ECMA_SET_NON_NULL_POINTER (global_object_p->global_env_cp, global_lex_env_p); -#if JERRY_ESNEXT global_object_p->global_scope_cp = global_object_p->global_env_cp; -#endif /* JERRY_ESNEXT */ + ecma_deref_object (global_lex_env_p); ecma_object_t *prototype_object_p; @@ -727,8 +691,6 @@ ecma_builtin_make_function_object_for_setter_accessor (ecma_object_t *builtin_ob ECMA_BUILTIN_ROUTINE_SETTER); } /* ecma_builtin_make_function_object_for_setter_accessor */ -#if JERRY_ESNEXT - /** * Create specification defined properties for built-in native handlers. * @@ -769,8 +731,6 @@ ecma_builtin_native_handler_try_to_instantiate_property (ecma_object_t *object_p return prop_p; } /* ecma_builtin_native_handler_try_to_instantiate_property */ -#endif /* JERRY_ESNEXT */ - /** * Lazy instantiation of builtin routine property of builtin object * @@ -789,12 +749,10 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**< ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ext_func_p->u.built_in.id == ECMA_BUILTIN_ID_HANDLER)) { return ecma_builtin_native_handler_try_to_instantiate_property (object_p, property_name_p); } -#endif /* !JERRY_ESNEXT */ if (ecma_string_is_length (property_name_p)) { @@ -803,7 +761,6 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**< */ ecma_property_t *len_prop_p; -#if JERRY_ESNEXT uint8_t *bitset_p = &ext_func_p->u.built_in.u2.routine_flags; if (*bitset_p & ECMA_BUILTIN_ROUTINE_LENGTH_INITIALIZED) @@ -816,12 +773,6 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**< * as it is configurable and so can be deleted (ECMA-262 v6, 19.2.4.1) */ ecma_property_value_t *len_prop_value_p = ecma_create_named_data_property (object_p, property_name_p, ECMA_PROPERTY_BUILT_IN_CONFIGURABLE, &len_prop_p); -#else /* !JERRY_ESNEXT */ - /* We don't need to mark that the property was already lazy instantiated, - * as it is non-configurable and so can't be deleted (ECMA-262 v5, 13.2.5) */ - ecma_property_value_t *len_prop_value_p = - ecma_create_named_data_property (object_p, property_name_p, ECMA_PROPERTY_BUILT_IN_FIXED, &len_prop_p); -#endif /* JERRY_ESNEXT */ uint8_t length = 0; @@ -845,7 +796,6 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**< return len_prop_p; } -#if JERRY_ESNEXT /* * Lazy instantiation of 'name' property */ @@ -918,7 +868,6 @@ ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, /**< return name_prop_p; } -#endif /* JERRY_ESNEXT */ return NULL; } /* ecma_builtin_routine_try_to_instantiate_property */ @@ -937,12 +886,10 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * { lit_magic_string_id_t magic_string_id = ecma_get_string_magic (property_name_p); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ecma_prop_name_is_symbol (property_name_p)) && property_name_p->u.hash & ECMA_SYMBOL_FLAG_GLOBAL) { magic_string_id = (property_name_p->u.hash >> ECMA_SYMBOL_FLAGS_SHIFT); } -#endif /* JERRY_ESNEXT */ if (magic_string_id == LIT_MAGIC_STRING__COUNT) { @@ -1034,11 +981,9 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * static const ecma_number_t builtin_number_list[] = { ECMA_NUMBER_MAX_VALUE, ECMA_NUMBER_MIN_VALUE, -#if JERRY_ESNEXT ECMA_NUMBER_EPSILON, ECMA_NUMBER_MAX_SAFE_INTEGER, ECMA_NUMBER_MIN_SAFE_INTEGER, -#endif /* JERRY_ESNEXT */ ECMA_NUMBER_E, ECMA_NUMBER_PI, ECMA_NUMBER_LN10, @@ -1083,7 +1028,6 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * value = ecma_make_magic_string_value ((lit_magic_string_id_t) curr_property_p->value); break; } -#if JERRY_ESNEXT case ECMA_BUILTIN_PROPERTY_SYMBOL: { lit_magic_string_id_t symbol_id = (lit_magic_string_id_t) curr_property_p->value; @@ -1108,7 +1052,6 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * ecma_ref_object (setter_p); break; } -#endif /* JERRY_ESNEXT */ case ECMA_BUILTIN_PROPERTY_OBJECT: { ecma_object_t *builtin_object_p; @@ -1182,8 +1125,6 @@ ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, /**< object * return prop_p; } /* ecma_builtin_try_to_instantiate_property */ -#if JERRY_ESNEXT - /** * Delete configurable properties of native handlers. */ @@ -1241,8 +1182,6 @@ ecma_builtin_routine_delete_built_in_property (ecma_object_t *object_p, /**< obj *bitset_p |= ECMA_BUILTIN_ROUTINE_NAME_INITIALIZED; } /* ecma_builtin_routine_delete_built_in_property */ -#endif /* JERRY_ESNEXT */ - /** * Delete configurable properties of built-ins. */ @@ -1252,7 +1191,6 @@ ecma_builtin_delete_built_in_property (ecma_object_t *object_p, /**< object */ { lit_magic_string_id_t magic_string_id = ecma_get_string_magic (property_name_p); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ecma_prop_name_is_symbol (property_name_p))) { if (property_name_p->u.hash & ECMA_SYMBOL_FLAG_GLOBAL) @@ -1260,7 +1198,6 @@ ecma_builtin_delete_built_in_property (ecma_object_t *object_p, /**< object */ magic_string_id = (property_name_p->u.hash >> ECMA_SYMBOL_FLAGS_SHIFT); } } -#endif /* JERRY_ESNEXT */ ecma_built_in_props_t *built_in_props_p; ecma_object_type_t object_type = ecma_get_object_type (object_p); @@ -1307,8 +1244,6 @@ ecma_builtin_delete_built_in_property (ecma_object_t *object_p, /**< object */ *bitset_p |= bit_for_index; } /* ecma_builtin_delete_built_in_property */ -#if JERRY_ESNEXT - /** * List names of an Built-in native handler object's lazy instantiated properties, * adding them to corresponding string collections @@ -1334,8 +1269,6 @@ ecma_builtin_native_handler_list_lazy_property_names (ecma_object_t *object_p, / } } /* ecma_builtin_native_handler_list_lazy_property_names */ -#endif /* JERRY_ESNEXT */ - /** * List names of a built-in function's lazy instantiated properties * @@ -1356,7 +1289,6 @@ ecma_builtin_routine_list_lazy_property_names (ecma_object_t *object_p, /**< a b return; } -#if JERRY_ESNEXT ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; if (JERRY_UNLIKELY (ext_func_p->u.built_in.id == ECMA_BUILTIN_ID_HANDLER)) @@ -1377,11 +1309,6 @@ ecma_builtin_routine_list_lazy_property_names (ecma_object_t *object_p, /**< a b ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_NAME)); prop_counter_p->string_named_props++; } -#else /* !JERRY_ESNEXT */ - /* 'length' property is non-enumerable (ECMA-262 v5, 15) */ - ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH)); - prop_counter_p->string_named_props++; -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_routine_list_lazy_property_names */ /** @@ -1421,10 +1348,8 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in uint8_t *bitset_p = built_in_props_p->u2.instantiated_bitset + 1; #endif /* JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT uint8_t *symbol_bitset_p = bitset_p; bool has_symbol = true; -#endif /* JERRY_BUILTIN_REALMS */ if (!(filter & JERRY_PROPERTY_FILTER_EXCLUDE_STRINGS)) { @@ -1432,9 +1357,7 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in uint8_t bitset = built_in_props_p->u2.instantiated_bitset[0]; uint32_t index = 0; -#if JERRY_ESNEXT has_symbol = false; -#endif /* JERRY_BUILTIN_REALMS */ while (curr_property_p->magic_string_id != LIT_MAGIC_STRING__COUNT) { @@ -1448,21 +1371,17 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in if (!(bitset & bit_for_index)) { -#if JERRY_ESNEXT if (JERRY_LIKELY (curr_property_p->magic_string_id < LIT_NON_INTERNAL_MAGIC_STRING__COUNT)) { -#endif /* JERRY_ESNEXT */ ecma_value_t name = ecma_make_magic_string_value ((lit_magic_string_id_t) curr_property_p->magic_string_id); ecma_collection_push_back (prop_names_p, name); prop_counter_p->string_named_props++; -#if JERRY_ESNEXT } else { JERRY_ASSERT (LIT_IS_GLOBAL_SYMBOL (curr_property_p->magic_string_id)); has_symbol = true; } -#endif /* JERRY_ESNEXT */ } curr_property_p++; @@ -1470,7 +1389,6 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in } } -#if JERRY_ESNEXT if (has_symbol && !(filter & JERRY_PROPERTY_FILTER_EXCLUDE_SYMBOLS)) { const ecma_builtin_property_descriptor_t *curr_property_p = ecma_builtin_property_list_references[builtin_id]; @@ -1498,7 +1416,6 @@ ecma_builtin_list_lazy_property_names (ecma_object_t *object_p, /**< a built-in index++; } } -#endif /* JERRY_ESNEXT */ } /* ecma_builtin_list_lazy_property_names */ /** @@ -1563,13 +1480,11 @@ ecma_builtin_dispatch_call (ecma_object_t *obj_p, /**< built-in object */ if (ecma_builtin_function_is_routine (obj_p)) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ext_obj_p->u.built_in.id == ECMA_BUILTIN_ID_HANDLER)) { ecma_builtin_handler_t handler = ecma_builtin_handler_get (ext_obj_p->u.built_in.routine_id); return handler (obj_p, arguments_list_p, arguments_list_len); } -#endif /* !JERRY_ESNEXT */ return ecma_builtin_dispatch_routine (ext_obj_p, this_arg_value, arguments_list_p, arguments_list_len); } diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.h b/jerry-core/ecma/builtin-objects/ecma-builtins.h index 96040de7f..82761cdc3 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.h @@ -38,8 +38,6 @@ typedef enum ECMA_BUILTIN_ID__COUNT /**< number of built-in objects */ } ecma_builtin_id_t; -#if JERRY_ESNEXT - /** * Special id for handlers (handlers are not regular built-ins, but * they use the same ecma_built_in_props_t structure as other built-ins) @@ -51,8 +49,6 @@ typedef enum */ #define ECMA_BUILTIN_GLOBAL_SYMBOL_COUNT (LIT_GLOBAL_SYMBOL__LAST - LIT_GLOBAL_SYMBOL__FIRST + 1) -#endif /* JERRY_ESNEXT */ - /** * Construct a routine value */ @@ -100,9 +96,7 @@ typedef struct ecma_value_t this_binding; /**< 'this' binding of this global object */ #endif /* JERRY_BUILTIN_REALMS */ jmem_cpointer_t global_env_cp; /**< global lexical environment */ -#if JERRY_ESNEXT jmem_cpointer_t global_scope_cp; /**< global lexical scope */ -#endif /* JERRY_ESNEXT */ jmem_cpointer_t builtin_objects[ECMA_BUILTIN_OBJECTS_COUNT]; /**< pointer to instances of built-in objects */ } ecma_global_object_t; @@ -120,9 +114,7 @@ ecma_value_t ecma_builtin_dispatch_construct (ecma_object_t *obj_p, ecma_property_t *ecma_builtin_routine_try_to_instantiate_property (ecma_object_t *object_p, ecma_string_t *property_name_p); ecma_property_t *ecma_builtin_try_to_instantiate_property (ecma_object_t *object_p, ecma_string_t *property_name_p); -#if JERRY_ESNEXT void ecma_builtin_routine_delete_built_in_property (ecma_object_t *object_p, ecma_string_t *property_name_p); -#endif /* JERRY_ESNEXT */ void ecma_builtin_delete_built_in_property (ecma_object_t *object_p, ecma_string_t *property_name_p); void ecma_builtin_routine_list_lazy_property_names (ecma_object_t *object_p, ecma_collection_t *prop_names_p, diff --git a/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h b/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h index 48cae1caf..449aef98b 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h +++ b/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h @@ -46,7 +46,6 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ARRAY, array) #endif /* JERRY_BUILTIN_ARRAY */ -#if JERRY_ESNEXT #if JERRY_BUILTIN_DATE /* The Date.prototype object (20.3.4) */ BUILTIN (ECMA_BUILTIN_ID_DATE_PROTOTYPE, @@ -64,25 +63,6 @@ BUILTIN (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE, true, regexp_prototype) #endif /* JERRY_BUILTIN_REGEXP */ -#else /* !JERRY_ESNEXT */ -#if JERRY_BUILTIN_DATE -/* The Date.prototype object (15.9.4) */ -BUILTIN (ECMA_BUILTIN_ID_DATE_PROTOTYPE, - ECMA_OBJECT_TYPE_BUILT_IN_CLASS, - ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, - true, - date_prototype) -#endif /* JERRY_BUILTIN_DATE */ - -#if JERRY_BUILTIN_REGEXP -/* The RegExp.prototype object (15.10.6) */ -BUILTIN (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE, - ECMA_OBJECT_TYPE_BUILT_IN_CLASS, - ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, - true, - regexp_prototype) -#endif /* JERRY_BUILTIN_REGEXP */ -#endif /* !JERRY_ESNEXT */ #if JERRY_BUILTIN_STRING /* The String.prototype object (15.5.4) */ @@ -185,11 +165,7 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_REGEXP, regexp) #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT #define ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID ECMA_BUILTIN_ID_ERROR -#else /* !JERRY_ESNEXT */ -#define ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE -#endif /* JERRY_ESNEXT */ /* The Error object (15.11.1) */ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_ERROR, @@ -276,7 +252,6 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_TYPE_ERROR, true, type_error) -#if JERRY_ESNEXT /* The AggregateError.prototype object (15.11.6.5) */ BUILTIN (ECMA_BUILTIN_ID_AGGREGATE_ERROR_PROTOTYPE, ECMA_OBJECT_TYPE_BUILT_IN_GENERAL, @@ -290,7 +265,6 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_AGGREGATE_ERROR, ECMA_BUILTIN_NATIVE_ERROR_PROTOTYPE_ID, true, aggregate_error) -#endif /* JERRY_ESNEXT */ /* The URIError.prototype object (15.11.6.6) */ BUILTIN (ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE, @@ -503,8 +477,6 @@ BUILTIN (ECMA_BUILTIN_ID_BIGUINT64ARRAY_PROTOTYPE, #endif /* JERRY_BUILTIN_BIGINT */ #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT - BUILTIN (ECMA_BUILTIN_ID_PROMISE_PROTOTYPE, ECMA_OBJECT_TYPE_BUILT_IN_GENERAL, ECMA_BUILTIN_ID_OBJECT_PROTOTYPE, @@ -517,8 +489,6 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_PROMISE, true, promise) -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_CONTAINER /* The Map prototype object (23.1.3) */ @@ -598,8 +568,6 @@ BUILTIN_ROUTINE (ECMA_BUILTIN_ID_PROXY, proxy) #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT - /* Intrinsic hidden builtin object */ BUILTIN (ECMA_BUILTIN_ID_INTRINSIC_OBJECT, ECMA_OBJECT_TYPE_BUILT_IN_GENERAL, @@ -742,8 +710,6 @@ BUILTIN (ECMA_BUILTIN_ID_MAP_ITERATOR_PROTOTYPE, map_iterator_prototype) #endif /* JERRY_BUILTIN_CONTAINER */ -#endif /* JERRY_ESNEXT */ - #if JERRY_BUILTIN_BIGINT /* The %BigInt.prototype% object */ BUILTIN (ECMA_BUILTIN_ID_BIGINT_PROTOTYPE, diff --git a/jerry-core/ecma/operations/ecma-arguments-object.c b/jerry-core/ecma/operations/ecma-arguments-object.c index 4d2894090..fd0c67980 100644 --- a/jerry-core/ecma/operations/ecma-arguments-object.c +++ b/jerry-core/ecma/operations/ecma-arguments-object.c @@ -297,25 +297,6 @@ ecma_op_arguments_object_try_to_lazy_instantiate_property (ecma_object_t *object return prop_p; } -#if !JERRY_ESNEXT - if (property_name_p == ecma_get_magic_string (LIT_MAGIC_STRING_CALLER)) - { - if (arguments_p->header.u.cls.u1.arguments_flags & ECMA_ARGUMENTS_OBJECT_MAPPED) - { - return NULL; - } - - ecma_object_t *thrower_p = ecma_builtin_get (ECMA_BUILTIN_ID_TYPE_ERROR_THROWER); - - ecma_create_named_accessor_property (object_p, - ecma_get_magic_string (LIT_MAGIC_STRING_CALLER), - thrower_p, - thrower_p, - ECMA_PROPERTY_BUILT_IN_FIXED, - &prop_p); - return prop_p; - } -#else /* JERRY_ESNEXT */ if (ecma_op_compare_string_to_global_symbol (property_name_p, LIT_GLOBAL_SYMBOL_ITERATOR) && !(flags & ECMA_ARGUMENTS_OBJECT_ITERATOR_INITIALIZED)) { @@ -331,7 +312,6 @@ ecma_op_arguments_object_try_to_lazy_instantiate_property (ecma_object_t *object ecma_deref_object (ecma_get_object_from_value (prop_value_p->value)); return prop_p; } -#endif /* !JERRY_ESNEXT */ return NULL; } /* ecma_op_arguments_object_try_to_lazy_instantiate_property */ @@ -362,7 +342,6 @@ ecma_op_arguments_delete_built_in_property (ecma_object_t *object_p, /**< the ob return; } -#if JERRY_ESNEXT if (ecma_prop_name_is_symbol (property_name_p)) { JERRY_ASSERT (!(arguments_p->header.u.cls.u1.arguments_flags & ECMA_ARGUMENTS_OBJECT_ITERATOR_INITIALIZED)); @@ -371,7 +350,6 @@ ecma_op_arguments_delete_built_in_property (ecma_object_t *object_p, /**< the ob arguments_p->header.u.cls.u1.arguments_flags |= ECMA_ARGUMENTS_OBJECT_ITERATOR_INITIALIZED; return; } -#endif /* JERRY_ESNEXT */ uint32_t index = ecma_string_get_array_index (property_name_p); @@ -436,24 +414,14 @@ ecma_op_arguments_object_list_lazy_property_names (ecma_object_t *obj_p, /**< ar ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_CALLEE)); prop_counter_p->string_named_props++; } - -#if !JERRY_ESNEXT - if (!(flags & ECMA_ARGUMENTS_OBJECT_MAPPED)) - { - ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_CALLER)); - prop_counter_p->string_named_props++; - } -#endif /* !JERRY_ESNEXT */ } -#if JERRY_ESNEXT if (!(filter & JERRY_PROPERTY_FILTER_EXCLUDE_SYMBOLS) && !(flags & ECMA_ARGUMENTS_OBJECT_ITERATOR_INITIALIZED)) { ecma_string_t *symbol_p = ecma_op_get_global_symbol (LIT_GLOBAL_SYMBOL_ITERATOR); ecma_collection_push_back (prop_names_p, ecma_make_symbol_value (symbol_p)); prop_counter_p->symbol_named_props++; } -#endif /* JERRY_ESNEXT */ } /* ecma_op_arguments_object_list_lazy_property_names */ /** diff --git a/jerry-core/ecma/operations/ecma-array-object.c b/jerry-core/ecma/operations/ecma-array-object.c index b150a9800..5919ee6ba 100644 --- a/jerry-core/ecma/operations/ecma-array-object.c +++ b/jerry-core/ecma/operations/ecma-array-object.c @@ -152,13 +152,11 @@ ecma_op_new_array_object (uint32_t length) /**< length of the new array */ ecma_object_t * ecma_op_new_array_object_from_length (ecma_length_t length) /**< length of the new array */ { -#if JERRY_ESNEXT if (length > UINT32_MAX) { ecma_raise_range_error (ECMA_ERR_INVALID_ARRAY_LENGTH); return NULL; } -#endif /* JERRY_ESNEXT */ return ecma_op_new_array_object ((uint32_t) length); } /* ecma_op_new_array_object_from_length */ @@ -663,7 +661,6 @@ ecma_fast_array_object_own_property_keys (ecma_object_t *object_p, /**< fast acc return ret_p; } /* ecma_fast_array_object_own_property_keys */ -#if JERRY_ESNEXT /** * Array object creation with custom prototype. * @@ -783,7 +780,6 @@ ecma_op_create_array_iterator (ecma_object_t *obj_p, /**< array object */ ECMA_OBJECT_CLASS_ARRAY_ITERATOR, kind); } /* ecma_op_create_array_iterator */ -#endif /* JERRY_ESNEXT */ /** * Low level delete of array items from new_length to old_length diff --git a/jerry-core/ecma/operations/ecma-array-object.h b/jerry-core/ecma/operations/ecma-array-object.h index d2d55f905..73d658055 100644 --- a/jerry-core/ecma/operations/ecma-array-object.h +++ b/jerry-core/ecma/operations/ecma-array-object.h @@ -88,11 +88,9 @@ ecma_collection_t *ecma_fast_array_object_own_property_keys (ecma_object_t *obje void ecma_fast_array_convert_to_normal (ecma_object_t *object_p); -#if JERRY_ESNEXT ecma_object_t *ecma_op_array_species_create (ecma_object_t *original_array_p, ecma_length_t length); ecma_value_t ecma_op_create_array_iterator (ecma_object_t *obj_p, ecma_iterator_kind_t kind); -#endif /* JERRY_ESNEXT */ ecma_value_t ecma_op_array_object_set_length (ecma_object_t *object_p, ecma_value_t new_value, uint16_t flags); diff --git a/jerry-core/ecma/operations/ecma-async-generator-object.c b/jerry-core/ecma/operations/ecma-async-generator-object.c index f40dc5b17..f73e4e182 100644 --- a/jerry-core/ecma/operations/ecma-async-generator-object.c +++ b/jerry-core/ecma/operations/ecma-async-generator-object.c @@ -32,8 +32,6 @@ #include "vm-stack.h" #include "vm.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -126,6 +124,9 @@ ecma_async_yield_call (ecma_value_t function, /**< function (takes reference) */ /** * Perform an exception throw and call the approprite handler + * + * @return ecma value + * Returned value must be freed with ecma_free_value. */ static ecma_value_t ecma_async_yield_throw (vm_executable_object_t *async_generator_object_p, /**< async generator */ @@ -516,8 +517,6 @@ ecma_await_continue (vm_executable_object_t *executable_object_p, /**< executabl } } /* ecma_await_continue */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-async-generator-object.h b/jerry-core/ecma/operations/ecma-async-generator-object.h index b5a94cf4d..bcd58e0fd 100644 --- a/jerry-core/ecma/operations/ecma-async-generator-object.h +++ b/jerry-core/ecma/operations/ecma-async-generator-object.h @@ -20,8 +20,6 @@ #include "vm-defines.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -82,8 +80,6 @@ void ecma_async_generator_finalize (vm_executable_object_t *async_generator_obje ecma_value_t ecma_await_continue (vm_executable_object_t *async_generator_object_p, ecma_value_t value); -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-big-uint.c b/jerry-core/ecma/operations/ecma-big-uint.c index 990318e9e..3d058209d 100644 --- a/jerry-core/ecma/operations/ecma-big-uint.c +++ b/jerry-core/ecma/operations/ecma-big-uint.c @@ -1473,8 +1473,6 @@ ecma_big_uint_shift_right (ecma_extended_primitive_t *left_value_p, /**< left Bi return ecma_big_uint_increase_result (result_value_p); } /* ecma_big_uint_shift_right */ -#if JERRY_ESNEXT - /** * Compute the left value raised to the power of right value * @@ -1545,8 +1543,6 @@ ecma_big_uint_pow (ecma_extended_primitive_t *left_value_p, /**< left BigUInt va return result_p; } /* ecma_big_uint_pow */ -#endif /* JERRY_ESNEXT */ - /** * Perform bitwise operations on two BigUInt numbers * diff --git a/jerry-core/ecma/operations/ecma-big-uint.h b/jerry-core/ecma/operations/ecma-big-uint.h index 7eec2dd57..727d780f3 100644 --- a/jerry-core/ecma/operations/ecma-big-uint.h +++ b/jerry-core/ecma/operations/ecma-big-uint.h @@ -124,9 +124,7 @@ ecma_extended_primitive_t *ecma_big_uint_shift_left (ecma_extended_primitive_t * ecma_extended_primitive_t * ecma_big_uint_shift_right (ecma_extended_primitive_t *left_value_p, uint32_t right_value, bool increase_result); -#if JERRY_ESNEXT ecma_extended_primitive_t *ecma_big_uint_pow (ecma_extended_primitive_t *left_value_p, uint32_t right_value); -#endif /* JERRY_ESNEXT */ ecma_extended_primitive_t *ecma_big_uint_bitwise_op (uint32_t operation_and_options, ecma_extended_primitive_t *left_value_p, diff --git a/jerry-core/ecma/operations/ecma-bigint.c b/jerry-core/ecma/operations/ecma-bigint.c index 8ce37788a..7a4464e0c 100644 --- a/jerry-core/ecma/operations/ecma-bigint.c +++ b/jerry-core/ecma/operations/ecma-bigint.c @@ -1438,8 +1438,6 @@ ecma_bigint_shift (ecma_value_t left_value, /**< left BigInt value */ return ecma_make_extended_primitive_value (result_p, ECMA_TYPE_BIGINT); } /* ecma_bigint_shift */ -#if JERRY_ESNEXT - /** * Compute the left value raised to the power of right value * @@ -1528,8 +1526,6 @@ ecma_bigint_pow (ecma_value_t left_value, /**< left BigInt value */ return ecma_make_extended_primitive_value (result_p, ECMA_TYPE_BIGINT); } /* ecma_bigint_pow */ -#endif /* JERRY_ESNEXT */ - /** * Convert the result to an ecma value * diff --git a/jerry-core/ecma/operations/ecma-bigint.h b/jerry-core/ecma/operations/ecma-bigint.h index 33ad30d91..460ed7696 100644 --- a/jerry-core/ecma/operations/ecma-bigint.h +++ b/jerry-core/ecma/operations/ecma-bigint.h @@ -70,9 +70,7 @@ ecma_value_t ecma_bigint_add_sub (ecma_value_t left_value, ecma_value_t right_va ecma_value_t ecma_bigint_mul (ecma_value_t left_value, ecma_value_t right_value); ecma_value_t ecma_bigint_div_mod (ecma_value_t left_value, ecma_value_t right_value, bool is_mod); ecma_value_t ecma_bigint_shift (ecma_value_t left_value, ecma_value_t right_value, bool is_left); -#if JERRY_ESNEXT ecma_value_t ecma_bigint_pow (ecma_value_t left_value, ecma_value_t right_value); -#endif /* JERRY_ESNEXT */ ecma_value_t ecma_bigint_and (ecma_value_t left_value, ecma_value_t right_value); ecma_value_t ecma_bigint_or (ecma_value_t left_value, ecma_value_t right_value); diff --git a/jerry-core/ecma/operations/ecma-boolean-object.c b/jerry-core/ecma/operations/ecma-boolean-object.c index e33299c60..956aa4a7e 100644 --- a/jerry-core/ecma/operations/ecma-boolean-object.c +++ b/jerry-core/ecma/operations/ecma-boolean-object.c @@ -56,7 +56,6 @@ ecma_op_create_boolean_object (ecma_value_t arg) /**< argument passed to the Boo ecma_object_t *prototype_obj_p = ecma_builtin_get (proto_id); -#if JERRY_ESNEXT ecma_object_t *new_target = JERRY_CONTEXT (current_new_target_p); if (new_target) { @@ -67,7 +66,7 @@ ecma_op_create_boolean_object (ecma_value_t arg) /**< argument passed to the Boo return ECMA_VALUE_ERROR; } } -#endif /* JERRY_ESNEXT */ + ecma_object_t *object_p = ecma_create_object (prototype_obj_p, sizeof (ecma_extended_object_t), ECMA_OBJECT_TYPE_CLASS); @@ -75,12 +74,10 @@ ecma_op_create_boolean_object (ecma_value_t arg) /**< argument passed to the Boo ext_object_p->u.cls.type = ECMA_OBJECT_CLASS_BOOLEAN; ext_object_p->u.cls.u3.value = ecma_make_boolean_value (boolean_value); -#if JERRY_ESNEXT if (new_target) { ecma_deref_object (prototype_obj_p); } -#endif /* JERRY_ESNEXT */ return ecma_make_object_value (object_p); } /* ecma_op_create_boolean_object */ diff --git a/jerry-core/ecma/operations/ecma-comparison.c b/jerry-core/ecma/operations/ecma-comparison.c index 68135fa2d..5a32a2c63 100644 --- a/jerry-core/ecma/operations/ecma-comparison.c +++ b/jerry-core/ecma/operations/ecma-comparison.c @@ -196,7 +196,6 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */ return ecma_make_boolean_value (is_equal); } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ecma_is_value_symbol (x))) { if (!ecma_is_value_object (y)) @@ -209,14 +208,10 @@ ecma_op_abstract_equality_compare (ecma_value_t x, /**< first operand */ y ^= x; x ^= y; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (ecma_is_value_object (x)); - if (ecma_is_value_string (y) -#if JERRY_ESNEXT - || ecma_is_value_symbol (y) -#endif /* JERRY_ESNEXT */ + if (ecma_is_value_string (y) || ecma_is_value_symbol (y) #if JERRY_BUILTIN_BIGINT || ecma_is_value_bigint (y) #endif /* JERRY_BUILTIN_BIGINT */ @@ -254,10 +249,7 @@ bool ecma_op_strict_equality_compare (ecma_value_t x, /**< first operand */ ecma_value_t y) /**< second operand */ { - if (ecma_is_value_direct (x) || ecma_is_value_direct (y) -#if JERRY_ESNEXT - || ecma_is_value_symbol (x) || ecma_is_value_symbol (y) -#endif /* JERRY_ESNEXT */ + if (ecma_is_value_direct (x) || ecma_is_value_direct (y) || ecma_is_value_symbol (x) || ecma_is_value_symbol (y) || ecma_is_value_object (x) || ecma_is_value_object (y)) { JERRY_ASSERT (!ecma_is_value_direct (x) || ecma_is_value_undefined (x) || ecma_is_value_null (x) diff --git a/jerry-core/ecma/operations/ecma-container-object.c b/jerry-core/ecma/operations/ecma-container-object.c index f975c39a9..c9bc10cb3 100644 --- a/jerry-core/ecma/operations/ecma-container-object.c +++ b/jerry-core/ecma/operations/ecma-container-object.c @@ -383,7 +383,6 @@ ecma_op_container_create (const ecma_value_t *arguments_list_p, /**< arguments l ecma_value_t set_value = ecma_make_object_value (object_p); ecma_value_t result = set_value; -#if JERRY_ESNEXT if (arguments_list_len == 0) { return result; @@ -525,7 +524,6 @@ cleanup_adder: ecma_deref_object (adder_func_p); cleanup_object: ecma_deref_object (object_p); -#endif /* JERRY_ESNEXT */ return result; } /* ecma_op_container_create */ @@ -875,8 +873,6 @@ ecma_op_container_remove_weak_entry (ecma_object_t *object_p, /**< internal cont ecma_op_internal_buffer_delete (container_p, (ecma_container_pair_t *) entry_p, map_object_p->u.cls.u2.container_id); } /* ecma_op_container_remove_weak_entry */ -#if JERRY_ESNEXT - /** * The Create{Set, Map}Iterator Abstract operation * @@ -1137,8 +1133,6 @@ ecma_builtin_container_dispatch_routine (uint16_t builtin_routine_id, /**< built } } /* ecma_builtin_container_dispatch_routine */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-conversion.c b/jerry-core/ecma/operations/ecma-conversion.c index 9a71b2ff6..cf0c9fde2 100644 --- a/jerry-core/ecma/operations/ecma-conversion.c +++ b/jerry-core/ecma/operations/ecma-conversion.c @@ -337,12 +337,10 @@ ecma_op_to_numeric (ecma_value_t value, /**< ecma value */ return ECMA_VALUE_EMPTY; } -#if JERRY_ESNEXT if (ecma_is_value_symbol (value)) { return ecma_raise_type_error (ECMA_ERR_CONVERT_SYMBOL_TO_NUMBER); } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT if (ecma_is_value_bigint (value)) @@ -434,13 +432,11 @@ ecma_op_to_string (ecma_value_t value) /**< ecma value */ return ecma_get_magic_string (LIT_MAGIC_STRING_FALSE); } -#if JERRY_ESNEXT if (ecma_is_value_symbol (value)) { ecma_raise_type_error (ECMA_ERR_CONVERT_SYMBOL_TO_STRING); return NULL; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT if (ecma_is_value_bigint (value)) @@ -489,7 +485,6 @@ ecma_op_to_property_key (ecma_value_t value) /**< ecma value */ return key_p; } -#if JERRY_ESNEXT ecma_value_t key = ecma_op_to_primitive (value, ECMA_PREFERRED_TYPE_STRING); if (ECMA_IS_VALUE_ERROR (key)) @@ -507,11 +502,6 @@ ecma_op_to_property_key (ecma_value_t value) /**< ecma value */ ecma_free_value (key); return result; -#else /* !JERRY_ESNEXT */ - ecma_check_value_type_is_spec_defined (value); - - return ecma_op_to_string (value); -#endif /* JERRY_ESNEXT */ } /* ecma_op_to_property_key */ /** @@ -548,13 +538,11 @@ ecma_op_to_object (ecma_value_t value) /**< ecma value */ { return ecma_copy_value (value); } -#if JERRY_ESNEXT else if (ecma_is_value_symbol (value)) { proto_id = ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE; class_type = ECMA_OBJECT_CLASS_SYMBOL; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT else if (ecma_is_value_bigint (value)) { @@ -628,40 +616,33 @@ ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_des ecma_op_object_define_own_property (obj_p, ecma_get_magic_string (LIT_MAGIC_STRING_WRITABLE), &prop_desc); JERRY_ASSERT (ecma_is_value_true (completion)); } - else + else if (src_prop_desc_p->flags & (JERRY_PROP_IS_GET_DEFINED | JERRY_PROP_IS_SET_DEFINED)) { -#if !JERRY_ESNEXT - JERRY_ASSERT (src_prop_desc_p->flags & (JERRY_PROP_IS_GET_DEFINED | JERRY_PROP_IS_SET_DEFINED)); -#else /* JERRY_ESNEXT */ - if (src_prop_desc_p->flags & (JERRY_PROP_IS_GET_DEFINED | JERRY_PROP_IS_SET_DEFINED)) -#endif /* JERRY_ESNEXT */ + /* a. */ + if (src_prop_desc_p->get_p == NULL) { - /* a. */ - if (src_prop_desc_p->get_p == NULL) - { - prop_desc.value = ECMA_VALUE_UNDEFINED; - } - else - { - prop_desc.value = ecma_make_object_value (src_prop_desc_p->get_p); - } - - completion = ecma_op_object_define_own_property (obj_p, ecma_get_magic_string (LIT_MAGIC_STRING_GET), &prop_desc); - JERRY_ASSERT (ecma_is_value_true (completion)); - - /* b. */ - if (src_prop_desc_p->set_p == NULL) - { - prop_desc.value = ECMA_VALUE_UNDEFINED; - } - else - { - prop_desc.value = ecma_make_object_value (src_prop_desc_p->set_p); - } - - completion = ecma_op_object_define_own_property (obj_p, ecma_get_magic_string (LIT_MAGIC_STRING_SET), &prop_desc); - JERRY_ASSERT (ecma_is_value_true (completion)); + prop_desc.value = ECMA_VALUE_UNDEFINED; } + else + { + prop_desc.value = ecma_make_object_value (src_prop_desc_p->get_p); + } + + completion = ecma_op_object_define_own_property (obj_p, ecma_get_magic_string (LIT_MAGIC_STRING_GET), &prop_desc); + JERRY_ASSERT (ecma_is_value_true (completion)); + + /* b. */ + if (src_prop_desc_p->set_p == NULL) + { + prop_desc.value = ECMA_VALUE_UNDEFINED; + } + else + { + prop_desc.value = ecma_make_object_value (src_prop_desc_p->set_p); + } + + completion = ecma_op_object_define_own_property (obj_p, ecma_get_magic_string (LIT_MAGIC_STRING_SET), &prop_desc); + JERRY_ASSERT (ecma_is_value_true (completion)); } prop_desc.value = ecma_make_boolean_value (src_prop_desc_p->flags & JERRY_PROP_IS_ENUMERABLE); @@ -959,7 +940,6 @@ ecma_op_to_length (ecma_value_t value, /**< ecma value */ return value; } -#if JERRY_ESNEXT /* 2 */ ecma_number_t num; ecma_value_t length_num = ecma_op_to_integer (value, &num); @@ -987,23 +967,8 @@ ecma_op_to_length (ecma_value_t value, /**< ecma value */ /* 6 */ *length = (ecma_length_t) num; return ECMA_VALUE_EMPTY; -#else /* !JERRY_ESNEXT */ - /* In the case of ES5, ToLength(ES6) operation is the same as ToUint32(ES5) */ - ecma_number_t num; - ecma_value_t to_number = ecma_op_to_number (value, &num); - - /* 2 */ - if (ECMA_IS_VALUE_ERROR (to_number)) - { - return to_number; - } - - *length = ecma_number_to_uint32 (num); - return ECMA_VALUE_EMPTY; -#endif /* JERRY_ESNEXT */ } /* ecma_op_to_length */ -#if JERRY_ESNEXT /** * ToIndex operation. * @@ -1104,7 +1069,6 @@ ecma_op_create_list_from_array_like (ecma_value_t arr, /**< array value */ /* 9. */ return list_ptr; } /* ecma_op_create_list_from_array_like */ -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-conversion.h b/jerry-core/ecma/operations/ecma-conversion.h index 559b85520..a19ade548 100644 --- a/jerry-core/ecma/operations/ecma-conversion.h +++ b/jerry-core/ecma/operations/ecma-conversion.h @@ -62,10 +62,8 @@ ecma_value_t ecma_op_to_object (ecma_value_t value); bool ecma_op_is_integer (ecma_number_t value); ecma_value_t ecma_op_to_integer (ecma_value_t value, ecma_number_t *number_p); ecma_value_t ecma_op_to_length (ecma_value_t value, ecma_length_t *length); -#if JERRY_ESNEXT ecma_value_t ecma_op_to_index (ecma_value_t value, ecma_number_t *index); ecma_collection_t *ecma_op_create_list_from_array_like (ecma_value_t arr, bool prop_names_only); -#endif /* JERRY_ESNEXT */ ecma_object_t *ecma_op_from_property_descriptor (const ecma_property_descriptor_t *src_prop_desc_p); ecma_value_t ecma_op_to_property_descriptor (ecma_value_t obj_value, ecma_property_descriptor_t *out_prop_desc_p); diff --git a/jerry-core/ecma/operations/ecma-eval.c b/jerry-core/ecma/operations/ecma-eval.c index e4a2d7342..ac8e2c40f 100644 --- a/jerry-core/ecma/operations/ecma-eval.c +++ b/jerry-core/ecma/operations/ecma-eval.c @@ -81,9 +81,7 @@ ecma_op_eval_chars_buffer (void *source_p, /**< source code */ parse_opts |= ECMA_PARSE_EVAL; -#if JERRY_ESNEXT ECMA_CLEAR_LOCAL_PARSE_OPTS (); -#endif /* JERRY_ESNEXT */ ecma_compiled_code_t *bytecode_p = parser_parse_script (source_p, parse_opts, NULL); @@ -93,12 +91,6 @@ ecma_op_eval_chars_buffer (void *source_p, /**< source code */ } return vm_run_eval (bytecode_p, parse_opts); -#else /* !JERRY_PARSER */ - JERRY_UNUSED (code_p); - JERRY_UNUSED (code_buffer_size); - JERRY_UNUSED (parse_opts); - - return ecma_raise_syntax_error (ECMA_ERR_PARSER_NOT_SUPPORTED); #endif /* JERRY_PARSER */ } /* ecma_op_eval_chars_buffer */ diff --git a/jerry-core/ecma/operations/ecma-exceptions.c b/jerry-core/ecma/operations/ecma-exceptions.c index 9232a6800..675aaf92f 100644 --- a/jerry-core/ecma/operations/ecma-exceptions.c +++ b/jerry-core/ecma/operations/ecma-exceptions.c @@ -87,13 +87,12 @@ ecma_new_standard_error (jerry_error_t error_type, /**< native error type */ break; } -#if JERRY_ESNEXT case JERRY_ERROR_AGGREGATE: { prototype_id = ECMA_BUILTIN_ID_AGGREGATE_ERROR_PROTOTYPE; break; } -#endif /* JERRY_ESNEXT */ + case JERRY_ERROR_URI: { prototype_id = ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE; @@ -169,7 +168,6 @@ ecma_new_standard_error (jerry_error_t error_type, /**< native error type */ return error_object_p; } /* ecma_new_standard_error */ -#if JERRY_ESNEXT /** * aggregate-error object constructor. * @@ -273,8 +271,6 @@ ecma_new_aggregate_error (ecma_value_t error_list_val, /**< errors list */ return ecma_make_object_value (new_error_object_p); } /* ecma_new_aggregate_error */ -#endif /* JERRY_ESNEXT */ - /** * Return the error type for an Error object. * @@ -364,13 +360,11 @@ ecma_raise_standard_error_with_format (jerry_error_t error_type, /**< error type lit_magic_string_id_t class_name = ecma_object_get_class_name (arg_object_p); arg_string_p = ecma_get_magic_string (class_name); } -#if JERRY_ESNEXT else if (ecma_is_value_symbol (arg_val)) { ecma_value_t symbol_desc_value = ecma_get_symbol_descriptive_string (arg_val); arg_string_p = ecma_get_string_from_value (symbol_desc_value); } -#endif /* JERRY_ESNEXT */ else { arg_string_p = ecma_op_to_string (arg_val); @@ -504,8 +498,6 @@ ecma_raise_maximum_callstack_error (void) } /* ecma_raise_maximum_callstack_error */ #endif /* (JERRY_STACK_LIMIT != 0) */ -#if JERRY_ESNEXT - /** * Raise a AggregateError with the given errors and message. * @@ -522,8 +514,6 @@ ecma_raise_aggregate_error (ecma_value_t error_list_val, /**< errors list */ return ECMA_VALUE_ERROR; } /* ecma_raise_aggregate_error */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-exceptions.h b/jerry-core/ecma/operations/ecma-exceptions.h index d4e6477dc..c367a6bf5 100644 --- a/jerry-core/ecma/operations/ecma-exceptions.h +++ b/jerry-core/ecma/operations/ecma-exceptions.h @@ -42,10 +42,8 @@ ecma_value_t ecma_raise_uri_error (ecma_error_msg_t msg); #if (JERRY_STACK_LIMIT != 0) ecma_value_t ecma_raise_maximum_callstack_error (void); #endif /* (JERRY_STACK_LIMIT != 0) */ -#if JERRY_ESNEXT ecma_value_t ecma_new_aggregate_error (ecma_value_t error_list_val, ecma_value_t message_val); ecma_value_t ecma_raise_aggregate_error (ecma_value_t error_list_val, ecma_value_t message_val); -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-function-object.c b/jerry-core/ecma/operations/ecma-function-object.c index 243e31ad4..1e24384c9 100644 --- a/jerry-core/ecma/operations/ecma-function-object.c +++ b/jerry-core/ecma/operations/ecma-function-object.c @@ -41,7 +41,6 @@ * @{ */ -#if JERRY_ESNEXT /** * SetFunctionName operation * @@ -91,7 +90,6 @@ ecma_op_function_form_name (ecma_string_t *prop_name_p, /**< property name */ return ecma_make_string_value (prop_name_p); } /* ecma_op_function_form_name */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY /** @@ -180,7 +178,6 @@ ecma_object_check_constructor (ecma_object_t *obj_p) /**< ecma object */ if (JERRY_LIKELY (type == ECMA_OBJECT_TYPE_FUNCTION)) { -#if JERRY_ESNEXT const ecma_compiled_code_t *byte_code_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) obj_p); if (!CBC_FUNCTION_IS_CONSTRUCTABLE (byte_code_p->status_flags)) @@ -226,7 +223,6 @@ ecma_object_check_constructor (ecma_object_t *obj_p) /**< ecma object */ return ECMA_ERR_EMPTY; #endif /* JERRY_ERROR_MESSAGES */ } -#endif /* JERRY_NEXT */ return ECMA_IS_VALID_CONSTRUCTOR; } @@ -253,9 +249,7 @@ ecma_object_check_constructor (ecma_object_t *obj_p) /**< ecma object */ return ECMA_ERR_BULTIN_ROUTINES_HAVE_NO_CONSTRUCTOR; } -#if JERRY_ESNEXT JERRY_ASSERT (((ecma_extended_object_t *) obj_p)->u.built_in.id != ECMA_BUILTIN_ID_HANDLER); -#endif /* !JERRY_ESNEXT */ } return ECMA_IS_VALID_CONSTRUCTOR; @@ -487,11 +481,9 @@ ecma_op_create_dynamic_function (const ecma_value_t *arguments_list_p, /**< argu return ECMA_VALUE_ERROR; } -#if JERRY_ESNEXT ecma_value_t *func_name_p; func_name_p = ecma_compiled_code_resolve_function_name ((const ecma_compiled_code_t *) bytecode_p); *func_name_p = ecma_make_magic_string_value (LIT_MAGIC_STRING_ANONYMOUS); -#endif /* JERRY_ESNEXT */ ecma_object_t *global_object_p = ecma_builtin_get_global (); @@ -501,8 +493,6 @@ ecma_op_create_dynamic_function (const ecma_value_t *arguments_list_p, /**< argu ecma_object_t *global_env_p = ecma_get_global_environment (global_object_p); ecma_builtin_id_t fallback_proto = ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE; - -#if JERRY_ESNEXT ecma_object_t *new_target_p = JERRY_CONTEXT (current_new_target_p); ecma_builtin_id_t fallback_ctor = ECMA_BUILTIN_ID_FUNCTION; @@ -535,14 +525,11 @@ ecma_op_create_dynamic_function (const ecma_value_t *arguments_list_p, /**< argu ecma_bytecode_deref (bytecode_p); return ECMA_VALUE_ERROR; } -#endif /* JERRY_ESNEXT */ ecma_object_t *func_obj_p = ecma_op_create_function_object (global_env_p, bytecode_p, fallback_proto); -#if JERRY_ESNEXT ECMA_SET_NON_NULL_POINTER (func_obj_p->u2.prototype_cp, proto); ecma_deref_object (proto); -#endif /* JERRY_ESNEXT */ ecma_bytecode_deref (bytecode_p); return ecma_make_object_value (func_obj_p); @@ -562,8 +549,6 @@ ecma_op_create_simple_function_object (ecma_object_t *scope_p, /**< function's s return ecma_op_create_function_object (scope_p, bytecode_data_p, ECMA_BUILTIN_ID_FUNCTION_PROTOTYPE); } /* ecma_op_create_simple_function_object */ -#if JERRY_ESNEXT - /** * Create a function object with the appropriate prototype. * @@ -666,8 +651,6 @@ ecma_op_create_arrow_function_object (ecma_object_t *scope_p, /**< function's sc return func_p; } /* ecma_op_create_arrow_function_object */ -#endif /* JERRY_ESNEXT */ - /** * External function object creation operation. * @@ -700,8 +683,6 @@ ecma_op_create_external_function_object (ecma_native_handler_t handler_cb) /**< return function_obj_p; } /* ecma_op_create_external_function_object */ -#if JERRY_ESNEXT - /** * Create built-in native handler object. * @@ -727,8 +708,6 @@ ecma_op_create_native_handler (ecma_native_handler_id_t id, /**< handler id */ return function_obj_p; } /* ecma_op_create_native_handler */ -#endif /* JERRY_ESNEXT */ - /** * Get compiled code of a function object. * @@ -809,7 +788,6 @@ ecma_op_function_get_function_realm (ecma_object_t *func_obj_p) /**< function ob return ECMA_GET_INTERNAL_VALUE_POINTER (ecma_global_object_t, native_function_p->realm_value); } -#if JERRY_ESNEXT if (type == ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION) { ecma_value_t script_value = ((ecma_extended_object_t *) func_obj_p)->u.constructor_function.script_value; @@ -817,7 +795,6 @@ ecma_op_function_get_function_realm (ecma_object_t *func_obj_p) /**< function ob return (ecma_global_object_t *) script_p->realm_p; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY if (ECMA_OBJECT_IS_PROXY (func_obj_p)) @@ -935,8 +912,6 @@ ecma_op_function_has_instance (ecma_object_t *func_obj_p, /**< Function object * return result; } /* ecma_op_function_has_instance */ -#if JERRY_ESNEXT - /** * GetSuperConstructor operation for class methods * @@ -965,7 +940,6 @@ ecma_op_function_get_super_constructor (ecma_object_t *func_obj_p) /**< function return ecma_make_object_value (super_ctor_p); } /* ecma_op_function_get_super_constructor */ -#endif /* JERRY_ESNEXT */ /** * Ordinary internal method: GetPrototypeFromConstructor (constructor, intrinsicDefaultProto) @@ -1024,7 +998,6 @@ ecma_op_get_prototype_from_constructor (ecma_object_t *ctor_obj_p, /**< construc return proto_obj_p; } /* ecma_op_get_prototype_from_constructor */ -#if JERRY_ESNEXT /** * Perform a JavaScript class function object method call. * @@ -1092,8 +1065,6 @@ exit: return ret_value; } /* ecma_op_function_call_constructor */ -#endif /* JERRY_ESNEXT */ - /** * Perform a JavaScript function object method call. * @@ -1140,7 +1111,6 @@ ecma_op_function_call_simple (ecma_object_t *func_obj_p, /**< Function object */ /* 1. */ switch (CBC_FUNCTION_GET_TYPE (status_flags)) { -#if JERRY_ESNEXT case CBC_FUNCTION_CONSTRUCTOR: { return ecma_op_function_call_constructor (&shared_args, scope_p, this_binding); @@ -1168,13 +1138,9 @@ ecma_op_function_call_simple (ecma_object_t *func_obj_p, /**< Function object */ } break; } - -#endif /* JERRY_ESNEXT */ default: { -#if JERRY_ESNEXT shared_args.header.status_flags |= VM_FRAME_CTX_SHARED_NON_ARROW_FUNC; -#endif /* JERRY_ESNEXT */ if (status_flags & CBC_CODE_FLAGS_STRICT_MODE) { @@ -1281,12 +1247,8 @@ ecma_op_function_call_native (ecma_object_t *func_obj_p, /**< Function object */ call_info.function = ecma_make_object_value (func_obj_p); call_info.this_value = this_arg_value; -#if JERRY_ESNEXT ecma_object_t *new_target_p = JERRY_CONTEXT (current_new_target_p); call_info.new_target = (new_target_p == NULL) ? ECMA_VALUE_UNDEFINED : ecma_make_object_value (new_target_p); -#else /* JERRY_ESNEXT */ - call_info.new_target = ECMA_VALUE_UNDEFINED; -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (native_function_p->native_handler_cb != NULL); ecma_value_t ret_value = native_function_p->native_handler_cb (&call_info, arguments_list_p, arguments_list_len); @@ -1428,14 +1390,12 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ ECMA_CHECK_STACK_USAGE (); -#if JERRY_ESNEXT ecma_object_t *old_new_target_p = JERRY_CONTEXT (current_new_target_p); if (JERRY_UNLIKELY (!(JERRY_CONTEXT (status_flags) & ECMA_STATUS_DIRECT_EVAL))) { JERRY_CONTEXT (current_new_target_p) = NULL; } -#endif /* JERRY_ESNEXT */ ecma_value_t result; @@ -1458,13 +1418,11 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ break; } #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION: { result = ecma_raise_type_error (ECMA_ERR_CLASS_CONSTRUCTOR_NEW); break; } -#endif /* JERRY_ESNEXT */ case ECMA_OBJECT_TYPE_NATIVE_FUNCTION: { result = ecma_op_function_call_native (func_obj_p, this_arg_value, arguments_list_p, arguments_list_len); @@ -1482,9 +1440,7 @@ ecma_op_function_call (ecma_object_t *func_obj_p, /**< Function object */ } } -#if JERRY_ESNEXT JERRY_CONTEXT (current_new_target_p) = old_new_target_p; -#endif /* JERRY_ESNEXT */ return result; } /* ecma_op_function_call */ @@ -1506,13 +1462,11 @@ ecma_op_function_construct_simple (ecma_object_t *func_obj_p, /**< Function obje ecma_object_t *new_this_obj_p = NULL; ecma_value_t this_arg; -#if JERRY_ESNEXT ecma_extended_object_t *ext_func_obj_p = (ecma_extended_object_t *) func_obj_p; /* 5. */ if (!ECMA_GET_THIRD_BIT_FROM_POINTER_TAG (ext_func_obj_p->u.function.scope_cp)) { -#endif /* JERRY_ESNEXT */ /* 5.a */ ecma_object_t *proto_p = ecma_op_get_prototype_from_constructor (new_target_p, ECMA_BUILTIN_ID_OBJECT_PROTOTYPE); @@ -1525,7 +1479,6 @@ ecma_op_function_construct_simple (ecma_object_t *func_obj_p, /**< Function obje new_this_obj_p = ecma_create_object (proto_p, 0, ECMA_OBJECT_TYPE_GENERAL); ecma_deref_object (proto_p); this_arg = ecma_make_object_value (new_this_obj_p); -#if JERRY_ESNEXT } else { @@ -1535,25 +1488,19 @@ ecma_op_function_construct_simple (ecma_object_t *func_obj_p, /**< Function obje /* 6. */ ecma_object_t *old_new_target_p = JERRY_CONTEXT (current_new_target_p); JERRY_CONTEXT (current_new_target_p) = new_target_p; -#endif /* JERRY_ESNEXT */ ecma_value_t ret_value = ecma_op_function_call_simple (func_obj_p, this_arg, arguments_list_p, arguments_list_len); -#if JERRY_ESNEXT JERRY_CONTEXT (current_new_target_p) = old_new_target_p; -#endif /* JERRY_ESNEXT */ /* 13.a */ if (ECMA_IS_VALUE_ERROR (ret_value) || ecma_is_value_object (ret_value)) { -#if JERRY_ESNEXT if (new_this_obj_p != NULL) { ecma_deref_object (new_this_obj_p); } -#else /* !JERRY_ESNEXT */ - ecma_deref_object (new_this_obj_p); -#endif /* JERRY_ESNEXT */ + return ret_value; } @@ -1584,16 +1531,12 @@ ecma_op_function_construct_built_in (ecma_object_t *func_obj_p, /**< Function ob JERRY_CONTEXT (global_object_p) = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_global_object_t, realm_value); #endif /* JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT ecma_object_t *old_new_target = JERRY_CONTEXT (current_new_target_p); JERRY_CONTEXT (current_new_target_p) = new_target_p; -#endif /* JERRY_ESNEXT */ ecma_value_t ret_value = ecma_builtin_dispatch_construct (func_obj_p, arguments_list_p, arguments_list_len); -#if JERRY_ESNEXT JERRY_CONTEXT (current_new_target_p) = old_new_target; -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_REALMS JERRY_CONTEXT (global_object_p) = saved_global_object_p; @@ -1637,8 +1580,6 @@ ecma_op_function_construct_bound (ecma_object_t *func_obj_p, /**< Function objec return ret_value; } /* ecma_op_function_construct_bound */ -#if JERRY_ESNEXT - /** * [[Construct]] internal method for class implicit constructor objects * @@ -1704,8 +1645,6 @@ ecma_op_function_construct_constructor (ecma_object_t *func_obj_p, /**< Function return result; } /* ecma_op_function_construct_constructor */ -#endif /* JERRY_ESNEXT */ - /** * [[Construct]] internal method for external function objects * @@ -1731,16 +1670,12 @@ ecma_op_function_construct_native (ecma_object_t *func_obj_p, /**< Function obje ecma_value_t this_arg = ecma_make_object_value (new_this_obj_p); ecma_deref_object (proto_p); -#if JERRY_ESNEXT ecma_object_t *old_new_target_p = JERRY_CONTEXT (current_new_target_p); JERRY_CONTEXT (current_new_target_p) = new_target_p; -#endif /* JERRY_ESNEXT */ ecma_value_t ret_value = ecma_op_function_call_native (func_obj_p, this_arg, arguments_list_p, arguments_list_len); -#if JERRY_ESNEXT JERRY_CONTEXT (current_new_target_p) = old_new_target_p; -#endif /* JERRY_ESNEXT */ if (ECMA_IS_VALUE_ERROR (ret_value) || ecma_is_value_object (ret_value)) { @@ -1787,12 +1722,10 @@ ecma_op_function_construct (ecma_object_t *func_obj_p, /**< Function object */ return ecma_proxy_object_construct (func_obj_p, new_target_p, arguments_list_p, arguments_list_len); } #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT case ECMA_OBJECT_TYPE_CONSTRUCTOR_FUNCTION: { return ecma_op_function_construct_constructor (func_obj_p, new_target_p, arguments_list_p, arguments_list_len); } -#endif /* JERRY_ESNEXT */ case ECMA_OBJECT_TYPE_BOUND_FUNCTION: { return ecma_op_function_construct_bound (func_obj_p, new_target_p, arguments_list_p, arguments_list_len); @@ -1844,7 +1777,6 @@ ecma_op_lazy_instantiate_prototype_object (ecma_object_t *object_p) /**< the fun ecma_object_t *proto_object_p = NULL; bool init_constructor = true; -#if JERRY_ESNEXT if (ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_FUNCTION) { const ecma_compiled_code_t *byte_code_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) object_p); @@ -1882,11 +1814,8 @@ ecma_op_lazy_instantiate_prototype_object (ecma_object_t *object_p) /**< the fun init_constructor = false; } } -#endif /* JERRY_ESNEXT */ -#if JERRY_ESNEXT if (proto_object_p == NULL) -#endif /* JERRY_ESNEXT */ { ecma_object_t *prototype_p; @@ -1943,7 +1872,6 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**< { JERRY_ASSERT (ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_FUNCTION); -#if JERRY_ESNEXT if (ecma_compare_ecma_string_to_magic_id (property_name_p, LIT_MAGIC_STRING_LENGTH)) { ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; @@ -2011,7 +1939,6 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**< value_p->value = ecma_copy_value (value); return value_prop_p; } -#endif /* JERRY_ESNEXT */ if (ecma_compare_ecma_string_to_magic_id (property_name_p, LIT_MAGIC_STRING_PROTOTYPE) && ecma_get_object_type (object_p) == ECMA_OBJECT_TYPE_FUNCTION) @@ -2026,7 +1953,6 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**< const ecma_compiled_code_t *bytecode_data_p; bytecode_data_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) object_p); -#if JERRY_ESNEXT if (!(bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) && CBC_FUNCTION_GET_TYPE (bytecode_data_p->status_flags) == CBC_FUNCTION_NORMAL) { @@ -2037,22 +1963,6 @@ ecma_op_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, /**< value_p->value = is_arguments ? ECMA_VALUE_NULL : ECMA_VALUE_UNDEFINED; return value_prop_p; } -#else /* !JERRY_ESNEXT */ - if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE) - { - ecma_object_t *thrower_p = ecma_builtin_get (ECMA_BUILTIN_ID_TYPE_ERROR_THROWER); - - ecma_property_t *caller_prop_p; - /* The property_name_p argument contains the name. */ - ecma_create_named_accessor_property (object_p, - property_name_p, - thrower_p, - thrower_p, - ECMA_PROPERTY_BUILT_IN_FIXED, - &caller_prop_p); - return caller_prop_p; - } -#endif /* JERRY_ESNEXT */ } return NULL; @@ -2109,7 +2019,6 @@ ecma_op_bound_function_try_to_lazy_instantiate_property (ecma_object_t *object_p args_length = ecma_get_integer_from_value (args_len_or_this); } -#if JERRY_ESNEXT if (ECMA_GET_FIRST_BIT_FROM_POINTER_TAG (bound_func_p->header.u.bound_function.target_function)) { return NULL; @@ -2117,24 +2026,6 @@ ecma_op_bound_function_try_to_lazy_instantiate_property (ecma_object_t *object_p length_attributes = ECMA_PROPERTY_BUILT_IN_CONFIGURABLE; length = ecma_get_number_from_value (bound_func_p->target_length) - (args_length - 1); -#else /* !JERRY_ESNEXT */ - length_attributes = ECMA_PROPERTY_BUILT_IN_FIXED; - - ecma_object_t *target_func_p; - target_func_p = - ECMA_GET_NON_NULL_POINTER_FROM_POINTER_TAG (ecma_object_t, bound_func_p->header.u.bound_function.target_function); - - if (ecma_object_get_class_name (target_func_p) == LIT_MAGIC_STRING_FUNCTION_UL) - { - /* The property_name_p argument contains the 'length' string. */ - ecma_value_t get_len_value = ecma_op_object_get (target_func_p, property_name_p); - - JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (get_len_value)); - JERRY_ASSERT (ecma_is_value_integer_number (get_len_value)); - - length = (ecma_number_t) (ecma_get_integer_from_value (get_len_value) - (args_length - 1)); - } -#endif /* JERRY_ESNEXT */ if (length < 0) { @@ -2149,29 +2040,9 @@ ecma_op_bound_function_try_to_lazy_instantiate_property (ecma_object_t *object_p return len_prop_p; } -#if !JERRY_ESNEXT - if (ecma_compare_ecma_string_to_magic_id (property_name_p, LIT_MAGIC_STRING_CALLER) - || ecma_compare_ecma_string_to_magic_id (property_name_p, LIT_MAGIC_STRING_ARGUMENTS)) - { - ecma_object_t *thrower_p = ecma_builtin_get (ECMA_BUILTIN_ID_TYPE_ERROR_THROWER); - - ecma_property_t *caller_prop_p; - /* The string_p argument contans the name. */ - ecma_create_named_accessor_property (object_p, - property_name_p, - thrower_p, - thrower_p, - ECMA_PROPERTY_BUILT_IN_FIXED, - &caller_prop_p); - return caller_prop_p; - } -#endif /* !JERRY_ESNEXT */ - return NULL; } /* ecma_op_bound_function_try_to_lazy_instantiate_property */ -#if JERRY_ESNEXT - /** * Delete configurable properties of functions. */ @@ -2211,8 +2082,6 @@ ecma_op_bound_function_delete_built_in_property (ecma_object_t *object_p, /**< o ECMA_SET_FIRST_BIT_TO_POINTER_TAG (bound_func_p->header.u.bound_function.target_function); } /* ecma_op_bound_function_delete_built_in_property */ -#endif /* JERRY_ESNEXT */ - /** * List names of a Function object's lazy instantiated properties, * adding them to corresponding string collections @@ -2234,7 +2103,6 @@ ecma_op_function_list_lazy_property_names (ecma_object_t *object_p, /**< functio const ecma_compiled_code_t *bytecode_data_p; bytecode_data_p = ecma_op_function_get_compiled_code ((ecma_extended_object_t *) object_p); -#if JERRY_ESNEXT ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; if (!ECMA_GET_FIRST_BIT_FROM_POINTER_TAG (ext_func_p->u.function.scope_cp)) @@ -2251,25 +2119,14 @@ ecma_op_function_list_lazy_property_names (ecma_object_t *object_p, /**< functio ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_NAME)); prop_counter_p->string_named_props++; } -#else /* !JERRY_ESNEXT */ - /* 'length' property is non-enumerable (ECMA-262 v5, 13.2.5) */ - ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH)); - prop_counter_p->string_named_props++; -#endif /* JERRY_ESNEXT */ -#if JERRY_ESNEXT if (!CBC_FUNCTION_HAS_PROTOTYPE (bytecode_data_p->status_flags) || (CBC_FUNCTION_GET_TYPE (bytecode_data_p->status_flags) == CBC_FUNCTION_CONSTRUCTOR)) { return; } - bool append_caller_and_arguments = !(bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE); -#else /* !JERRY_ESNEXT */ - bool append_caller_and_arguments = (bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE); -#endif /* JERRY_ESNEXT */ - - if (append_caller_and_arguments) + if (!(bytecode_data_p->status_flags & CBC_CODE_FLAGS_STRICT_MODE)) { /* 'arguments' property is non-enumerable (ECMA-262 v5, 13.2.5) */ ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_ARGUMENTS)); @@ -2329,7 +2186,6 @@ ecma_op_bound_function_list_lazy_property_names (ecma_object_t *object_p, /**< b return; } -#if JERRY_ESNEXT /* Unintialized 'length' property is non-enumerable (ECMA-262 v6, 19.2.4.1) */ ecma_bound_function_t *bound_func_p = (ecma_bound_function_t *) object_p; if (!ECMA_GET_FIRST_BIT_FROM_POINTER_TAG (bound_func_p->header.u.bound_function.target_function)) @@ -2337,12 +2193,6 @@ ecma_op_bound_function_list_lazy_property_names (ecma_object_t *object_p, /**< b ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH)); prop_counter_p->string_named_props++; } -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (object_p); - /* 'length' property is non-enumerable (ECMA-262 v5, 13.2.5) */ - ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_LENGTH)); - prop_counter_p->string_named_props++; -#endif /* JERRY_ESNEXT */ /* 'caller' property is non-enumerable (ECMA-262 v5, 13.2.5) */ ecma_collection_push_back (prop_names_p, ecma_make_magic_string_value (LIT_MAGIC_STRING_CALLER)); diff --git a/jerry-core/ecma/operations/ecma-function-object.h b/jerry-core/ecma/operations/ecma-function-object.h index 3f9c602d2..08300f57e 100644 --- a/jerry-core/ecma/operations/ecma-function-object.h +++ b/jerry-core/ecma/operations/ecma-function-object.h @@ -29,9 +29,7 @@ * @{ */ -#if JERRY_ESNEXT ecma_value_t ecma_op_function_form_name (ecma_string_t *prop_name_p, char *prefix_p, lit_utf8_size_t prefix_size); -#endif /* JERRY_ESNEXT */ bool ecma_op_is_callable (ecma_value_t value); #if JERRY_BUILTIN_PROXY @@ -67,7 +65,6 @@ ecma_value_t ecma_op_create_dynamic_function (const ecma_value_t *arguments_list uint32_t arguments_list_len, ecma_parse_opts_t opts); -#if JERRY_ESNEXT ecma_value_t ecma_op_function_get_super_constructor (ecma_object_t *func_obj_p); ecma_object_t *ecma_op_create_any_function_object (ecma_object_t *scope_p, const ecma_compiled_code_t *bytecode_data_p); @@ -78,8 +75,6 @@ ecma_object_t *ecma_op_create_arrow_function_object (ecma_object_t *scope_p, ecma_object_t *ecma_op_create_native_handler (ecma_native_handler_id_t id, size_t object_size); -#endif /* JERRY_ESNEXT */ - ecma_object_t *ecma_op_get_prototype_from_constructor (ecma_object_t *ctor_obj_p, ecma_builtin_id_t default_proto_id); ecma_value_t ecma_op_function_has_instance (ecma_object_t *func_obj_p, ecma_value_t value); @@ -108,11 +103,9 @@ ecma_property_t *ecma_op_external_function_try_to_lazy_instantiate_property (ecm ecma_property_t *ecma_op_bound_function_try_to_lazy_instantiate_property (ecma_object_t *object_p, ecma_string_t *property_name_p); -#if JERRY_ESNEXT void ecma_op_function_delete_built_in_property (ecma_object_t *object_p, ecma_string_t *property_name_p); void ecma_op_bound_function_delete_built_in_property (ecma_object_t *object_p, ecma_string_t *property_name_p); -#endif /* JERRY_ESNEXT */ void ecma_op_function_list_lazy_property_names (ecma_object_t *object_p, ecma_collection_t *prop_names_p, diff --git a/jerry-core/ecma/operations/ecma-get-put-value.c b/jerry-core/ecma/operations/ecma-get-put-value.c index 41bdf37d1..39d4d3731 100644 --- a/jerry-core/ecma/operations/ecma-get-put-value.c +++ b/jerry-core/ecma/operations/ecma-get-put-value.c @@ -62,18 +62,15 @@ ecma_op_get_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme *ref_base_lex_env_p = lex_env_p; ecma_property_value_t *property_value_p = ECMA_PROPERTY_VALUE_PTR (property_p); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (property_value_p->value == ECMA_VALUE_UNINITIALIZED)) { return ecma_raise_reference_error (ECMA_ERR_LET_CONST_NOT_INITIALIZED); } -#endif /* JERRY_ESNEXT */ return ecma_fast_copy_value (property_value_p->value); } break; } -#if JERRY_ESNEXT case ECMA_LEXICAL_ENVIRONMENT_CLASS: { #if JERRY_MODULE_SYSTEM @@ -102,7 +99,6 @@ ecma_op_get_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme #endif /* JERRY_MODULE_SYSTEM */ break; } -#endif /* JERRY_ESNEXT */ default: { JERRY_ASSERT (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); @@ -188,12 +184,10 @@ ecma_op_get_value_object_base (ecma_value_t base_value, /**< base value */ id = ECMA_BUILTIN_ID_NUMBER_PROTOTYPE; #endif /* JERRY_BUILTIN_NUMBER */ } -#if JERRY_ESNEXT else if (ecma_is_value_symbol (base_value)) { id = ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT else if (ecma_is_value_bigint (base_value)) { @@ -234,7 +228,6 @@ ecma_op_put_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme { switch (ecma_get_lex_env_type (lex_env_p)) { -#if JERRY_ESNEXT case ECMA_LEXICAL_ENVIRONMENT_CLASS: { if (!ECMA_LEX_ENV_CLASS_IS_MODULE (lex_env_p)) @@ -243,14 +236,12 @@ ecma_op_put_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme } /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE: { ecma_property_t *property_p = ecma_find_named_property (lex_env_p, name_p); if (property_p != NULL) { -#if JERRY_ESNEXT ecma_property_value_t *property_value_p = ECMA_PROPERTY_VALUE_PTR (property_p); JERRY_ASSERT (!(*property_p & ECMA_PROPERTY_FLAG_WRITABLE) || (*property_p & ECMA_PROPERTY_FLAG_DATA)); @@ -260,14 +251,6 @@ ecma_op_put_value_lex_env_base (ecma_object_t *lex_env_p, /**< lexical environme ecma_named_data_property_assign_value (lex_env_p, property_value_p, value); return ECMA_VALUE_EMPTY; } -#else /* JERRY_ESNEXT */ - if (ecma_is_property_writable (*property_p)) - { - ecma_property_value_t *property_value_p = ECMA_PROPERTY_VALUE_PTR (property_p); - ecma_named_data_property_assign_value (lex_env_p, property_value_p, value); - return ECMA_VALUE_EMPTY; - } -#endif /* JERRY_ESNEXT */ return ecma_op_raise_set_binding_error (property_p, is_strict); } diff --git a/jerry-core/ecma/operations/ecma-iterator-object.c b/jerry-core/ecma/operations/ecma-iterator-object.c index 21d88724b..3e8ef7eac 100644 --- a/jerry-core/ecma/operations/ecma-iterator-object.c +++ b/jerry-core/ecma/operations/ecma-iterator-object.c @@ -36,8 +36,6 @@ * @{ */ -#if JERRY_ESNEXT - /** * Implementation of 'CreateArrayFromList' specialized for iterators * @@ -715,8 +713,6 @@ ecma_async_from_sync_iterator_unwrap_cb (ecma_object_t *function_obj_p, /**< fun return ecma_create_iter_result_object (arg, done); } /* ecma_async_from_sync_iterator_unwrap_cb */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-iterator-object.h b/jerry-core/ecma/operations/ecma-iterator-object.h index f0903508b..0963b03fd 100644 --- a/jerry-core/ecma/operations/ecma-iterator-object.h +++ b/jerry-core/ecma/operations/ecma-iterator-object.h @@ -18,8 +18,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -78,8 +76,6 @@ ecma_value_t ecma_async_from_sync_iterator_unwrap_cb (ecma_object_t *function_ob const ecma_value_t args_p[], const uint32_t args_count); -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-jobqueue.c b/jerry-core/ecma/operations/ecma-jobqueue.c index 990e3b7a9..3cccfa9b5 100644 --- a/jerry-core/ecma/operations/ecma-jobqueue.c +++ b/jerry-core/ecma/operations/ecma-jobqueue.c @@ -26,8 +26,6 @@ #include "opcodes.h" #include "vm-stack.h" -#if JERRY_ESNEXT - /** * Mask for job queue type. */ @@ -637,4 +635,3 @@ ecma_free_all_enqueued_jobs (void) * @} * @} */ -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/operations/ecma-jobqueue.h b/jerry-core/ecma/operations/ecma-jobqueue.h index 72128c2eb..b56027ca5 100644 --- a/jerry-core/ecma/operations/ecma-jobqueue.h +++ b/jerry-core/ecma/operations/ecma-jobqueue.h @@ -18,8 +18,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -61,5 +59,5 @@ ecma_value_t ecma_process_all_enqueued_jobs (void); * @} * @} */ -#endif /* JERRY_ESNEXT */ + #endif /* !ECMA_JOB_QUEUE_H */ diff --git a/jerry-core/ecma/operations/ecma-lex-env.c b/jerry-core/ecma/operations/ecma-lex-env.c index ea1e8e297..0b04a38f0 100644 --- a/jerry-core/ecma/operations/ecma-lex-env.c +++ b/jerry-core/ecma/operations/ecma-lex-env.c @@ -69,7 +69,6 @@ ecma_get_global_environment (ecma_object_t *global_object_p) /**< global object return ECMA_GET_NON_NULL_POINTER (ecma_object_t, ((ecma_global_object_t *) global_object_p)->global_env_cp); } /* ecma_get_global_environment */ -#if JERRY_ESNEXT /** * Create the global lexical block on top of the global environment. */ @@ -88,7 +87,6 @@ ecma_create_global_lexical_block (ecma_object_t *global_object_p) /**< global ob ecma_deref_object (global_scope_p); } } /* ecma_create_global_lexical_block */ -#endif /* JERRY_ESNEXT */ /** * Raise the appropriate error when setting a binding is failed @@ -101,7 +99,6 @@ ecma_op_raise_set_binding_error (ecma_property_t *property_p, /**< property */ { JERRY_UNUSED (property_p); -#if JERRY_ESNEXT const ecma_property_t expected_bits = (ECMA_PROPERTY_FLAG_DATA | ECMA_PROPERTY_FLAG_ENUMERABLE); if ((*property_p & expected_bits) == expected_bits) @@ -117,7 +114,6 @@ ecma_op_raise_set_binding_error (ecma_property_t *property_p, /**< property */ return ecma_raise_type_error (ECMA_ERR_CONSTANT_BINDINGS_CANNOT_BE_REASSIGNED); } -#endif /* JERRY_ESNEXT */ if (is_strict) { @@ -135,12 +131,8 @@ ecma_op_raise_set_binding_error (ecma_property_t *property_p, /**< property */ ecma_object_t * ecma_get_global_scope (ecma_object_t *global_object_p) /**< global object */ { -#if JERRY_ESNEXT JERRY_ASSERT (global_object_p != NULL && ecma_builtin_is_global (global_object_p)); return ECMA_GET_NON_NULL_POINTER (ecma_object_t, ((ecma_global_object_t *) global_object_p)->global_scope_cp); -#else /* !JERRY_ESNEXT */ - return ecma_get_global_environment (global_object_p); -#endif /* !JERRY_ESNEXT */ } /* ecma_get_global_scope */ /** @@ -164,7 +156,6 @@ ecma_op_has_binding (ecma_object_t *lex_env_p, /**< lexical environment */ switch (lex_env_type) { -#if JERRY_ESNEXT case ECMA_LEXICAL_ENVIRONMENT_CLASS: { if (!ECMA_LEX_ENV_CLASS_IS_MODULE (lex_env_p)) @@ -173,7 +164,6 @@ ecma_op_has_binding (ecma_object_t *lex_env_p, /**< lexical environment */ } /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE: { ecma_property_t *property_p = ecma_find_named_property (lex_env_p, name_p); @@ -294,7 +284,6 @@ ecma_op_set_mutable_binding (ecma_object_t *lex_env_p, /**< lexical environment switch (ecma_get_lex_env_type (lex_env_p)) { -#if JERRY_ESNEXT case ECMA_LEXICAL_ENVIRONMENT_CLASS: { if (!ECMA_LEX_ENV_CLASS_IS_MODULE (lex_env_p)) @@ -303,7 +292,6 @@ ecma_op_set_mutable_binding (ecma_object_t *lex_env_p, /**< lexical environment } /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE: { ecma_property_t *property_p = ecma_find_named_property (lex_env_p, name_p); @@ -502,7 +490,6 @@ ecma_op_create_immutable_binding (ecma_object_t *lex_env_p, /**< lexical environ prop_value_p->value = ecma_copy_value_if_not_object (value); } /* ecma_op_create_immutable_binding */ -#if JERRY_ESNEXT /** * InitializeBinding operation. * @@ -650,8 +637,6 @@ ecma_op_get_this_binding (ecma_object_t *lex_env_p) /**< lexical environment */ return this_value; } /* ecma_op_get_this_binding */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/ecma/operations/ecma-lex-env.h b/jerry-core/ecma/operations/ecma-lex-env.h index 5b59559c4..e71d729fd 100644 --- a/jerry-core/ecma/operations/ecma-lex-env.h +++ b/jerry-core/ecma/operations/ecma-lex-env.h @@ -35,9 +35,7 @@ void ecma_init_global_environment (void); void ecma_finalize_global_environment (void); ecma_object_t *ecma_get_global_environment (ecma_object_t *global_object_p); ecma_object_t *ecma_get_global_scope (ecma_object_t *global_object_p); -#if JERRY_ESNEXT void ecma_create_global_lexical_block (ecma_object_t *global_object_p); -#endif /* JERRY_ESNEXT */ ecma_value_t ecma_op_raise_set_binding_error (ecma_property_t *property_p, bool is_strict); #if JERRY_MODULE_SYSTEM @@ -70,7 +68,6 @@ ecma_value_t ecma_op_implicit_this_value (ecma_object_t *lex_env_p); /* ECMA-262 v5, Table 18. Additional methods of Declarative Environment Records */ void ecma_op_create_immutable_binding (ecma_object_t *lex_env_p, ecma_string_t *name_p, ecma_value_t value); -#if JERRY_ESNEXT void ecma_op_initialize_binding (ecma_object_t *lex_env_p, ecma_string_t *name_p, ecma_value_t value); void ecma_op_create_environment_record (ecma_object_t *lex_env_p, ecma_value_t this_binding, ecma_object_t *func_obj_p); @@ -79,7 +76,6 @@ ecma_environment_record_t *ecma_op_get_environment_record (ecma_object_t *lex_en bool ecma_op_this_binding_is_initialized (ecma_environment_record_t *environment_record_p); void ecma_op_bind_this_value (ecma_environment_record_t *environment_record_p, ecma_value_t this_binding); ecma_value_t ecma_op_get_this_binding (ecma_object_t *lex_env_p); -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-number-object.c b/jerry-core/ecma/operations/ecma-number-object.c index 4160e765a..548f2f736 100644 --- a/jerry-core/ecma/operations/ecma-number-object.c +++ b/jerry-core/ecma/operations/ecma-number-object.c @@ -61,7 +61,7 @@ ecma_op_create_number_object (ecma_value_t arg) /**< argument passed to the Numb proto_id = ECMA_BUILTIN_ID_OBJECT_PROTOTYPE; #endif /* JERRY_BUILTIN_NUMBER */ ecma_object_t *prototype_obj_p = ecma_builtin_get (proto_id); -#if JERRY_ESNEXT + ecma_object_t *new_target = JERRY_CONTEXT (current_new_target_p); if (new_target) { @@ -71,7 +71,7 @@ ecma_op_create_number_object (ecma_value_t arg) /**< argument passed to the Numb return ECMA_VALUE_ERROR; } } -#endif /* JERRY_ESNEXT */ + ecma_object_t *object_p = ecma_create_object (prototype_obj_p, sizeof (ecma_extended_object_t), ECMA_OBJECT_TYPE_CLASS); @@ -80,12 +80,12 @@ ecma_op_create_number_object (ecma_value_t arg) /**< argument passed to the Numb /* Pass reference (no need to free conv_to_num_completion). */ ext_object_p->u.cls.u3.value = conv_to_num_completion; -#if JERRY_ESNEXT + if (new_target) { ecma_deref_object (prototype_obj_p); } -#endif /* JERRY_ESNEXT */ + return ecma_make_object_value (object_p); } /* ecma_op_create_number_object */ diff --git a/jerry-core/ecma/operations/ecma-objects-general.c b/jerry-core/ecma/operations/ecma-objects-general.c index a6c8f0363..eef9f134e 100644 --- a/jerry-core/ecma/operations/ecma-objects-general.c +++ b/jerry-core/ecma/operations/ecma-objects-general.c @@ -131,7 +131,6 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */ if (property & ECMA_PROPERTY_FLAG_BUILT_IN) { -#if JERRY_ESNEXT switch (type) { case ECMA_OBJECT_TYPE_BUILT_IN_FUNCTION: @@ -172,17 +171,6 @@ ecma_op_general_object_delete (ecma_object_t *obj_p, /**< the object */ break; } } -#else /* !JERRY_ESNEXT */ - if (type == ECMA_OBJECT_TYPE_CLASS) - { - JERRY_ASSERT (ecma_object_class_is (obj_p, ECMA_OBJECT_CLASS_ARGUMENTS)); - ecma_op_arguments_delete_built_in_property (obj_p, property_name_p); - } - else - { - ecma_builtin_delete_built_in_property (obj_p, property_name_p); - } -#endif /* JERRY_ESNEXT */ } /* b. */ @@ -205,7 +193,6 @@ static const lit_magic_string_id_t to_primitive_non_string_hint_method_names[2] LIT_MAGIC_STRING_TO_STRING_UL, /**< toString operation */ }; -#if JERRY_ESNEXT /** * Hints for the ecma general object's toPrimitve operation */ @@ -214,7 +201,6 @@ static const lit_magic_string_id_t hints[3] = { LIT_MAGIC_STRING_NUMBER, /**< "number" hint */ LIT_MAGIC_STRING_STRING, /**< "string" hint */ }; -#endif /* JERRY_ESNEXT */ /** * [[DefaultValue]] ecma general object's operation @@ -232,7 +218,6 @@ ecma_op_general_object_default_value (ecma_object_t *obj_p, /**< the object */ { JERRY_ASSERT (obj_p != NULL && !ecma_is_lexical_environment (obj_p)); -#if JERRY_ESNEXT ecma_value_t obj_value = ecma_make_object_value (obj_p); ecma_value_t exotic_to_prim = ecma_op_get_method_by_symbol_id (obj_value, LIT_GLOBAL_SYMBOL_TO_PRIMITIVE); @@ -267,19 +252,6 @@ ecma_op_general_object_default_value (ecma_object_t *obj_p, /**< the object */ { hint = ECMA_PREFERRED_TYPE_NUMBER; } -#else /* !JERRY_ESNEXT */ - if (hint == ECMA_PREFERRED_TYPE_NO) - { - hint = ECMA_PREFERRED_TYPE_NUMBER; - -#if JERRY_BUILTIN_DATE - if (ecma_object_class_is (obj_p, ECMA_OBJECT_CLASS_DATE)) - { - hint = ECMA_PREFERRED_TYPE_STRING; - } -#endif /* JERRY_BUILTIN_DATE */ - } -#endif /* JERRY_ESNEXT */ return ecma_op_general_object_ordinary_value (obj_p, hint); } /* ecma_op_general_object_default_value */ @@ -637,7 +609,6 @@ ecma_op_general_object_define_own_property (ecma_object_t *object_p, /**< the ob return ECMA_VALUE_TRUE; } /* ecma_op_general_object_define_own_property */ -#if JERRY_ESNEXT /** * The IsCompatiblePropertyDescriptor method for Proxy object internal methods * @@ -775,7 +746,6 @@ ecma_op_to_complete_property_descriptor (ecma_property_descriptor_t *desc_p) /** desc_p->flags |= (JERRY_PROP_IS_GET_DEFINED | JERRY_PROP_IS_SET_DEFINED); } } /* ecma_op_to_complete_property_descriptor */ -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-objects-general.h b/jerry-core/ecma/operations/ecma-objects-general.h index aea9959d4..210f176c7 100644 --- a/jerry-core/ecma/operations/ecma-objects-general.h +++ b/jerry-core/ecma/operations/ecma-objects-general.h @@ -36,13 +36,11 @@ ecma_value_t ecma_op_general_object_define_own_property (ecma_object_t *object_p ecma_string_t *property_name_p, const ecma_property_descriptor_t *property_desc_p); -#if JERRY_ESNEXT void ecma_op_to_complete_property_descriptor (ecma_property_descriptor_t *desc_p); bool ecma_op_is_compatible_property_descriptor (const ecma_property_descriptor_t *desc_p, const ecma_property_descriptor_t *current_p, bool is_extensible); -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-objects.c b/jerry-core/ecma/operations/ecma-objects.c index 59b8ecde2..dfe7215e8 100644 --- a/jerry-core/ecma/operations/ecma-objects.c +++ b/jerry-core/ecma/operations/ecma-objects.c @@ -315,34 +315,6 @@ ecma_op_object_get_own_property (ecma_object_t *object_p, /**< the object */ } case ECMA_OBJECT_TYPE_FUNCTION: { -#if !JERRY_ESNEXT - if (ecma_string_is_length (property_name_p)) - { - if (options & ECMA_PROPERTY_GET_VALUE) - { - /* Get length virtual property. */ - ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; - const ecma_compiled_code_t *bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p); - - uint32_t len; - if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS) - { - cbc_uint16_arguments_t *args_p = (cbc_uint16_arguments_t *) bytecode_data_p; - len = args_p->argument_end; - } - else - { - cbc_uint8_arguments_t *args_p = (cbc_uint8_arguments_t *) bytecode_data_p; - len = args_p->argument_end; - } - - property_ref_p->virtual_value = ecma_make_uint32_value (len); - } - - return ECMA_PROPERTY_VIRTUAL; - } -#endif /* !JERRY_ESNEXT */ - /* Get prototype physical property. */ property_p = ecma_op_function_try_to_lazy_instantiate_property (object_p, property_name_p); break; @@ -690,29 +662,6 @@ ecma_op_object_find_own (ecma_value_t base_value, /**< base value */ } case ECMA_OBJECT_TYPE_FUNCTION: { -#if !JERRY_ESNEXT - if (ecma_string_is_length (property_name_p)) - { - /* Get length virtual property. */ - ecma_extended_object_t *ext_func_p = (ecma_extended_object_t *) object_p; - const ecma_compiled_code_t *bytecode_data_p = ecma_op_function_get_compiled_code (ext_func_p); - - uint32_t len; - if (bytecode_data_p->status_flags & CBC_CODE_FLAGS_UINT16_ARGUMENTS) - { - cbc_uint16_arguments_t *args_p = (cbc_uint16_arguments_t *) bytecode_data_p; - len = args_p->argument_end; - } - else - { - cbc_uint8_arguments_t *args_p = (cbc_uint8_arguments_t *) bytecode_data_p; - len = args_p->argument_end; - } - - return ecma_make_uint32_value (len); - } -#endif /* !JERRY_ESNEXT */ - /* Get prototype physical property. */ property_p = ecma_op_function_try_to_lazy_instantiate_property (object_p, property_name_p); break; @@ -966,8 +915,6 @@ ecma_op_object_get_by_magic_id (ecma_object_t *object_p, /**< the object */ return ecma_op_object_get (object_p, ecma_get_magic_string (property_id)); } /* ecma_op_object_get_by_magic_id */ -#if JERRY_ESNEXT - /** * Descriptor string for each global symbol */ @@ -1064,7 +1011,7 @@ ecma_op_object_get_by_symbol_id (ecma_object_t *object_p, /**< the object */ */ static ecma_value_t ecma_op_get_method (ecma_value_t value, /**< ecma value */ - ecma_string_t *prop_name_p) /** property name */ + ecma_string_t *prop_name_p) /**< property name */ { /* 2. */ ecma_value_t obj_value = ecma_op_to_object (value); @@ -1142,7 +1089,6 @@ ecma_op_get_method_by_magic_id (ecma_value_t value, /**< ecma value */ { return ecma_op_get_method (value, ecma_get_magic_string (magic_id)); } /* ecma_op_get_method_by_magic_id */ -#endif /* JERRY_ESNEXT */ /** * [[Put]] ecma general object's operation specialized for property index @@ -1201,7 +1147,6 @@ ecma_op_object_put (ecma_object_t *object_p, /**< the object */ is_throw); } /* ecma_op_object_put */ -#if JERRY_ESNEXT /** * [[Set]] ( P, V, Receiver) operation part for ordinary objects * @@ -1302,7 +1247,6 @@ ecma_op_object_put_apply_receiver (ecma_value_t receiver, /**< receiver */ return ECMA_VALUE_TRUE; } /* ecma_op_object_put_apply_receiver */ -#endif /* JERRY_ESNEXT */ /** * [[Put]] ecma general object's operation with given receiver @@ -1503,9 +1447,7 @@ ecma_op_object_put_with_receiver (ecma_object_t *object_p, /**< the object */ if (ecma_string_is_length (property_name_p)) { /* Uninitialized 'length' property is non-writable (ECMA-262 v6, 19.2.4.1) */ -#if JERRY_ESNEXT if (!ECMA_GET_FIRST_BIT_FROM_POINTER_TAG (((ecma_extended_object_t *) object_p)->u.function.scope_cp)) -#endif /* JERRY_ESNEXT */ { return ecma_raise_readonly_assignment (property_name_p, is_throw); } @@ -1542,12 +1484,10 @@ ecma_op_object_put_with_receiver (ecma_object_t *object_p, /**< the object */ { if (ecma_is_property_writable (*property_p)) { -#if JERRY_ESNEXT if (ecma_make_object_value (object_p) != receiver) { return ecma_op_object_put_apply_receiver (receiver, property_name_p, value, is_throw); } -#endif /* JERRY_ESNEXT */ /* There is no need for special casing arrays here because changing the * value of an existing property never changes the length of an array. */ @@ -1652,9 +1592,7 @@ ecma_op_object_put_with_receiver (ecma_object_t *object_p, /**< the object */ } } -#if JERRY_ESNEXT return ecma_op_object_put_apply_receiver (receiver, property_name_p, value, is_throw); -#endif /* JERRY_ESNEXT */ ecma_property_value_t *new_prop_value_p; new_prop_value_p = ecma_create_named_data_property (object_p, @@ -2374,9 +2312,7 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ uint32_t array_index_named_props = 0; uint32_t string_named_props = 0; -#if JERRY_ESNEXT uint32_t symbol_named_props = 0; -#endif /* JERRY_ESNEXT */ while (counter_prop_iter_cp != JMEM_CP_NULL) { @@ -2407,7 +2343,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ { array_index_named_props++; } -#if JERRY_ESNEXT else if (ecma_prop_name_is_symbol (name_p)) { if (!(name_p->u.hash & ECMA_SYMBOL_FLAG_PRIVATE_KEY)) @@ -2415,7 +2350,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ symbol_named_props++; } } -#endif /* JERRY_ESNEXT */ else { string_named_props++; @@ -2439,7 +2373,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ string_named_props = 0; } -#if JERRY_ESNEXT if (filter & JERRY_PROPERTY_FILTER_EXCLUDE_SYMBOLS) { JERRY_ASSERT (prop_counter.symbol_named_props == 0); @@ -2447,9 +2380,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ } uint32_t total = array_index_named_props + string_named_props + symbol_named_props; -#else /* !JERRY_ESNEXT */ - uint32_t total = array_index_named_props + string_named_props; -#endif /* JERRY_ESNEXT */ if (total == 0) { @@ -2463,7 +2393,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ ecma_value_t *array_index_current_p = buffer_p + array_index_named_props + prop_counter.array_index_named_props; ecma_value_t *string_current_p = array_index_current_p + string_named_props + prop_counter.string_named_props; -#if JERRY_ESNEXT ecma_value_t *symbol_current_p = string_current_p + symbol_named_props + prop_counter.symbol_named_props; if (prop_counter.symbol_named_props > 0 && (array_index_named_props + string_named_props) > 0) @@ -2472,7 +2401,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ (void *) (buffer_p + prop_counter.array_index_named_props + prop_counter.string_named_props), prop_counter.symbol_named_props * sizeof (ecma_value_t)); } -#endif /* JERRY_ESNEXT */ if (prop_counter.string_named_props > 0 && array_index_named_props > 0) { @@ -2514,7 +2442,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ continue; } } -#if JERRY_ESNEXT else if (ecma_prop_name_is_symbol (name_p)) { if (!(filter & JERRY_PROPERTY_FILTER_EXCLUDE_SYMBOLS) && !(name_p->u.hash & ECMA_SYMBOL_FLAG_PRIVATE_KEY)) @@ -2523,7 +2450,6 @@ ecma_op_object_own_property_keys (ecma_object_t *obj_p, /**< object */ continue; } } -#endif /* JERRY_ESNEXT */ else { if (!(filter & JERRY_PROPERTY_FILTER_EXCLUDE_STRINGS)) @@ -2606,7 +2532,6 @@ ecma_op_object_enumerate (ecma_object_t *obj_p) /**< object */ { ecma_collection_t *keys = ecma_op_object_own_property_keys (obj_p, JERRY_PROPERTY_FILTER_EXCLUDE_SYMBOLS); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (keys == NULL)) { ecma_collection_free (return_names_p); @@ -2614,19 +2539,16 @@ ecma_op_object_enumerate (ecma_object_t *obj_p) /**< object */ ecma_deref_object (obj_p); return keys; } -#endif /* JERRY_ESNEXT */ for (uint32_t i = 0; i < keys->item_count; i++) { ecma_value_t prop_name = keys->buffer_p[i]; ecma_string_t *name_p = ecma_get_prop_name_from_value (prop_name); -#if JERRY_ESNEXT if (ecma_prop_name_is_symbol (name_p)) { continue; } -#endif /* JERRY_ESNEXT */ ecma_property_descriptor_t prop_desc; ecma_value_t get_desc = ecma_op_object_get_own_property_descriptor (obj_p, name_p, &prop_desc); @@ -2767,7 +2689,6 @@ ecma_object_check_class_name_is_object (ecma_object_t *obj_p) /**< object */ || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_BIGUINT64ARRAY_PROTOTYPE) #endif /* JERRY_BUILTIN_BIGINT */ #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_ARRAY_PROTOTYPE_UNSCOPABLES) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_ARRAY_ITERATOR_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_ITERATOR_PROTOTYPE) @@ -2787,16 +2708,13 @@ ecma_object_check_class_name_is_object (ecma_object_t *obj_p) /**< object */ || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_SYMBOL_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_ASYNC_FUNCTION_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_PROMISE_PROTOTYPE) -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_MAP_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_SET_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_WEAKMAP_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_WEAKSET_PROTOTYPE) -#if JERRY_ESNEXT || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_MAP_ITERATOR_PROTOTYPE) || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_SET_ITERATOR_PROTOTYPE) -#endif /* JERRY_ESNEXT */ #endif /* JERRY_BUILTIN_CONTAINER */ #if JERRY_BUILTIN_WEAKREF || ecma_builtin_is (obj_p, ECMA_BUILTIN_ID_WEAKREF_PROTOTYPE) @@ -2825,8 +2743,7 @@ static const uint16_t ecma_class_object_magic_string_id[] = { LIT_MAGIC_STRING_MODULE_UL, /**< magic string id of ECMA_OBJECT_CLASS_MODULE_NAMESPACE */ #endif /* JERRY_MODULE_SYSTEM */ -/* These objects are marked by Garbage Collector. */ -#if JERRY_ESNEXT + /* These objects are marked by Garbage Collector. */ LIT_MAGIC_STRING_GENERATOR_UL, /**< magic string id of ECMA_OBJECT_CLASS_GENERATOR */ LIT_MAGIC_STRING_ASYNC_GENERATOR_UL, /**< magic string id of ECMA_OBJECT_CLASS_ASYNC_GENERATOR */ LIT_MAGIC_STRING_ARRAY_ITERATOR_UL, /**< magic string id of ECMA_OBJECT_CLASS_ARRAY_ITERATOR */ @@ -2835,15 +2752,12 @@ static const uint16_t ecma_class_object_magic_string_id[] = { #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_REGEXP_STRING_ITERATOR_UL, /**< magic string id of ECMA_OBJECT_CLASS_REGEXP_STRING_ITERATOR */ #endif /* JERRY_BUILTIN_REGEXP */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM LIT_MAGIC_STRING_MODULE_UL, /**< magic string id of ECMA_OBJECT_CLASS_MODULE */ #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_PROMISE_UL, /**< magic string id of ECMA_OBJECT_CLASS_PROMISE */ LIT_MAGIC_STRING_OBJECT_UL, /**< magic string id of ECMA_OBJECT_CLASS_PROMISE_CAPABILITY */ LIT_MAGIC_STRING_OBJECT_UL, /**< magic string id of ECMA_OBJECT_CLASS_ASYNC_FROM_SYNC_ITERATOR */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATAVIEW LIT_MAGIC_STRING_DATAVIEW_UL, /**< magic string id of ECMA_OBJECT_CLASS_DATAVIEW */ #endif /* JERRY_BUILTIN_DATAVIEW */ @@ -2865,10 +2779,8 @@ static const uint16_t ecma_class_object_magic_string_id[] = { #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_REGEXP_UL, /**< magic string id of ECMA_OBJECT_CLASS_REGEXP */ #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_SYMBOL_UL, /**< magic string id of ECMA_OBJECT_CLASS_SYMBOL */ LIT_MAGIC_STRING_STRING_ITERATOR_UL, /**< magic string id of ECMA_OBJECT_CLASS_STRING_ITERATOR */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_ARRAY_BUFFER_UL, /**< magic string id of ECMA_OBJECT_CLASS_ARRAY_BUFFER */ #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -2972,7 +2884,6 @@ ecma_object_get_class_name (ecma_object_t *obj_p) /**< object */ return LIT_MAGIC_STRING_REFLECT_UL; } #endif /* JERRY_BUILTIN_REFLECT */ -#if JERRY_ESNEXT case ECMA_BUILTIN_ID_GENERATOR: { return LIT_MAGIC_STRING_GENERATOR_UL; @@ -2981,7 +2892,6 @@ ecma_object_get_class_name (ecma_object_t *obj_p) /**< object */ { return LIT_MAGIC_STRING_ASYNC_GENERATOR_UL; } -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_JSON case ECMA_BUILTIN_ID_JSON: { @@ -2994,20 +2904,6 @@ ecma_object_get_class_name (ecma_object_t *obj_p) /**< object */ return LIT_MAGIC_STRING_ATOMICS_U; } #endif /* JERRY_BUILTIN_ATOMICS */ -#if !JERRY_ESNEXT -#if JERRY_BUILTIN_ERRORS - case ECMA_BUILTIN_ID_EVAL_ERROR_PROTOTYPE: - case ECMA_BUILTIN_ID_RANGE_ERROR_PROTOTYPE: - case ECMA_BUILTIN_ID_REFERENCE_ERROR_PROTOTYPE: - case ECMA_BUILTIN_ID_SYNTAX_ERROR_PROTOTYPE: - case ECMA_BUILTIN_ID_TYPE_ERROR_PROTOTYPE: - case ECMA_BUILTIN_ID_URI_ERROR_PROTOTYPE: -#endif /* JERRY_BUILTIN_ERRORS */ - case ECMA_BUILTIN_ID_ERROR_PROTOTYPE: - { - return LIT_MAGIC_STRING_ERROR_UL; - } -#endif /* !JERRY_ESNEXT */ default: { break; @@ -3041,7 +2937,6 @@ ecma_object_is_regexp_object (ecma_value_t arg) /**< argument */ } /* ecma_object_is_regexp_object */ #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT /** * Object's IsConcatSpreadable operation, used for Array.prototype.concat * It checks the argument's [Symbol.isConcatSpreadable] property value @@ -3187,7 +3082,6 @@ ecma_op_invoke_by_symbol_id (ecma_value_t object, /**< Object value */ return ret_value; } /* ecma_op_invoke_by_symbol_id */ -#endif /* JERRY_ESNEXT */ /** * 7.3.18 Abstract operation Invoke when property name is a magic string @@ -3225,13 +3119,7 @@ ecma_op_invoke (ecma_value_t object, /**< Object value */ ecma_object_t *object_p = ecma_get_object_from_value (object_value); -#if JERRY_ESNEXT - ecma_value_t this_arg = object; -#else /* !JERRY_ESNEXT */ - ecma_value_t this_arg = object_value; -#endif /* JERRY_ESNEXT */ - - ecma_value_t func = ecma_op_object_get_with_receiver (object_p, property_name_p, this_arg); + ecma_value_t func = ecma_op_object_get_with_receiver (object_p, property_name_p, object); if (ECMA_IS_VALUE_ERROR (func)) { @@ -3240,7 +3128,7 @@ ecma_op_invoke (ecma_value_t object, /**< Object value */ } /* 4. */ - ecma_value_t call_result = ecma_op_function_validated_call (func, this_arg, args_p, args_len); + ecma_value_t call_result = ecma_op_function_validated_call (func, object, args_p, args_len); ecma_free_value (func); ecma_deref_object (object_p); diff --git a/jerry-core/ecma/operations/ecma-objects.h b/jerry-core/ecma/operations/ecma-objects.h index 31c51faff..87e253883 100644 --- a/jerry-core/ecma/operations/ecma-objects.h +++ b/jerry-core/ecma/operations/ecma-objects.h @@ -69,13 +69,11 @@ ecma_op_object_get_with_receiver (ecma_object_t *object_p, ecma_string_t *proper ecma_value_t ecma_op_object_get_length (ecma_object_t *object_p, ecma_length_t *length_p); ecma_value_t ecma_op_object_get_by_index (ecma_object_t *object_p, ecma_length_t index); ecma_value_t ecma_op_object_get_by_magic_id (ecma_object_t *object_p, lit_magic_string_id_t property_id); -#if JERRY_ESNEXT ecma_string_t *ecma_op_get_global_symbol (lit_magic_string_id_t property_id); bool ecma_op_compare_string_to_global_symbol (ecma_string_t *string_p, lit_magic_string_id_t property_id); ecma_value_t ecma_op_object_get_by_symbol_id (ecma_object_t *object_p, lit_magic_string_id_t property_id); ecma_value_t ecma_op_get_method_by_symbol_id (ecma_value_t value, lit_magic_string_id_t symbol_id); ecma_value_t ecma_op_get_method_by_magic_id (ecma_value_t value, lit_magic_string_id_t magic_id); -#endif /* JERRY_ESNEXT */ ecma_value_t ecma_op_object_put_with_receiver (ecma_object_t *object_p, ecma_string_t *property_name_p, ecma_value_t value, @@ -112,7 +110,6 @@ lit_magic_string_id_t ecma_object_get_class_name (ecma_object_t *obj_p); #if JERRY_BUILTIN_REGEXP bool ecma_object_is_regexp_object (ecma_value_t arg); #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT ecma_value_t ecma_op_is_concat_spreadable (ecma_value_t arg); ecma_value_t ecma_op_is_regexp (ecma_value_t arg); ecma_value_t ecma_op_species_constructor (ecma_object_t *this_value, ecma_builtin_id_t default_constructor_id); @@ -120,7 +117,6 @@ ecma_value_t ecma_op_invoke_by_symbol_id (ecma_value_t object, lit_magic_string_id_t magic_string_id, ecma_value_t *args_p, uint32_t args_len); -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_WEAKREF || JERRY_BUILTIN_CONTAINER void ecma_op_object_set_weak (ecma_object_t *object_p, ecma_object_t *target_p); void ecma_op_object_unref_weak (ecma_object_t *object_p, ecma_value_t ref_holder); diff --git a/jerry-core/ecma/operations/ecma-promise-object.c b/jerry-core/ecma/operations/ecma-promise-object.c index 746a841e1..092ed773d 100644 --- a/jerry-core/ecma/operations/ecma-promise-object.c +++ b/jerry-core/ecma/operations/ecma-promise-object.c @@ -31,8 +31,6 @@ #include "jcontext.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -1331,4 +1329,3 @@ ecma_promise_perform_then (ecma_value_t promise, /**< the promise which call 'th * @} * @} */ -#endif /* JERRY_ESNEXT */ diff --git a/jerry-core/ecma/operations/ecma-promise-object.h b/jerry-core/ecma/operations/ecma-promise-object.h index 54c88d9a1..8cfaa4548 100644 --- a/jerry-core/ecma/operations/ecma-promise-object.h +++ b/jerry-core/ecma/operations/ecma-promise-object.h @@ -18,8 +18,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -46,8 +44,8 @@ typedef enum */ typedef struct { - ecma_extended_object_t header; - ecma_value_t promise; + ecma_extended_object_t header; /**< extended object part */ + ecma_value_t promise; /**< [[Promise]] internal slot */ } ecma_promise_resolver_t; /** @@ -145,5 +143,4 @@ ecma_value_t ecma_promise_perform_then (ecma_value_t promise, * @} */ -#endif /* JERRY_ESNEXT */ #endif /* !ECMA_PROMISE_OBJECT_H */ diff --git a/jerry-core/ecma/operations/ecma-reference.c b/jerry-core/ecma/operations/ecma-reference.c index d5e970b24..bf2794401 100644 --- a/jerry-core/ecma/operations/ecma-reference.c +++ b/jerry-core/ecma/operations/ecma-reference.c @@ -72,8 +72,6 @@ ecma_op_resolve_reference_base (ecma_object_t *lex_env_p, /**< starting lexical } } /* ecma_op_resolve_reference_base */ -#if JERRY_ESNEXT - /** * Check if the passed lexical environment is a global lexical environment * @@ -192,8 +190,6 @@ ecma_op_is_prop_unscopable (ecma_object_t *binding_obj_p, /**< binding object */ return ECMA_VALUE_FALSE; } /* ecma_op_is_prop_unscopable */ -#endif /* JERRY_ESNEXT */ - /** * Helper method for HasBindig operation * @@ -244,9 +240,7 @@ ecma_op_object_bound_environment_resolve_reference_value (ecma_object_t *lex_env return found_binding; } -#if JERRY_ESNEXT if (JERRY_LIKELY (ecma_op_is_global_environment (lex_env_p))) -#endif /* JERRY_ESNEXT */ { return found_binding; } @@ -254,7 +248,6 @@ ecma_op_object_bound_environment_resolve_reference_value (ecma_object_t *lex_env } #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_ESNEXT ecma_value_t blocked = ecma_op_is_prop_unscopable (binding_obj_p, name_p); if (ecma_is_value_false (blocked)) @@ -276,7 +269,6 @@ ecma_op_object_bound_environment_resolve_reference_value (ecma_object_t *lex_env #endif /* JERRY_BUILTIN_PROXY */ return ECMA_IS_VALUE_ERROR (blocked) ? blocked : ECMA_VALUE_NOT_FOUND; -#endif /* JERRY_ESNEXT */ } /* ecma_op_object_bound_environment_resolve_reference_value */ /** @@ -305,16 +297,13 @@ ecma_op_resolve_reference_value (ecma_object_t *lex_env_p, /**< starting lexical ecma_property_value_t *property_value_p = ECMA_PROPERTY_VALUE_PTR (property_p); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (property_value_p->value == ECMA_VALUE_UNINITIALIZED)) { return ecma_raise_reference_error (ECMA_ERR_LET_CONST_NOT_INITIALIZED); } -#endif /* JERRY_ESNEXT */ return ecma_fast_copy_value (property_value_p->value); } -#if JERRY_ESNEXT case ECMA_LEXICAL_ENVIRONMENT_CLASS: { #if JERRY_MODULE_SYSTEM @@ -344,17 +333,11 @@ ecma_op_resolve_reference_value (ecma_object_t *lex_env_p, /**< starting lexical #endif /* JERRY_MODULE_SYSTEM */ break; } -#endif /* JERRY_ESNEXT */ default: { JERRY_ASSERT (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_THIS_OBJECT_BOUND); -#if JERRY_ESNEXT - bool lcache_lookup_allowed = ecma_op_is_global_environment (lex_env_p); -#else /* !JERRY_ESNEXT*/ - bool lcache_lookup_allowed = true; -#endif /* JERRY_ESNEXT */ - if (lcache_lookup_allowed) + if (ecma_op_is_global_environment (lex_env_p)) { #if JERRY_LCACHE ecma_object_t *binding_obj_p = ecma_get_lex_env_binding_object (lex_env_p); diff --git a/jerry-core/ecma/operations/ecma-reference.h b/jerry-core/ecma/operations/ecma-reference.h index ece9b4971..e1d4ae79d 100644 --- a/jerry-core/ecma/operations/ecma-reference.h +++ b/jerry-core/ecma/operations/ecma-reference.h @@ -30,9 +30,7 @@ ecma_object_t *ecma_op_resolve_reference_base (ecma_object_t *lex_env_p, ecma_string_t *name_p); ecma_value_t ecma_op_resolve_reference_value (ecma_object_t *lex_env_p, ecma_string_t *name_p); ecma_value_t ecma_op_object_bound_environment_resolve_reference_value (ecma_object_t *lex_env_p, ecma_string_t *name_p); -#if JERRY_ESNEXT ecma_value_t ecma_op_resolve_super_base (ecma_object_t *lex_env_p); -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-regexp-object.c b/jerry-core/ecma/operations/ecma-regexp-object.c index 31a479cb7..e5b276aea 100644 --- a/jerry-core/ecma/operations/ecma-regexp-object.c +++ b/jerry-core/ecma/operations/ecma-regexp-object.c @@ -98,13 +98,11 @@ ecma_regexp_parse_flags (ecma_string_t *flags_str_p, /**< Input string with flag flag = RE_FLAG_UNICODE; break; } -#if JERRY_ESNEXT case 's': { flag = RE_FLAG_DOTALL; break; } -#endif /* JERRY_ESNEXT */ default: { flag = RE_FLAG_EMPTY; @@ -127,81 +125,6 @@ ecma_regexp_parse_flags (ecma_string_t *flags_str_p, /**< Input string with flag return ret_value; } /* ecma_regexp_parse_flags */ -#if !JERRY_ESNEXT -/* - * Create the properties of a RegExp instance. - */ -static void -ecma_regexp_create_props (ecma_object_t *re_object_p, /**< RegExp object */ - ecma_string_t *source_p, /**< source string */ - uint16_t flags) /**< flags */ -{ - ecma_property_value_t *prop_value_p; - - prop_value_p = ecma_create_named_data_property (re_object_p, - ecma_get_magic_string (LIT_MAGIC_STRING_SOURCE), - ECMA_PROPERTY_FIXED, - NULL); - - ecma_ref_ecma_string (source_p); - prop_value_p->value = ecma_make_string_value (source_p); - - prop_value_p = ecma_create_named_data_property (re_object_p, - ecma_get_magic_string (LIT_MAGIC_STRING_GLOBAL), - ECMA_PROPERTY_FIXED, - NULL); - - prop_value_p->value = ecma_make_boolean_value (flags & RE_FLAG_GLOBAL); - - prop_value_p = ecma_create_named_data_property (re_object_p, - ecma_get_magic_string (LIT_MAGIC_STRING_IGNORECASE_UL), - ECMA_PROPERTY_FIXED, - NULL); - - prop_value_p->value = ecma_make_boolean_value (flags & RE_FLAG_IGNORE_CASE); - - prop_value_p = ecma_create_named_data_property (re_object_p, - ecma_get_magic_string (LIT_MAGIC_STRING_MULTILINE), - ECMA_PROPERTY_FIXED, - NULL); - - prop_value_p->value = ecma_make_boolean_value (flags & RE_FLAG_MULTILINE); -} /* ecma_regexp_create_props */ - -/* - * Update the properties of a RegExp instance. - */ -static void -ecma_regexp_update_props (ecma_object_t *re_object_p, /**< RegExp object */ - ecma_string_t *source_p, /**< source string */ - uint16_t flags) /**< flags */ -{ - ecma_property_t *prop_p; - - prop_p = ecma_find_named_property (re_object_p, ecma_get_magic_string (LIT_MAGIC_STRING_SOURCE)); - JERRY_ASSERT (prop_p != NULL); - ecma_property_value_t *prop_value_p = ECMA_PROPERTY_VALUE_PTR (prop_p); - ecma_free_value (prop_value_p->value); - ecma_ref_ecma_string (source_p); - prop_value_p->value = ecma_make_string_value (source_p); - - prop_p = ecma_find_named_property (re_object_p, ecma_get_magic_string (LIT_MAGIC_STRING_GLOBAL)); - JERRY_ASSERT (prop_p != NULL); - prop_value_p = ECMA_PROPERTY_VALUE_PTR (prop_p); - prop_value_p->value = ecma_make_boolean_value (flags & RE_FLAG_GLOBAL); - - prop_p = ecma_find_named_property (re_object_p, ecma_get_magic_string (LIT_MAGIC_STRING_IGNORECASE_UL)); - JERRY_ASSERT (prop_p != NULL); - prop_value_p = ECMA_PROPERTY_VALUE_PTR (prop_p); - prop_value_p->value = ecma_make_boolean_value (flags & RE_FLAG_IGNORE_CASE); - - prop_p = ecma_find_named_property (re_object_p, ecma_get_magic_string (LIT_MAGIC_STRING_MULTILINE)); - JERRY_ASSERT (prop_p != NULL); - prop_value_p = ECMA_PROPERTY_VALUE_PTR (prop_p); - prop_value_p->value = ecma_make_boolean_value (flags & RE_FLAG_MULTILINE); -} /* ecma_regexp_update_props */ -#endif /* !JERRY_ESNEXT */ - /** * RegExpAlloc method * @@ -216,7 +139,6 @@ ecma_regexp_update_props (ecma_object_t *re_object_p, /**< RegExp object */ ecma_object_t * ecma_op_regexp_alloc (ecma_object_t *ctr_obj_p) /**< constructor object pointer */ { -#if JERRY_ESNEXT if (ctr_obj_p == NULL) { ctr_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_REGEXP); @@ -229,17 +151,10 @@ ecma_op_regexp_alloc (ecma_object_t *ctr_obj_p) /**< constructor object pointer return proto_obj_p; } -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (ctr_obj_p); - ecma_object_t *proto_obj_p = ecma_builtin_get (ECMA_BUILTIN_ID_REGEXP_PROTOTYPE); -#endif /* JERRY_ESNEXT */ - ecma_object_t *new_object_p = ecma_create_object (proto_obj_p, sizeof (ecma_extended_object_t), ECMA_OBJECT_TYPE_CLASS); -#if JERRY_ESNEXT ecma_deref_object (proto_obj_p); -#endif /* JERRY_ESNEXT */ ecma_extended_object_t *regexp_obj_p = (ecma_extended_object_t *) new_object_p; @@ -259,31 +174,11 @@ ecma_op_regexp_alloc (ecma_object_t *ctr_obj_p) /**< constructor object pointer /** * Helper method for initializing an aready existing RegExp object. */ -static void +static inline void JERRY_ATTR_ALWAYS_INLINE ecma_op_regexp_initialize (ecma_object_t *regexp_obj_p, /**< RegExp object */ - const re_compiled_code_t *bc_p, /**< bytecode */ - ecma_string_t *pattern_str_p, /**< pattern */ - uint16_t flags) /**< flags */ + const re_compiled_code_t *bc_p) /**< bytecode */ { ecma_extended_object_t *ext_obj_p = (ecma_extended_object_t *) regexp_obj_p; - -#if !JERRY_ESNEXT - if (ext_obj_p->u.cls.type == ECMA_OBJECT_CLASS__MAX) - { - /* This instance has not been initialized before. */ - ecma_regexp_create_props (regexp_obj_p, pattern_str_p, flags); - } - else - { - ecma_regexp_update_props (regexp_obj_p, pattern_str_p, flags); - } -#endif /* !JERRY_ESNEXT */ - -#if JERRY_ESNEXT - JERRY_UNUSED (pattern_str_p); - JERRY_UNUSED (flags); -#endif /* JERRY_ESNEXT */ - ext_obj_p->u.cls.type = ECMA_OBJECT_CLASS_REGEXP; ECMA_SET_INTERNAL_VALUE_POINTER (ext_obj_p->u.cls.u3.value, bc_p); } /* ecma_op_regexp_initialize */ @@ -339,7 +234,7 @@ ecma_op_create_regexp_from_pattern (ecma_object_t *regexp_obj_p, /**< RegExp obj return ECMA_VALUE_ERROR; } - ecma_op_regexp_initialize (regexp_obj_p, bc_p, pattern_str_p, flags); + ecma_op_regexp_initialize (regexp_obj_p, bc_p); ecma_deref_ecma_string (pattern_str_p); return ecma_make_object_value (regexp_obj_p); @@ -358,10 +253,8 @@ ecma_op_create_regexp_from_bytecode (ecma_object_t *regexp_obj_p, /**< RegExp ob re_compiled_code_t *bc_p) /**< bytecode */ { ecma_bytecode_ref ((ecma_compiled_code_t *) bc_p); - ecma_string_t *pattern_str_p = ecma_get_string_from_value (bc_p->source); - uint16_t flags = bc_p->header.status_flags; - ecma_op_regexp_initialize (regexp_obj_p, bc_p, pattern_str_p, flags); + ecma_op_regexp_initialize (regexp_obj_p, bc_p); return ecma_make_object_value (regexp_obj_p); } /* ecma_op_create_regexp_from_bytecode */ @@ -394,7 +287,7 @@ ecma_op_create_regexp_with_flags (ecma_object_t *regexp_obj_p, /**< RegExp objec return ECMA_VALUE_ERROR; } - ecma_op_regexp_initialize (regexp_obj_p, bc_p, pattern_str_p, flags); + ecma_op_regexp_initialize (regexp_obj_p, bc_p); return ecma_make_object_value (regexp_obj_p); } /* ecma_op_create_regexp_with_flags */ @@ -408,7 +301,6 @@ lit_code_point_t ecma_regexp_canonicalize_char (lit_code_point_t ch, /**< character */ bool unicode) /**< unicode */ { -#if JERRY_ESNEXT if (unicode) { /* In unicode mode the mappings contained in the CaseFolding.txt file should be used to canonicalize the character. @@ -432,7 +324,6 @@ ecma_regexp_canonicalize_char (lit_code_point_t ch, /**< character */ return ch; } -#endif /* !JERRY_ESNEXT */ JERRY_UNUSED (unicode); lit_code_point_t cu = lit_char_to_upper_case (ch, NULL); @@ -520,7 +411,6 @@ ecma_regexp_advance (ecma_regexp_ctx_t *re_ctx_p, /**< regexp context */ JERRY_ASSERT (str_p != NULL); lit_code_point_t cp = lit_cesu8_read_next (str_p); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (re_ctx_p->flags & RE_FLAG_UNICODE) && lit_is_code_point_utf16_high_surrogate ((ecma_char_t) cp) && *str_p < re_ctx_p->input_end_p) { @@ -531,12 +421,10 @@ ecma_regexp_advance (ecma_regexp_ctx_t *re_ctx_p, /**< regexp context */ *str_p += LIT_UTF8_MAX_BYTES_IN_CODE_UNIT; } } -#endif /* JERRY_ESNEXT */ return ecma_regexp_canonicalize (cp, re_ctx_p->flags); } /* ecma_regexp_advance */ -#if JERRY_ESNEXT /** * Helper function to get current full unicode code point and advance the string pointer. * @@ -563,7 +451,6 @@ ecma_regexp_unicode_advance (const lit_utf8_byte_t **str_p, /**< reference to st *str_p = current_p; return ch; } /* ecma_regexp_unicode_advance */ -#endif /* JERRY_ESNEXT */ /** * Helper function to revert the string pointer to the previous code point. @@ -575,17 +462,14 @@ ecma_regexp_step_back (ecma_regexp_ctx_t *re_ctx_p, /**< regexp context */ const lit_utf8_byte_t *str_p) /**< reference to string pointer */ { JERRY_ASSERT (str_p != NULL); -#if JERRY_ESNEXT + lit_code_point_t ch = lit_cesu8_read_prev (&str_p); if (JERRY_UNLIKELY (re_ctx_p->flags & RE_FLAG_UNICODE) && lit_is_code_point_utf16_low_surrogate (ch) && lit_is_code_point_utf16_high_surrogate (lit_cesu8_peek_prev (str_p))) { str_p -= LIT_UTF8_MAX_BYTES_IN_CODE_UNIT; } -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (re_ctx_p); - lit_utf8_decr (&str_p); -#endif /* !JERRY_ESNEXT */ + return str_p; } /* ecma_regexp_step_back */ @@ -606,7 +490,6 @@ ecma_regexp_is_word_boundary (ecma_regexp_ctx_t *re_ctx_p, /**< regexp context * { left_cp = LIT_INVALID_CP; } -#if JERRY_ESNEXT else if (JERRY_UNLIKELY ((re_ctx_p->flags & (RE_FLAG_UNICODE | RE_FLAG_IGNORE_CASE)) == (RE_FLAG_UNICODE | RE_FLAG_IGNORE_CASE))) { @@ -614,7 +497,6 @@ ecma_regexp_is_word_boundary (ecma_regexp_ctx_t *re_ctx_p, /**< regexp context * left_cp = ecma_regexp_advance (re_ctx_p, &prev_p); JERRY_ASSERT (prev_p == str_p); } -#endif /* JERRY_ESNEXT */ else { left_cp = str_p[-1]; @@ -624,13 +506,11 @@ ecma_regexp_is_word_boundary (ecma_regexp_ctx_t *re_ctx_p, /**< regexp context * { right_cp = LIT_INVALID_CP; } -#if JERRY_ESNEXT else if (JERRY_UNLIKELY ((re_ctx_p->flags & (RE_FLAG_UNICODE | RE_FLAG_IGNORE_CASE)) == (RE_FLAG_UNICODE | RE_FLAG_IGNORE_CASE))) { right_cp = ecma_regexp_advance (re_ctx_p, &str_p); } -#endif /* JERRY_ESNEXT */ else { right_cp = str_p[0]; @@ -1494,7 +1374,6 @@ class_found: bc_p = bc_p + escape_count + chars_size + ranges_size; continue; } -#if JERRY_ESNEXT case RE_OP_UNICODE_PERIOD: { if (str_curr_p >= re_ctx_p->input_end_p) @@ -1512,7 +1391,6 @@ class_found: continue; } -#endif /* JERRY_ESNEXT */ case RE_OP_PERIOD: { if (str_curr_p >= re_ctx_p->input_end_p) @@ -1521,13 +1399,8 @@ class_found: } const ecma_char_t ch = lit_cesu8_read_next (&str_curr_p); -#if !JERRY_ESNEXT - bool has_dot_all_flag = false; -#else /* JERRY_ESNEXT */ - bool has_dot_all_flag = (re_ctx_p->flags & RE_FLAG_DOTALL) != 0; -#endif /* !JERRY_ESNEXT */ - if (!has_dot_all_flag && lit_char_is_line_terminator (ch)) + if (!(re_ctx_p->flags & RE_FLAG_DOTALL) && lit_char_is_line_terminator (ch)) { goto fail; } @@ -1744,24 +1617,8 @@ ecma_regexp_exec_helper (ecma_object_t *regexp_object_p, /**< RegExp object */ ecma_length_t index = 0; ecma_value_t lastindex_value = ecma_op_object_get_by_magic_id (regexp_object_p, LIT_MAGIC_STRING_LASTINDEX_UL); -#if JERRY_ESNEXT ret_value = ecma_op_to_length (lastindex_value, &index); ecma_free_value (lastindex_value); -#else /* !JERRY_ESNEXT */ - ecma_number_t lastindex_num = 0.0f; - ret_value = ecma_op_to_integer (lastindex_value, &lastindex_num); - ecma_free_value (lastindex_value); - - /* The ToInteger operation might have thrown an error, however in that case lastindex_num will still be zero, - * and the error will be handled later after the uint32 coercion. */ - if ((re_ctx.flags & RE_FLAG_GLOBAL) && lastindex_num < 0.0f) - { - JERRY_ASSERT (!ECMA_IS_VALUE_ERROR (ret_value)); - goto fail_put_lastindex; - } - - index = ecma_number_to_uint32 (lastindex_num); -#endif /* JERRY_ESNEXT */ if (ECMA_IS_VALUE_ERROR (ret_value)) { @@ -1814,13 +1671,11 @@ ecma_regexp_exec_helper (ecma_object_t *regexp_object_p, /**< RegExp object */ goto match_found; } -#if JERRY_ESNEXT /* 12.c.i */ if (re_ctx.flags & RE_FLAG_STICKY) { goto fail_put_lastindex; } -#endif /* JERRY_ESNEXT */ /* 12.a */ if (input_curr_p >= input_end_p) @@ -1838,7 +1693,6 @@ ecma_regexp_exec_helper (ecma_object_t *regexp_object_p, /**< RegExp object */ /* 12.c.ii */ index++; -#if JERRY_ESNEXT if (re_ctx.flags & RE_FLAG_UNICODE) { const lit_code_point_t cp = ecma_regexp_unicode_advance (&input_curr_p, input_end_p); @@ -1850,7 +1704,6 @@ ecma_regexp_exec_helper (ecma_object_t *regexp_object_p, /**< RegExp object */ continue; } -#endif /* JERRY_ESNEXT */ lit_utf8_incr (&input_curr_p); } @@ -2075,7 +1928,6 @@ ecma_regexp_split_helper (ecma_value_t this_arg, /**< this value */ ecma_value_t string_arg, /**< string value */ ecma_value_t limit_arg) /**< limit value */ { -#if JERRY_ESNEXT /* 2. */ if (!ecma_is_value_object (this_arg)) { @@ -2389,169 +2241,6 @@ cleanup_string: ecma_deref_ecma_string (string_p); return result; -#else /* !JERRY_ESNEXT */ - ecma_value_t result = ECMA_VALUE_ERROR; - - /* 2. */ - ecma_string_t *string_p = ecma_op_to_string (string_arg); - if (JERRY_UNLIKELY (string_p == NULL)) - { - return result; - } - - /* 5. */ - uint32_t limit = UINT32_MAX; - if (!ecma_is_value_undefined (limit_arg)) - { - if (ECMA_IS_VALUE_ERROR (ecma_op_to_length (limit_arg, &limit))) - { - goto cleanup_string; - } - } - - /* 15. */ - ecma_object_t *const array_p = ecma_op_new_array_object (0); - ecma_value_t array = ecma_make_object_value (array_p); - - /* 21. */ - if (limit == 0) - { - result = array; - goto cleanup_string; - } - - uint32_t array_length = 0; - - ecma_object_t *const regexp_p = ecma_get_object_from_value (this_arg); - ecma_extended_object_t *const ext_object_p = (ecma_extended_object_t *) regexp_p; - re_compiled_code_t *const bc_p = ECMA_GET_INTERNAL_VALUE_POINTER (re_compiled_code_t, ext_object_p->u.cls.u3.value); - - lit_utf8_size_t string_size; - lit_utf8_size_t string_length; - uint8_t string_flags = ECMA_STRING_FLAG_IS_ASCII; - const lit_utf8_byte_t *string_buffer_p = - ecma_string_get_chars (string_p, &string_size, &string_length, NULL, &string_flags); - - const lit_utf8_byte_t *current_str_p = string_buffer_p; - const lit_utf8_byte_t *previous_str_p = string_buffer_p; - const lit_utf8_byte_t *const string_end_p = string_buffer_p + string_size; - - ecma_regexp_ctx_t re_ctx; - ecma_regexp_initialize_context (&re_ctx, bc_p, string_buffer_p, string_buffer_p + string_size); - - uint8_t *const bc_start_p = (uint8_t *) (bc_p + 1); - - if (string_length == 0) - { - const lit_utf8_byte_t *const matched_p = ecma_regexp_match (&re_ctx, bc_start_p, current_str_p); - - if (ECMA_RE_STACK_LIMIT_REACHED (matched_p)) - { - result = ecma_raise_range_error (ECMA_ERR_STACK_LIMIT_EXCEEDED); - goto cleanup_array; - } - - if (matched_p == NULL) - { - result = ecma_builtin_helper_def_prop_by_index (array_p, - array_length, - ecma_make_string_value (string_p), - ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE); - JERRY_ASSERT (ecma_is_value_true (result)); - } - - result = array; - goto cleanup_context; - } - - /* 13. */ - while (current_str_p < string_end_p) - { - /* 13.a. */ - const lit_utf8_byte_t *const matched_p = ecma_regexp_match (&re_ctx, bc_start_p, current_str_p); - - if (ECMA_RE_STACK_LIMIT_REACHED (matched_p)) - { - result = ecma_raise_range_error (ECMA_ERR_STACK_LIMIT_EXCEEDED); - goto cleanup_array; - } - - if (matched_p == NULL || matched_p == previous_str_p) - { - lit_utf8_incr (¤t_str_p); - continue; - } - - /* 13.c.iii.1. */ - ecma_string_t *const str_p = - ecma_new_ecma_string_from_utf8 (previous_str_p, (lit_utf8_size_t) (current_str_p - previous_str_p)); - - result = ecma_builtin_helper_def_prop_by_index (array_p, - array_length++, - ecma_make_string_value (str_p), - ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE); - JERRY_ASSERT (ecma_is_value_true (result)); - ecma_deref_ecma_string (str_p); - - if (array_length == limit) - { - result = array; - goto cleanup_context; - } - - /* 13.c.iii.5. */ - previous_str_p = matched_p; - - uint32_t index = 1; - while (index < re_ctx.captures_count) - { - const ecma_value_t capture = ecma_regexp_get_capture_value (re_ctx.captures_p + index); - result = ecma_builtin_helper_def_prop_by_index (array_p, - array_length++, - capture, - ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE); - JERRY_ASSERT (ecma_is_value_true (result)); - ecma_free_value (capture); - - if (array_length == limit) - { - result = array; - goto cleanup_context; - } - - index++; - } - - /* 13.c.iii.8. */ - current_str_p = matched_p; - } - - ecma_string_t *const str_p = - ecma_new_ecma_string_from_utf8 (previous_str_p, (lit_utf8_size_t) (string_end_p - previous_str_p)); - - result = ecma_builtin_helper_def_prop_by_index (array_p, - array_length++, - ecma_make_string_value (str_p), - ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE); - JERRY_ASSERT (ecma_is_value_true (result)); - ecma_deref_ecma_string (str_p); - - result = array; - goto cleanup_context; - -cleanup_array: - ecma_deref_object (array_p); -cleanup_context: - ecma_regexp_cleanup_context (&re_ctx); - if (string_flags & ECMA_STRING_FLAG_MUST_BE_FREED) - { - jmem_heap_free_block ((void *) string_buffer_p, string_size); - } -cleanup_string: - ecma_deref_ecma_string (string_p); - - return result; -#endif /* JERRY_ESNEXT */ } /* ecma_regexp_split_helper */ /** @@ -2606,7 +2295,6 @@ ecma_regexp_replace_helper_fast (ecma_replace_context_t *ctx_p, /**flags & RE_FLAG_GLOBAL) == 0 && (re_ctx.flags & RE_FLAG_STICKY) != 0)) { @@ -2641,7 +2329,6 @@ ecma_regexp_replace_helper_fast (ecma_replace_context_t *ctx_p, /**flags & RE_FLAG_GLOBAL)) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY ((re_ctx.flags & RE_FLAG_STICKY) != 0)) { ecma_value_t index_value = ecma_make_length_value (index); @@ -2739,7 +2425,6 @@ ecma_regexp_replace_helper_fast (ecma_replace_context_t *ctx_p, /**= string_end_p) { break; } -#if JERRY_ESNEXT if ((ctx_p->flags & RE_FLAG_UNICODE) != 0) { index++; @@ -2785,7 +2467,6 @@ ecma_regexp_replace_helper_fast (ecma_replace_context_t *ctx_p, /**u.cls.type = ECMA_OBJECT_CLASS_STRING; ext_object_p->u.cls.u3.value = prim_value; -#if JERRY_ESNEXT if (new_target) { ecma_deref_object (prototype_obj_p); } -#endif /* JERRY_ESNEXT */ + return ecma_make_object_value (object_p); } /* ecma_op_create_string_object */ diff --git a/jerry-core/ecma/operations/ecma-symbol-object.c b/jerry-core/ecma/operations/ecma-symbol-object.c index 99d625624..adf843678 100644 --- a/jerry-core/ecma/operations/ecma-symbol-object.c +++ b/jerry-core/ecma/operations/ecma-symbol-object.c @@ -26,8 +26,6 @@ #include "lit-char-helpers.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -172,7 +170,6 @@ ecma_symbol_this_value (ecma_value_t this_arg) /**< this argument value */ /* 3. */ return ecma_raise_type_error (ECMA_ERR_ARGUMENT_THIS_NOT_SYMBOL); } /* ecma_symbol_this_value */ -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/ecma/operations/ecma-symbol-object.h b/jerry-core/ecma/operations/ecma-symbol-object.h index 1ca59930f..4f27e02a1 100644 --- a/jerry-core/ecma/operations/ecma-symbol-object.h +++ b/jerry-core/ecma/operations/ecma-symbol-object.h @@ -18,8 +18,6 @@ #include "ecma-globals.h" -#if JERRY_ESNEXT - /** \addtogroup ecma ECMA * @{ * @@ -39,7 +37,6 @@ ecma_value_t ecma_symbol_this_value (ecma_value_t this_arg); ecma_value_t ecma_get_symbol_descriptive_string (ecma_value_t symbol_value); -#endif /* JERRY_ESNEXT */ /** * @} * @} diff --git a/jerry-core/jcontext/jcontext.h b/jerry-core/jcontext/jcontext.h index de49d97bd..397863a72 100644 --- a/jerry-core/jcontext/jcontext.h +++ b/jerry-core/jcontext/jcontext.h @@ -131,16 +131,12 @@ struct jerry_context_t const lit_utf8_size_t *lit_magic_string_ex_sizes; /**< external magic string lengths */ jmem_cpointer_t ecma_gc_objects_cp; /**< List of currently alive objects. */ jmem_cpointer_t string_list_first_cp; /**< first item of the literal string list */ -#if JERRY_ESNEXT jmem_cpointer_t symbol_list_first_cp; /**< first item of the global symbol list */ -#endif /* JERRY_ESNEXT */ jmem_cpointer_t number_list_first_cp; /**< first item of the literal number list */ #if JERRY_BUILTIN_BIGINT jmem_cpointer_t bigint_list_first_cp; /**< first item of the literal bigint list */ #endif /* JERRY_BUILTIN_BIGINT */ -#if JERRY_ESNEXT jmem_cpointer_t global_symbols_cp[ECMA_BUILTIN_GLOBAL_SYMBOL_COUNT]; /**< global symbols */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM ecma_module_t *module_current_p; /**< current module context */ @@ -182,8 +178,6 @@ struct jerry_context_t #if JERRY_BUILTIN_REGEXP uint8_t re_cache_idx; /**< evicted item index when regex cache is full (round-robin) */ #endif /* JERRY_BUILTIN_REGEXP */ - -#if JERRY_ESNEXT ecma_job_queue_item_t *job_queue_head_p; /**< points to the head item of the job queue */ ecma_job_queue_item_t *job_queue_tail_p; /**< points to the tail item of the job queue */ #if JERRY_PROMISE_CALLBACK @@ -191,7 +185,6 @@ struct jerry_context_t void *promise_callback_user_p; /**< user pointer for promise callback */ jerry_promise_event_cb_t promise_callback; /**< user function for tracking Promise object operations */ #endif /* JERRY_PROMISE_CALLBACK */ -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY uint32_t arraybuffer_compact_allocation_limit; /**< maximum size of compact allocation */ @@ -247,14 +240,12 @@ struct jerry_context_t ecma_lcache_hash_entry_t lcache[ECMA_LCACHE_HASH_ROWS_COUNT][ECMA_LCACHE_HASH_ROW_LENGTH]; #endif /* JERRY_LCACHE */ -#if JERRY_ESNEXT /** * Allowed values and it's meaning: * * NULL (0x0): the current "new.target" is undefined, that is the execution is inside a normal method. * * Any other valid function object pointer: the current "new.target" is valid and it is constructor call. */ ecma_object_t *current_new_target_p; -#endif /* JERRY_ESNEXT */ }; #if JERRY_EXTERNAL_CONTEXT diff --git a/jerry-core/lit/lit-char-helpers.c b/jerry-core/lit/lit-char-helpers.c index b99136dbc..ca36a488f 100644 --- a/jerry-core/lit/lit-char-helpers.c +++ b/jerry-core/lit/lit-char-helpers.c @@ -19,17 +19,13 @@ #include "config.h" #include "lit-strings.h" -#include "lit-unicode-ranges.inc.h" -#if JERRY_ESNEXT #include "lit-unicode-ranges-sup.inc.h" -#endif /* JERRY_ESNEXT */ +#include "lit-unicode-ranges.inc.h" #if JERRY_UNICODE_CASE_CONVERSION -#include "lit-unicode-conversions.inc.h" -#if JERRY_ESNEXT #include "lit-unicode-conversions-sup.inc.h" +#include "lit-unicode-conversions.inc.h" #include "lit-unicode-folding.inc.h" -#endif /* JERRY_ESNEXT */ #endif /* JERRY_UNICODE_CASE_CONVERSION */ #define NUM_OF_ELEMENTS(array) (sizeof (array) / sizeof ((array)[0])) @@ -74,9 +70,7 @@ LIT_SEARCH_CHAR_IN_ARRAY_FN (lit_search_char_in_array, ecma_char_t, uint16_t) -#if JERRY_ESNEXT LIT_SEARCH_CHAR_IN_ARRAY_FN (lit_search_codepoint_in_array, lit_code_point_t, uint32_t) -#endif /* JERRY_ESNEXT */ /** * Binary search algorithm that searches a character in the given intervals. @@ -120,9 +114,7 @@ LIT_SEARCH_CHAR_IN_ARRAY_FN (lit_search_codepoint_in_array, lit_code_point_t, ui LIT_SEARCH_CHAR_IN_INTERVAL_ARRAY_FN (lit_search_char_in_interval_array, ecma_char_t, uint16_t, uint8_t) -#if JERRY_ESNEXT LIT_SEARCH_CHAR_IN_INTERVAL_ARRAY_FN (lit_search_codepoint_in_interval_array, lit_code_point_t, uint32_t, uint16_t) -#endif /* JERRY_ESNEXT */ /** * Check if specified character is one of the Whitespace characters including those that fall into @@ -139,12 +131,7 @@ lit_char_is_white_space (lit_code_point_t c) /**< code point */ return (c == LIT_CHAR_SP || (c >= LIT_CHAR_TAB && c <= LIT_CHAR_CR)); } - if (c == LIT_CHAR_BOM -#if !JERRY_ESNEXT - /* Mongolian Vowel Separator (u180e) used to be a whitespace character. */ - || c == LIT_CHAR_MVS -#endif /* !JERRY_ESNEXT */ - || c == LIT_CHAR_LS || c == LIT_CHAR_PS) + if (c == LIT_CHAR_BOM || c == LIT_CHAR_LS || c == LIT_CHAR_PS) { return true; } @@ -181,7 +168,6 @@ lit_char_is_line_terminator (ecma_char_t c) /**< code unit */ static bool lit_char_is_unicode_id_start (lit_code_point_t code_point) /**< code unit */ { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (code_point >= LIT_UTF8_4_BYTE_CODE_POINT_MIN)) { return (lit_search_codepoint_in_interval_array (code_point, @@ -192,10 +178,6 @@ lit_char_is_unicode_id_start (lit_code_point_t code_point) /**< code unit */ lit_unicode_id_start_chars_sup, NUM_OF_ELEMENTS (lit_unicode_id_start_chars_sup))); } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (code_point < LIT_UTF8_4_BYTE_CODE_POINT_MIN); -#endif /* JERRY_ESNEXT */ - ecma_char_t c = (ecma_char_t) code_point; return (lit_search_char_in_interval_array (c, @@ -223,7 +205,6 @@ lit_char_is_unicode_id_continue (lit_code_point_t code_point) /**< code unit */ return true; } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (code_point >= LIT_UTF8_4_BYTE_CODE_POINT_MIN)) { return (lit_search_codepoint_in_interval_array (code_point, @@ -234,10 +215,6 @@ lit_char_is_unicode_id_continue (lit_code_point_t code_point) /**< code unit */ lit_unicode_id_continue_chars_sup, NUM_OF_ELEMENTS (lit_unicode_id_continue_chars_sup))); } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (code_point < LIT_UTF8_4_BYTE_CODE_POINT_MIN); -#endif /* JERRY_ESNEXT */ - ecma_char_t c = (ecma_char_t) code_point; return ( @@ -322,7 +299,6 @@ lit_char_is_hex_digit (ecma_char_t c) /**< code unit */ && LEXER_TO_ASCII_LOWERCASE (c) <= LIT_CHAR_ASCII_LOWERCASE_LETTERS_HEX_END)); } /* lit_char_is_hex_digit */ -#if JERRY_ESNEXT /** * Check if specified character is one of BinaryDigits characters (ECMA-262 v6, 11.8.3) * @@ -333,7 +309,6 @@ lit_char_is_binary_digit (ecma_char_t c) /** code unit */ { return (c == LIT_CHAR_0 || c == LIT_CHAR_1); } /* lit_char_is_binary_digit */ -#endif /* JERRY_ESNEXT */ /** * @return radix value @@ -347,7 +322,6 @@ lit_char_to_radix (lit_utf8_byte_t c) /** code unit */ { return 16; } -#if JERRY_ESNEXT case LIT_CHAR_LOWERCASE_O: { return 8; @@ -356,7 +330,6 @@ lit_char_to_radix (lit_utf8_byte_t c) /** code unit */ { return 2; } -#endif /* JERRY_ESNEXT */ default: { return 10; @@ -595,14 +568,13 @@ lit_search_in_bidirectional_conversion_tables (lit_code_point_t cp, /**< code po { /* 1, Check if the specified character is part of the lit_unicode_character_case_ranges_{sup} table. */ int number_of_case_ranges; -#if JERRY_ESNEXT bool is_supplementary = cp > LIT_UTF16_CODE_UNIT_MAX; + if (is_supplementary) { number_of_case_ranges = NUM_OF_ELEMENTS (lit_unicode_character_case_ranges_sup); } else -#endif /* JERRY_ESNEXT */ { number_of_case_ranges = NUM_OF_ELEMENTS (lit_unicode_character_case_ranges); } @@ -618,14 +590,13 @@ lit_search_in_bidirectional_conversion_tables (lit_code_point_t cp, /**< code po size_t range_length; lit_code_point_t start_point; -#if JERRY_ESNEXT + if (is_supplementary) { range_length = lit_unicode_character_case_range_lengths_sup[conv_counter]; start_point = lit_unicode_character_case_ranges_sup[i]; } else -#endif /* JERRY_ESNEXT */ { range_length = lit_unicode_character_case_range_lengths[conv_counter]; start_point = lit_unicode_character_case_ranges[i]; @@ -657,13 +628,11 @@ lit_search_in_bidirectional_conversion_tables (lit_code_point_t cp, /**< code po offset = i - 1; } -#if JERRY_ESNEXT if (is_supplementary) { start_point = lit_unicode_character_case_ranges_sup[offset]; } else -#endif /* JERRY_ESNEXT */ { start_point = lit_unicode_character_case_ranges[offset]; } @@ -673,12 +642,10 @@ lit_search_in_bidirectional_conversion_tables (lit_code_point_t cp, /**< code po /* Note: After this point based on the latest unicode standard(13.0.0.6) no conversion characters are defined for supplementary planes */ -#if JERRY_ESNEXT if (is_supplementary) { return cp; } -#endif /* JERRY_ESNEXT */ /* 2, Check if the specified character is part of the character_pair_ranges table. */ int bottom = 0; @@ -948,7 +915,6 @@ lit_char_to_upper_case (lit_code_point_t cp, /**< code point */ #endif /* JERRY_UNICODE_CASE_CONVERSION */ } /* lit_char_to_upper_case */ -#if JERRY_ESNEXT /* * Look up whether the character should be folded to the lowercase variant. * @@ -994,7 +960,6 @@ lit_char_fold_to_upper (lit_code_point_t cp) /**< code point */ return false; #endif /* JERRY_UNICODE_CASE_CONVERSION */ } /* lit_char_fold_to_upper */ -#endif /* JERRY_ESNEXT */ /** * Helper method to find a specific character in a string diff --git a/jerry-core/lit/lit-char-helpers.h b/jerry-core/lit/lit-char-helpers.h index 1be89da4e..9b6961776 100644 --- a/jerry-core/lit/lit-char-helpers.h +++ b/jerry-core/lit/lit-char-helpers.h @@ -226,9 +226,7 @@ bool lit_code_point_is_identifier_part (lit_code_point_t code_point); bool lit_char_is_octal_digit (ecma_char_t c); bool lit_char_is_decimal_digit (ecma_char_t c); bool lit_char_is_hex_digit (ecma_char_t c); -#if JERRY_ESNEXT bool lit_char_is_binary_digit (ecma_char_t c); -#endif /* JERRY_ESNEXT */ uint8_t lit_char_to_radix (lit_utf8_byte_t c); void lit_char_unicode_escape (ecma_stringbuilder_t *builder_p, ecma_char_t c); uint32_t lit_char_hex_to_int (ecma_char_t c); @@ -256,9 +254,7 @@ bool lit_char_is_word_char (lit_code_point_t c); lit_code_point_t lit_char_to_lower_case (lit_code_point_t cp, ecma_stringbuilder_t *builder_p); lit_code_point_t lit_char_to_upper_case (lit_code_point_t cp, ecma_stringbuilder_t *builder_p); -#if JERRY_ESNEXT bool lit_char_fold_to_lower (lit_code_point_t cp); bool lit_char_fold_to_upper (lit_code_point_t cp); -#endif /* JERRY_ESNEXT */ #endif /* !LIT_CHAR_HELPERS_H */ diff --git a/jerry-core/lit/lit-magic-strings.inc.h b/jerry-core/lit/lit-magic-strings.inc.h index b6eabcf16..30849a6db 100644 --- a/jerry-core/lit/lit-magic-strings.inc.h +++ b/jerry-core/lit/lit-magic-strings.inc.h @@ -17,9 +17,7 @@ * from lit-magic-strings.ini. Do not edit! */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING__EMPTY, "") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPACE_CHAR, " ") -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASTERIX_CHAR, "*") #endif /* JERRY_MODULE_SYSTEM */ @@ -30,25 +28,16 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMMA_CHAR, ",") #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_E_U, "E") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LEFT_SQUARE_CHAR, "[") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RIGHT_SQUARE_CHAR, "]") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PI_U, "PI") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_STRING || JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_AT, "at") -#endif /* JERRY_BUILTIN_ARRAY \ -|| JERRY_BUILTIN_STRING \ -|| JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS, "is") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_ARRAY && JERRY_ESNEXT || JERRY_BUILTIN_TYPEDARRAY +#if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OF, "of") -#endif /* JERRY_BUILTIN_ARRAY && JERRY_ESNEXT \ +#endif /* JERRY_BUILTIN_ARRAY \ || JERRY_BUILTIN_TYPEDARRAY */ #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_OR, "or") @@ -56,15 +45,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_OR, "or") #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LN2_U, "LN2") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MAP_UL, "Map") -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NAN, "NaN") -#if JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UL, "Set") -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UTC_U, "UTC") #endif /* JERRY_BUILTIN_DATE */ @@ -75,22 +58,16 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ABS, "abs") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ADD, "add") #endif /* JERRY_BUILTIN_ATOMICS \ || JERRY_BUILTIN_CONTAINER */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ALL, "all") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_AND, "and") #endif /* JERRY_BUILTIN_ATOMICS */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ANY, "any") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COS, "cos") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXP, "exp") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR, "for") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET, "get") #if JERRY_BUILTIN_CONTAINER || JERRY_BUILTIN_PROXY || JERRY_BUILTIN_REFLECT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS, "has") @@ -117,9 +94,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_POP, "pop") #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_POW, "pow") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RAW, "raw") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET, "set") #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SIN, "sin") @@ -136,10 +111,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_XOR, "xor") #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP, "(?:)") #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_BUILTIN_DATE || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DATE_UL, "Date") -#endif /* JERRY_BUILTIN_DATE \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_JSON LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_JSON_U, "JSON") #endif /* JERRY_BUILTIN_JSON */ @@ -155,62 +127,46 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATAN, "atan") #endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BIND, "bind") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CALL, "call") -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT -LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CBRT, "cbrt") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ #if JERRY_BUILTIN_MATH +LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CBRT, "cbrt") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CEIL, "ceil") -#endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COSH, "cosh") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DONE, "done") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EVAL, "eval") #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXEC, "exec") #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FILL, "fill") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FIND, "find") -#endif /* JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLAT, "flat") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_ARRAY && JERRY_ESNEXT || JERRY_BUILTIN_TYPEDARRAY +#if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FROM, "from") -#endif /* JERRY_BUILTIN_ARRAY && JERRY_ESNEXT \ +#endif /* JERRY_BUILTIN_ARRAY \ || JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IMUL, "imul") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_JOIN, "join") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_KEYS, "keys") #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_LOAD, "load") #endif /* JERRY_BUILTIN_ATOMICS */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOG2, "log2") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NAME, "name") -#if JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NEXT, "next") -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NULL, "null") #if JERRY_BUILTIN_ARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PUSH, "push") #endif /* JERRY_BUILTIN_ARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RACE, "race") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SEAL, "seal") -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SIGN, "sign") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SINH, "sinh") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_CONTAINER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SIZE, "size") #endif /* JERRY_BUILTIN_CONTAINER */ @@ -221,16 +177,12 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SORT, "sort") || JERRY_BUILTIN_TYPEDARRAY */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SQRT, "sqrt") -#endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TANH, "tanh") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TEST, "test") #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_THEN, "then") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TRIM, "trim") #endif /* JERRY_BUILTIN_STRING */ @@ -248,29 +200,21 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PROXY_UL, "Proxy") #endif /* JERRY_BUILTIN_PROXY */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SQRT2_U, "SQRT2") -#endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ACOSH, "acosh") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ -LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_APPLY, "apply") -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT -LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASINH, "asinh") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ -#if JERRY_BUILTIN_MATH -LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATAN2, "atan2") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_APPLY, "apply") +#if JERRY_BUILTIN_MATH +LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASINH, "asinh") +LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATAN2, "atan2") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATANH, "atanh") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CATCH, "catch") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CLEAR, "clear") #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CLZ32, "clz32") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_WEAKREF LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEREF, "deref") #endif /* JERRY_BUILTIN_WEAKREF */ @@ -278,32 +222,27 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEREF, "deref") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EVERY, "every") #endif /* JERRY_BUILTIN_ARRAY \ || JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXPM1, "expm1") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FALSE, "false") -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLAGS, "flags") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLOOR, "floor") -#endif /* JERRY_BUILTIN_MATH */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HYPOT, "hypot") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INDEX, "index") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INPUT, "input") #endif /* JERRY_BUILTIN_REGEXP */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_NAN, "isNaN") -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOG10, "log10") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOG1P, "log1p") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ -#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING || JERRY_ESNEXT +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MATCH, "match") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE || JERRY_BUILTIN_JSON LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PARSE, "parse") #endif /* JERRY_BUILTIN_DATE \ @@ -323,22 +262,17 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SLICE, "slice") || JERRY_BUILTIN_SHAREDARRAYBUFFER \ || JERRY_BUILTIN_STRING \ || JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_BUILTIN_STRING || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPLIT, "split") -#endif /* JERRY_BUILTIN_STRING \ -|| JERRY_ESNEXT */ #if JERRY_LINE_INFO LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STACK, "stack") #endif /* JERRY_LINE_INFO */ #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_STORE, "store") #endif /* JERRY_BUILTIN_ATOMICS */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_THROW, "throw") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TRUNC, "trunc") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_VALUE, "value") #if JERRY_PARSER && JERRY_SOURCE_NAME LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SOURCE_NAME_EVAL, "") @@ -354,18 +288,13 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MODULE_UL, "Module") #endif /* JERRY_MODULE_SYSTEM */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NUMBER_UL, "Number") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OBJECT_UL, "Object") -#if JERRY_BUILTIN_REGEXP || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REGEXP_UL, "RegExp") -#endif /* JERRY_BUILTIN_REGEXP \ -|| JERRY_ESNEXT */ #if JERRY_PARSER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SCRIPT_UL, "Script") #endif /* JERRY_PARSER */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRING_UL, "String") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_UL, "Symbol") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASSIGN, "assign") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BIGINT, "bigint") #endif /* JERRY_BUILTIN_BIGINT */ @@ -386,12 +315,10 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CREATE, "create") #if JERRY_BUILTIN_CONTAINER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DELETE, "delete") #endif /* JERRY_BUILTIN_CONTAINER */ -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DOTALL, "dotAll") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_REGEXP */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ERRORS_UL, "errors") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ANNEXB LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ESCAPE, "escape") #endif /* JERRY_BUILTIN_ANNEXB */ @@ -400,106 +327,81 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FILTER, "filter") #endif /* JERRY_BUILTIN_ARRAY \ || JERRY_BUILTIN_TYPEDARRAY */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FREEZE, "freeze") -#if JERRY_BUILTIN_MATH && JERRY_ESNEXT +#if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FROUND, "fround") -#endif /* JERRY_BUILTIN_MATH && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_DAY_UL, "getDay") #endif /* JERRY_BUILTIN_DATE */ #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GLOBAL, "global") #endif /* JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS_OWN_UL, "hasOwn") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_VIEW_UL, "isView") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_KEY_FOR, "keyFor") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LENGTH, "length") #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_NOTIFY, "notify") #endif /* JERRY_BUILTIN_ATOMICS */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NUMBER, "number") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OBJECT, "object") -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PAD_END, "padEnd") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RANDOM, "random") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REASON, "reason") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REDUCE, "reduce") #endif /* JERRY_BUILTIN_ARRAY \ || JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REJECT, "reject") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REPEAT, "repeat") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RETURN, "return") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_PROXY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REVOKE, "revoke") #endif /* JERRY_BUILTIN_PROXY */ -#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SEARCH, "search") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SOURCE, "source") #endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_ARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPLICE, "splice") #endif /* JERRY_BUILTIN_ARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STATUS, "status") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STICKY, "sticky") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRING, "string") #if JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SUBSTR, "substr") #endif /* JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_STRING */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL, "symbol") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE || JERRY_BUILTIN_JSON LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_JSON_UL, "toJSON") #endif /* JERRY_BUILTIN_DATE \ || JERRY_BUILTIN_JSON */ -#if JERRY_BUILTIN_CONTAINER || JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_VALUES, "values") -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_U, "Atomics") #endif /* JERRY_BUILTIN_ATOMICS */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN_UL, "Boolean") -#if JERRY_BUILTIN_NUMBER && JERRY_ESNEXT +#if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EPSILON_U, "EPSILON") -#endif /* JERRY_BUILTIN_NUMBER && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_NUMBER */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PROMISE_UL, "Promise") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_REFLECT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REFLECT_UL, "Reflect") #endif /* JERRY_BUILTIN_REFLECT */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SQRT1_2_U, "SQRT1_2") #endif /* JERRY_BUILTIN_MATH */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_DOT_UL, "Symbol.") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_CONTAINER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_WEAKMAP_UL, "WeakMap") #endif /* JERRY_BUILTIN_CONTAINER */ @@ -513,19 +415,10 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN, "boolean") #if JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMPILE, "compile") #endif /* JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_REGEXP */ -#if JERRY_ESNEXT || JERRY_MODULE_SYSTEM LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFAULT, "default") -#endif /* JERRY_ESNEXT \ -|| JERRY_MODULE_SYSTEM */ -#if JERRY_BUILTIN_CONTAINER || JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENTRIES, "entries") -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FINALLY, "finally") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLATMAP, "flatMap") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_CONTAINER || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR_EACH_UL, "forEach") #endif /* JERRY_BUILTIN_ARRAY \ @@ -556,13 +449,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MESSAGE, "message") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OWN_KEYS_UL, "ownKeys") #endif /* JERRY_BUILTIN_PROXY \ || JERRY_BUILTIN_REFLECT */ -#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REPLACE, "replace") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RESOLVE, "resolve") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REVERSE, "reverse") #endif /* JERRY_BUILTIN_ARRAY \ @@ -579,18 +467,14 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_TIME_UL, "setTime") #if JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_YEAR_UL, "setYear") #endif /* JERRY_BUILTIN_ANNEXB && JERRY_BUILTIN_DATE */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SPECIES, "species") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_FIXED_UL, "toFixed") #endif /* JERRY_BUILTIN_NUMBER */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TRIM_END, "trimEnd") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_REGEXP && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNICODE, "unicode") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP */ #if JERRY_BUILTIN_ARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNSHIFT, "unshift") #endif /* JERRY_BUILTIN_ARRAY */ @@ -604,9 +488,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INFINITY_UL, "Infinity") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_URI_ERROR_UL, "URIError") #endif /* JERRY_BUILTIN_ERRORS */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OBJECT_TO_STRING_UL, "[object ") -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENDS_WITH, "endsWith") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_EXCHANGE, "exchange") #endif /* JERRY_BUILTIN_ATOMICS */ @@ -624,24 +508,17 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_MONTH_UL, "getMonth") #if JERRY_BUILTIN_DATAVIEW LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UINT8_UL, "getUint8") #endif /* JERRY_BUILTIN_DATAVIEW */ -#if JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INCLUDES, "includes") -#endif /* JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_FINITE, "isFinite") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_FROZEN_UL, "isFrozen") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_SEALED_UL, "isSealed") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ITERATOR, "iterator") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MATCH_ALL, "matchAll") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PAD_START, "padStart") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PARSE_INT, "parseInt") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REJECTED, "rejected") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_HOURS_UL, "setHours") #endif /* JERRY_BUILTIN_DATE */ @@ -659,9 +536,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UINT8_UL, "setUint8") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SUBARRAY, "subarray") #endif /* JERRY_BUILTIN_TYPEDARRAY */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_STRING_UL, "toString") -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TRIM_LEFT, "trimLeft") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_ANNEXB LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNESCAPE, "unescape") #endif /* JERRY_BUILTIN_ANNEXB */ @@ -671,9 +548,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARGUMENTS_UL, "Arguments") #if JERRY_BUILTIN_ERRORS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EVAL_ERROR_UL, "EvalError") #endif /* JERRY_BUILTIN_ERRORS */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GENERATOR_UL, "Generator") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INT8_ARRAY_UL, "Int8Array") #endif /* JERRY_BUILTIN_TYPEDARRAY */ @@ -686,9 +561,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TYPE_ERROR_UL, "TypeError") #endif /* JERRY_BUILTIN_ERRORS */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNDEFINED_UL, "Undefined") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING__PROTO__, "__proto__") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ANONYMOUS, "anonymous") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARGUMENTS, "arguments") #if JERRY_BUILTIN_PROXY || JERRY_BUILTIN_REFLECT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONSTRUCT, "construct") @@ -696,13 +569,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONSTRUCT, "construct") || JERRY_BUILTIN_REFLECT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DECODE_URI, "decodeURI") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENCODE_URI, "encodeURI") -#if JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FIND_INDEX, "findIndex") -#endif /* JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FULFILLED, "fulfilled") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_DAY_UL, "getUTCDay") #endif /* JERRY_BUILTIN_DATE */ @@ -710,13 +578,8 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_DAY_UL, "getUTCDay") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UINT16_UL, "getUint16") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UINT32_UL, "getUint32") #endif /* JERRY_BUILTIN_DATAVIEW */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_INTEGER, "isInteger") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_REGEXP || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LASTINDEX_UL, "lastIndex") -#endif /* JERRY_BUILTIN_REGEXP \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MULTILINE, "multiline") #endif /* JERRY_BUILTIN_REGEXP */ @@ -733,13 +596,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRINGIFY, "stringify") #endif /* JERRY_BUILTIN_JSON */ #if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SUBSTRING, "substring") -#endif /* JERRY_BUILTIN_STRING */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TRIM_RIGHT, "trimRight") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ -#if JERRY_ESNEXT +#endif /* JERRY_BUILTIN_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TRIM_START, "trimStart") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNDEFINED, "undefined") #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INT16_ARRAY_UL, "Int16Array") @@ -752,9 +611,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RANGE_ERROR_UL, "RangeError") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TYPED_ARRAY_UL, "TypedArray") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UINT8_ARRAY_UL, "Uint8Array") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ALLSETTLED, "allSettled") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATAVIEW || JERRY_BUILTIN_SHAREDARRAYBUFFER || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_LENGTH_UL, "byteLength") #endif /* JERRY_BUILTIN_DATAVIEW \ @@ -767,10 +624,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTE_OFFSET_UL, "byteOffset") #if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CHAR_CODE_AT_UL, "charCodeAt") #endif /* JERRY_BUILTIN_STRING */ -#if JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COPY_WITHIN, "copyWithin") -#endif /* JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENUMERABLE, "enumerable") #if JERRY_BUILTIN_DATAVIEW LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_FLOAT_32_UL, "getFloat32") @@ -793,9 +647,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IGNORECASE_UL, "ignoreCase") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_ISLOCKFREE, "isLockFree") #endif /* JERRY_BUILTIN_ATOMICS */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PARSE_FLOAT, "parseFloat") -#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REPLACE_ALL, "replaceAll") -#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_REGEXP && JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_DATAVIEW LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_FLOAT_32_UL, "setFloat32") #endif /* JERRY_BUILTIN_DATAVIEW */ @@ -807,9 +661,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_MINUTES_UL, "setMinutes") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_SECONDS_UL, "setSeconds") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UTC_DATE_UL, "setUTCDate") #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STARTS_WITH, "startsWith") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SOURCE_NAME_ANON, "") #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARRAY_BUFFER_UL, "ArrayBuffer") @@ -821,14 +675,12 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYNTAX_ERROR_UL, "SyntaxError") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UINT16_ARRAY_UL, "Uint16Array") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UINT32_ARRAY_UL, "Uint32Array") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CODE_POINT_AT, "codePointAt") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONSTRUCTOR, "constructor") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DESCRIPTION, "description") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OBJECT_FROM_ENTRIES, "fromEntries") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_DATAVIEW LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_BIGINT64, "getBigInt64") #endif /* JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_DATAVIEW */ @@ -837,9 +689,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_FULL_YEAR_UL, "getFullYear") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_HOURS_UL, "getUTCHours") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_MONTH_UL, "getUTCMonth") #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS_INSTANCE, "hasInstance") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_STRING || JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LAST_INDEX_OF_UL, "lastIndexOf") #endif /* JERRY_BUILTIN_ARRAY \ @@ -869,35 +719,24 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_LOWER_CASE_UL, "toLowerCase") #if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_PRECISION_UL, "toPrecision") #endif /* JERRY_BUILTIN_NUMBER */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_PRIMITIVE, "toPrimitive") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_STRING_TAG, "toStringTag") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_DATE || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_UTC_STRING_UL, "toUTCString") -#endif /* JERRY_BUILTIN_DATE \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_UPPER_CASE_UL, "toUpperCase") #endif /* JERRY_BUILTIN_STRING */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UNSCOPABLES, "unscopables") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLOAT32_ARRAY_UL, "Float32Array") #endif /* JERRY_BUILTIN_TYPEDARRAY */ #if JERRY_BUILTIN_TYPEDARRAY && JERRY_NUMBER_TYPE_FLOAT64 LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLOAT64_ARRAY_UL, "Float64Array") #endif /* JERRY_BUILTIN_TYPEDARRAY && JERRY_NUMBER_TYPE_FLOAT64 */ -#if JERRY_BUILTIN_DATE || JERRY_ESNEXT +#if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INVALID_DATE_UL, "Invalid Date") -#endif /* JERRY_BUILTIN_DATE \ -|| JERRY_ESNEXT */ -#if JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT +#endif /* JERRY_BUILTIN_DATE */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MAP_ITERATOR_UL, "Map Iterator") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_ITERATOR_UL, "Set Iterator") -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONFIGURABLE, "configurable") #if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FROM_CHAR_CODE_UL, "fromCharCode") @@ -913,26 +752,20 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_BIGUINT64, "setBigUint64") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_DATE_STRING_UL, "toDateString") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_TIME_STRING_UL, "toTimeString") #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASYNC_FUNCTION_UL, "AsyncFunction") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BIGINT64_ARRAY_UL, "BigInt64Array") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASYNC_ITERATOR, "asyncIterator") -#endif /* JERRY_ESNEXT */ -#if JERRY_BUILTIN_STRING && JERRY_ESNEXT +#if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FROM_CODE_POINT_UL, "fromCodePoint") -#endif /* JERRY_BUILTIN_STRING && JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_STRING */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_MINUTES_UL, "getUTCMinutes") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_SECONDS_UL, "getUTCSeconds") #endif /* JERRY_BUILTIN_DATE */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_PROTOTYPE_OF_UL, "isPrototypeOf") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_SAFE_INTEGER, "isSafeInteger") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOCALE_COMPARE_UL, "localeCompare") #endif /* JERRY_BUILTIN_STRING */ @@ -943,11 +776,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UTC_SECONDS_UL, "setUTCSeconds") #if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_EXPONENTIAL_UL, "toExponential") #endif /* JERRY_BUILTIN_NUMBER */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_AGGREGATE_ERROR_UL, "AggregateError") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARRAY_ITERATOR_UL, "Array Iterator") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASYNC_GENERATOR_UL, "AsyncGenerator") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BIGUINT64_ARRAY_UL, "BigUint64Array") #endif /* JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY */ @@ -964,18 +795,12 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_PROTOTYPE_OF_UL, "getPrototypeOf") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_FULL_YEAR_UL, "getUTCFullYear") #endif /* JERRY_BUILTIN_DATE */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS_OWN_PROPERTY_UL, "hasOwnProperty") -#if JERRY_BUILTIN_PROXY || JERRY_BUILTIN_REFLECT || JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_PROTOTYPE_OF_UL, "setPrototypeOf") -#endif /* JERRY_BUILTIN_PROXY \ -|| JERRY_BUILTIN_REFLECT \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UTC_FULL_YEAR_UL, "setUTCFullYear") #endif /* JERRY_BUILTIN_DATE */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_LOCALE_STRING_UL, "toLocaleString") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_STRING_ITERATOR_UL, "String Iterator") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_ATOMICS LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_COMPAREEXCHANGE, "compareExchange") #endif /* JERRY_BUILTIN_ATOMICS */ @@ -983,23 +808,21 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ATOMICS_COMPAREEXCHANGE, "compareExchange LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_MILLISECONDS_UL, "getMilliseconds") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_MILLISECONDS_UL, "setMilliseconds") #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_BUILTIN_NUMBER && JERRY_ESNEXT +#if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MAX_SAFE_INTEGER_U, "MAX_SAFE_INTEGER") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MIN_SAFE_INTEGER_U, "MIN_SAFE_INTEGER") -#endif /* JERRY_BUILTIN_NUMBER && JERRY_ESNEXT */ -#if JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB +#endif /* JERRY_BUILTIN_NUMBER */ +#if JERRY_BUILTIN_ANNEXB LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFINE_GETTER, "__defineGetter__") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFINE_SETTER, "__defineSetter__") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOOKUP_GETTER, "__lookupGetter__") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LOOKUP_SETTER, "__lookupSetter__") -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB */ +#endif /* JERRY_BUILTIN_ANNEXB */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFINE_PROPERTIES_UL, "defineProperties") #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U, "BYTES_PER_ELEMENT") #endif /* JERRY_BUILTIN_TYPEDARRAY */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GENERATOR_FUNCTION_UL, "GeneratorFunction") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NEGATIVE_INFINITY_U, "NEGATIVE_INFINITY") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_POSITIVE_INFINITY_U, "POSITIVE_INFINITY") @@ -1023,9 +846,7 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENCODE_URI_COMPONENT, "encodeURIComponent #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_UTC_MILLISECONDS_UL, "getUTCMilliseconds") #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS_CONCAT_SPREADABLE, "isConcatSpreadable") -#endif /* JERRY_ESNEXT */ #if JERRY_BUILTIN_DATE LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UTC_MILLISECONDS_UL, "setUTCMilliseconds") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_LOCALE_DATE_STRING_UL, "toLocaleDateString") @@ -1035,25 +856,21 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_LOCALE_TIME_STRING_UL, "toLocaleTimeSt LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON, "function anonymous(") #endif /* JERRY_FUNCTION_TO_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_NAMES_UL, "getOwnPropertyNames") -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_GENERATOR, "function* anonymous(") -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ +#endif /* JERRY_FUNCTION_TO_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PROPERTY_IS_ENUMERABLE_UL, "propertyIsEnumerable") -#if JERRY_ESNEXT LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_SYMBOLS_UL, "getOwnPropertySymbols") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ASYNC_GENERATOR_FUNCTION_UL, "AsyncGeneratorFunction") LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REGEXP_STRING_ITERATOR_UL, "RegExp String Iterator") -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL, "getOwnPropertyDescriptor") -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_ASYNC, "async function anonymous(") -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ -#if JERRY_ESNEXT +#endif /* JERRY_FUNCTION_TO_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTORS_UL, "getOwnPropertyDescriptors") -#endif /* JERRY_ESNEXT */ -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_ASYNC_GENERATOR, "async function* anonymous(") -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ +#endif /* JERRY_FUNCTION_TO_STRING */ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE, "function () { [native code] }") #if JERRY_SNAPSHOT_EXEC || !(JERRY_FUNCTION_TO_STRING) LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ECMA, "function () { /* ecmascript */ }") @@ -1061,74 +878,22 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FUNCTION_TO_STRING_ECMA, "function () { / || !(JERRY_FUNCTION_TO_STRING) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (0, LIT_MAGIC_STRING__EMPTY) -#if JERRY_ESNEXT LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_SPACE_CHAR) -#elif JERRY_MODULE_SYSTEM -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_ASTERIX_CHAR) -#elif JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_COMMA_CHAR) -#elif JERRY_BUILTIN_MATH -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_E_U) -#elif JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_LEFT_SQUARE_CHAR) -#elif JERRY_BUILTIN_MATH -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_PI_U) -#elif JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_STRING || JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_AT) -#elif JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_IS) -#elif JERRY_BUILTIN_ARRAY && JERRY_ESNEXT || JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_OF) -#elif JERRY_BUILTIN_ATOMICS -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_ATOMICS_OR) -#elif JERRY_BUILTIN_MATH -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_LN2_U) -#elif JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_MAP_UL) -#else /* !(JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_NAN) -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_PI_U) -#elif JERRY_BUILTIN_ARRAY || JERRY_BUILTIN_STRING || JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT +#else /* !(JERRY_BUILTIN_MATH) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_AT) -#elif JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_IS) -#elif JERRY_BUILTIN_ARRAY && JERRY_ESNEXT || JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_OF) -#elif JERRY_BUILTIN_ATOMICS -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_ATOMICS_OR) -#elif JERRY_BUILTIN_MATH -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_LN2_U) -#elif JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_MAP_UL) -#else /* !(JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_NAN) -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_MATH LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (3, LIT_MAGIC_STRING_LN2_U) -#elif JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT +#else /* !(JERRY_BUILTIN_MATH) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (3, LIT_MAGIC_STRING_MAP_UL) -#else /* !(JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (3, LIT_MAGIC_STRING_NAN) -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_MATH */ #if JERRY_BUILTIN_REGEXP LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (4, LIT_MAGIC_STRING_EMPTY_NON_CAPTURE_GROUP) -#elif JERRY_BUILTIN_DATE || JERRY_ESNEXT +#else /* !(JERRY_BUILTIN_REGEXP) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (4, LIT_MAGIC_STRING_DATE_UL) -#elif JERRY_BUILTIN_JSON -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (4, LIT_MAGIC_STRING_JSON_U) -#elif JERRY_BUILTIN_MATH -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (4, LIT_MAGIC_STRING_LN10_U) -#else /* !(JERRY_BUILTIN_MATH) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (4, LIT_MAGIC_STRING_NULL_UL) -#endif /* JERRY_BUILTIN_MATH */ +#endif /* JERRY_BUILTIN_REGEXP */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (5, LIT_MAGIC_STRING_ARRAY_UL) #if JERRY_PARSER && JERRY_SOURCE_NAME LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (6, LIT_MAGIC_STRING_SOURCE_NAME_EVAL) @@ -1158,129 +923,59 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_INT16_ARRAY_UL) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_RANGE_ERROR_UL) #elif JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_TYPED_ARRAY_UL) -#elif JERRY_ESNEXT +#else /* !(JERRY_BUILTIN_TYPEDARRAY) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_ALLSETTLED) -#elif JERRY_BUILTIN_DATAVIEW || JERRY_BUILTIN_SHAREDARRAYBUFFER || JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_BYTE_LENGTH_UL) -#elif JERRY_BUILTIN_DATAVIEW || JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_BYTE_OFFSET_UL) -#elif JERRY_BUILTIN_STRING -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_CHAR_CODE_AT_UL) -#elif JERRY_BUILTIN_TYPEDARRAY || JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_COPY_WITHIN) -#else /* !(JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (10, LIT_MAGIC_STRING_ENUMERABLE) -#endif /* JERRY_BUILTIN_TYPEDARRAY \ -|| JERRY_ESNEXT */ +#endif /* JERRY_BUILTIN_TYPEDARRAY */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (11, LIT_MAGIC_STRING_SOURCE_NAME_ANON) #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_FLOAT32_ARRAY_UL) #elif JERRY_BUILTIN_TYPEDARRAY && JERRY_NUMBER_TYPE_FLOAT64 LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_FLOAT64_ARRAY_UL) -#elif JERRY_BUILTIN_DATE || JERRY_ESNEXT +#elif JERRY_BUILTIN_DATE LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_INVALID_DATE_UL) -#elif JERRY_BUILTIN_CONTAINER || JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_MAP_ITERATOR_UL) -#else /* !(JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_CONFIGURABLE) -#endif /* JERRY_BUILTIN_CONTAINER \ -|| JERRY_ESNEXT */ -#if JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_ASYNC_FUNCTION_UL) -#elif JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_BIGINT64_ARRAY_UL) -#elif JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_ASYNC_ITERATOR) -#elif JERRY_BUILTIN_STRING && JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_FROM_CODE_POINT_UL) -#elif JERRY_BUILTIN_DATE -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_GET_UTC_MINUTES_UL) #else /* !(JERRY_BUILTIN_DATE) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_IS_PROTOTYPE_OF_UL) +LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_MAP_ITERATOR_UL) #endif /* JERRY_BUILTIN_DATE */ -#if JERRY_ESNEXT +LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_ASYNC_FUNCTION_UL) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_AGGREGATE_ERROR_UL) -#elif JERRY_BUILTIN_BIGINT && JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_BIGUINT64_ARRAY_UL) -#elif JERRY_BUILTIN_ERRORS -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_REFERENCE_ERROR_UL) -#else /* !(JERRY_BUILTIN_ERRORS) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_DEFINE_PROPERTY_UL) -#endif /* JERRY_BUILTIN_ERRORS */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (15, LIT_MAGIC_STRING_STRING_ITERATOR_UL) -#elif JERRY_BUILTIN_ATOMICS -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (15, LIT_MAGIC_STRING_ATOMICS_COMPAREEXCHANGE) -#elif JERRY_BUILTIN_DATE -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (15, LIT_MAGIC_STRING_GET_MILLISECONDS_UL) -#elif JERRY_BUILTIN_NUMBER && JERRY_ESNEXT -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (15, LIT_MAGIC_STRING_MAX_SAFE_INTEGER_U) -#elif JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (15, LIT_MAGIC_STRING_DEFINE_GETTER) -#else /* !(JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (15, LIT_MAGIC_STRING_DEFINE_PROPERTIES_UL) -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB */ -#if JERRY_BUILTIN_NUMBER && JERRY_ESNEXT +#if JERRY_BUILTIN_NUMBER LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (16, LIT_MAGIC_STRING_MAX_SAFE_INTEGER_U) -#elif JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB +#elif JERRY_BUILTIN_ANNEXB LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (16, LIT_MAGIC_STRING_DEFINE_GETTER) -#else /* !(JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB) */ +#else /* !(JERRY_BUILTIN_ANNEXB) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (16, LIT_MAGIC_STRING_DEFINE_PROPERTIES_UL) -#endif /* JERRY_ESNEXT && JERRY_BUILTIN_ANNEXB */ +#endif /* JERRY_BUILTIN_ANNEXB */ #if JERRY_BUILTIN_TYPEDARRAY LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_BYTES_PER_ELEMENT_U) -#elif JERRY_ESNEXT +#else /* !(JERRY_BUILTIN_TYPEDARRAY) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_GENERATOR_FUNCTION_UL) -#elif JERRY_BUILTIN_NUMBER -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_NEGATIVE_INFINITY_U) -#elif JERRY_BUILTIN_SHAREDARRAYBUFFER -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_SHARED_ARRAY_BUFFER_UL) -#elif JERRY_BUILTIN_TYPEDARRAY -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_UINT8_CLAMPED_ARRAY_UL) -#elif JERRY_BUILTIN_DATE -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_GET_TIMEZONE_OFFSET_UL) -#else /* !(JERRY_BUILTIN_DATE) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (17, LIT_MAGIC_STRING_PREVENT_EXTENSIONS_UL) -#endif /* JERRY_BUILTIN_DATE */ +#endif /* JERRY_BUILTIN_TYPEDARRAY */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (18, LIT_MAGIC_STRING_DECODE_URI_COMPONENT) #if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (19, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON) #else /* !(JERRY_FUNCTION_TO_STRING) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (19, LIT_MAGIC_STRING_GET_OWN_PROPERTY_NAMES_UL) #endif /* JERRY_FUNCTION_TO_STRING */ -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (20, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_GENERATOR) -#else /* !(JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING) */ +#else /* !(JERRY_FUNCTION_TO_STRING) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (20, LIT_MAGIC_STRING_PROPERTY_IS_ENUMERABLE_UL) -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ -#if JERRY_ESNEXT +#endif /* JERRY_FUNCTION_TO_STRING */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (21, LIT_MAGIC_STRING_GET_OWN_PROPERTY_SYMBOLS_UL) -#else /* !(JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (21, LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL) -#endif /* JERRY_ESNEXT */ -#if JERRY_ESNEXT LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (22, LIT_MAGIC_STRING_ASYNC_GENERATOR_FUNCTION_UL) -#else /* !(JERRY_ESNEXT) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (22, LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL) -#endif /* JERRY_ESNEXT */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (23, LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (24, LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTOR_UL) -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (25, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_ASYNC) -#elif JERRY_ESNEXT +#else /* !(JERRY_FUNCTION_TO_STRING) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (25, LIT_MAGIC_STRING_GET_OWN_PROPERTY_DESCRIPTORS_UL) -#elif JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (25, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_ASYNC_GENERATOR) -#else /* !(JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING) */ -LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (25, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE) -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#endif /* JERRY_FUNCTION_TO_STRING */ +#if JERRY_FUNCTION_TO_STRING LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (26, LIT_MAGIC_STRING_FUNCTION_TO_STRING_ANON_ASYNC_GENERATOR) -#else /* !(JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING) */ +#else /* !(JERRY_FUNCTION_TO_STRING) */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (26, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE) -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ +#endif /* JERRY_FUNCTION_TO_STRING */ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (27, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (28, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE) LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (29, LIT_MAGIC_STRING_FUNCTION_TO_STRING_NATIVE) diff --git a/jerry-core/parser/js/byte-code.h b/jerry-core/parser/js/byte-code.h index 18d5325e9..6538d0955 100644 --- a/jerry-core/parser/js/byte-code.h +++ b/jerry-core/parser/js/byte-code.h @@ -63,19 +63,12 @@ #define CBC_HAS_POP_STACK_BYTE_ARG (CBC_HAS_BYTE_ARG | CBC_POP_STACK_BYTE_ARG) -#if JERRY_ESNEXT /** * CBC_NO_RESULT_OPERATION for ext opcodes */ #define CBC_EXT_NO_RESULT_OPERATION(opcode) \ ((opcode) >= PARSER_TO_EXT_OPCODE (CBC_EXT_ASSIGN_SUPER) \ && (opcode) <= PARSER_TO_EXT_OPCODE (CBC_EXT_SPREAD_CALL_PROP_BLOCK)) -#else /* !JERRY_ESNEXT */ -/** - * CBC_NO_RESULT_OPERATION for ext opcodes - */ -#define CBC_EXT_NO_RESULT_OPERATION(opcode) false -#endif /* JERRY_ESNEXT */ /* Debug macro. */ #define CBC_ARGS_EQ(op, types) ((cbc_flags[op] & CBC_ARG_TYPES) == (types)) diff --git a/jerry-core/parser/js/common.c b/jerry-core/parser/js/common.c index 53b0a7f14..eafd16770 100644 --- a/jerry-core/parser/js/common.c +++ b/jerry-core/parser/js/common.c @@ -347,7 +347,6 @@ util_print_cbc (ecma_compiled_code_t *compiled_code_p) /**< compiled code */ JERRY_DEBUG_MSG (",no_lexical_env"); } -#if JERRY_ESNEXT switch (CBC_FUNCTION_GET_TYPE (compiled_code_p->status_flags)) { case CBC_FUNCTION_CONSTRUCTOR: @@ -386,7 +385,6 @@ util_print_cbc (ecma_compiled_code_t *compiled_code_p) /**< compiled code */ break; } } -#endif /* JERRY_ESNEXT */ JERRY_DEBUG_MSG ("]\n"); @@ -396,7 +394,6 @@ util_print_cbc (ecma_compiled_code_t *compiled_code_p) /**< compiled code */ JERRY_DEBUG_MSG (" Const literal range end: %d\n", (int) const_literal_end); JERRY_DEBUG_MSG (" Literal range end: %d\n\n", (int) literal_end); -#if JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING if (compiled_code_p->status_flags & CBC_CODE_FLAGS_HAS_EXTENDED_INFO) { uint8_t *extended_info_p = ecma_compiled_code_resolve_extended_info (compiled_code_p); @@ -420,7 +417,6 @@ util_print_cbc (ecma_compiled_code_t *compiled_code_p) /**< compiled code */ size -= (size_t) (extended_info_start_p - extended_info_p); } -#endif /* JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING */ byte_code_start_p = (uint8_t *) compiled_code_p; diff --git a/jerry-core/parser/js/common.h b/jerry-core/parser/js/common.h index 00f3b6ed8..2c03de0c2 100644 --- a/jerry-core/parser/js/common.h +++ b/jerry-core/parser/js/common.h @@ -76,9 +76,7 @@ typedef enum * (no need to allocate memory) */ LEXER_FLAG_LATE_INIT = (1 << 3), /**< initialize this variable after the byte code is freed */ LEXER_FLAG_ASCII = (1 << 4), /**< the literal contains only ascii characters */ -#if JERRY_ESNEXT LEXER_FLAG_GLOBAL = (1 << 5), /**< this local identifier is not a let or const declaration */ -#endif /* JERRY_ESNEXT */ } lexer_literal_status_flags_t; /** diff --git a/jerry-core/parser/js/js-lexer.c b/jerry-core/parser/js/js-lexer.c index 5de418fcb..e9429f9f5 100644 --- a/jerry-core/parser/js/js-lexer.c +++ b/jerry-core/parser/js/js-lexer.c @@ -93,8 +93,6 @@ lexer_hex_to_code_point (const uint8_t *source_p, /**< current source position * return result; } /* lexer_hex_to_code_point */ -#if JERRY_ESNEXT - /** * Parse hexadecimal character sequence enclosed in braces * @@ -146,8 +144,6 @@ lexer_hex_in_braces_to_code_point (const uint8_t *source_p, /**< current source return result; } /* lexer_hex_in_braces_to_code_point */ -#endif /* JERRY_ESNEXT */ - /** * Parse hexadecimal character sequence * @@ -160,13 +156,11 @@ lexer_unchecked_hex_to_character (const uint8_t **source_p) /**< [in, out] curre const uint8_t *char_p = *source_p; uint32_t length = (char_p[-1] == LIT_CHAR_LOWERCASE_U) ? 4 : 2; -#if JERRY_ESNEXT if (char_p[0] == LIT_CHAR_LEFT_BRACE) { length = 0; char_p++; } -#endif /* JERRY_ESNEXT */ while (true) { @@ -188,17 +182,16 @@ lexer_unchecked_hex_to_character (const uint8_t **source_p) /**< [in, out] curre JERRY_ASSERT (result <= LIT_UNICODE_CODE_POINT_MAX); -#if JERRY_ESNEXT if (length == 0) { if (*char_p != LIT_CHAR_RIGHT_BRACE) { continue; } + *source_p = char_p + 1; return result; } -#endif /* JERRY_ESNEXT */ if (--length == 0) { @@ -388,8 +381,6 @@ lexer_skip_spaces (parser_context_t *context_p) /**< context */ } } /* lexer_skip_spaces */ -#if JERRY_ESNEXT - /** * Skip all the continuous empty statements. */ @@ -407,21 +398,12 @@ lexer_skip_empty_statements (parser_context_t *context_p) /**< context */ context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES); } /* lexer_skip_empty_statements */ -#endif /* JERRY_ESNEXT */ - -#if JERRY_ESNEXT /** * Checks whether the keyword has escape sequences. */ #define LEXER_CHECK_INVALID_KEYWORD(ident_start_p, buffer_p) \ (JERRY_UNLIKELY ((ident_start_p) == (buffer_p)) \ && !(context_p->global_status_flags & ECMA_PARSE_INTERNAL_PRE_SCANNING)) -#else /* !JERRY_ESNEXT */ -/** - * Checks whether the keyword has escape sequences. - */ -#define LEXER_CHECK_INVALID_KEYWORD(ident_start_p, buffer_p) (JERRY_UNLIKELY ((ident_start_p) == (buffer_p))) -#endif /* JERRY_ESNEXT */ /** * Keyword data. @@ -488,9 +470,7 @@ static const keyword_string_t keywords_with_length_4[] = { * Keywords with 5 characters. */ static const keyword_string_t keywords_with_length_5[] = { -#if JERRY_ESNEXT LEXER_KEYWORD ("async", LEXER_KEYW_ASYNC), LEXER_KEYWORD ("await", LEXER_KEYW_AWAIT), -#endif /* JERRY_ESNEXT */ LEXER_KEYWORD ("break", LEXER_KEYW_BREAK), LEXER_KEYWORD ("catch", LEXER_KEYW_CATCH), LEXER_KEYWORD ("class", LEXER_KEYW_CLASS), LEXER_KEYWORD ("const", LEXER_KEYW_CONST), LEXER_KEYWORD ("false", LEXER_LIT_FALSE), LEXER_KEYWORD ("super", LEXER_KEYW_SUPER), @@ -605,7 +585,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ status_flags = LEXER_LIT_LOCATION_HAS_ESCAPE; -#if JERRY_ESNEXT if (source_p + 5 <= source_end_p && source_p[1] == LIT_CHAR_LOWERCASE_U) { if (source_p[2] == LIT_CHAR_LEFT_BRACE) @@ -617,12 +596,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ code_point = lexer_hex_to_code_point (source_p + 2, 4); } } -#else /* !JERRY_ESNEXT */ - if (source_p + 6 <= source_end_p && source_p[1] == LIT_CHAR_LOWERCASE_U) - { - code_point = lexer_hex_to_code_point (source_p + 2, 4); - } -#endif /* JERRY_ESNEXT */ if (code_point == UINT32_MAX) { @@ -659,7 +632,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ { status_flags &= (uint32_t) ~LEXER_LIT_LOCATION_IS_ASCII; -#if JERRY_ESNEXT utf8_length = lit_read_code_point_from_utf8 (source_p, (lit_utf8_size_t) (source_end_p - source_p), &code_point); decoded_length = utf8_length; @@ -686,18 +658,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ context_p->global_status_flags |= ECMA_PARSE_INTERNAL_HAS_4_BYTE_MARKER; #endif /* JERRY_FUNCTION_TO_STRING */ } -#else /* !JERRY_ESNEXT */ - if (code_point < LIT_UTF8_4_BYTE_MARKER) - { - utf8_length = - lit_read_code_point_from_utf8 (source_p, (lit_utf8_size_t) (source_end_p - source_p), &code_point); - decoded_length = utf8_length; - } - else - { - code_point = 0; - } -#endif /* JERRY_ESNEXT */ } if (length == 0) @@ -778,7 +738,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ if (JERRY_LIKELY (keyword_p->type < LEXER_FIRST_NON_RESERVED_KEYWORD)) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (keyword_p->type == LEXER_KEYW_AWAIT)) { if (!(context_p->status_flags & (PARSER_IS_ASYNC_FUNCTION | PARSER_IS_CLASS_STATIC_BLOCK)) @@ -799,7 +758,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ context_p->token.type = (uint8_t) LEXER_KEYW_AWAIT; break; } -#endif /* JERRY_ESNEXT */ if (LEXER_CHECK_INVALID_KEYWORD (ident_start_p, buffer_p)) { @@ -811,7 +769,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ break; } -#if JERRY_ESNEXT if (keyword_p->type == LEXER_KEYW_LET && (context_p->status_flags & PARSER_IS_STRICT)) { if (LEXER_CHECK_INVALID_KEYWORD (ident_start_p, buffer_p)) @@ -842,7 +799,6 @@ lexer_parse_identifier (parser_context_t *context_p, /**< context */ { parser_raise_error (context_p, PARSER_ERR_ARGUMENTS_IN_CLASS_FIELD); } -#endif /* JERRY_ESNEXT */ if (keyword_p->type >= LEXER_FIRST_FUTURE_STRICT_RESERVED_WORD && (context_p->status_flags & PARSER_IS_STRICT) && !(options & LEXER_PARSE_NO_STRICT_IDENT_ERROR)) @@ -881,11 +837,7 @@ void lexer_parse_string (parser_context_t *context_p, /**< context */ lexer_string_options_t opts) /**< options */ { -#if JERRY_ESNEXT int32_t raw_length_adjust = 0; -#else /* JERRY_ESNEXT */ - JERRY_UNUSED (opts); -#endif /* JERRY_ESNEXT */ uint8_t str_end_character = context_p->source_p[0]; const uint8_t *source_p = context_p->source_p + 1; @@ -898,12 +850,10 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ size_t length = 0; lexer_lit_location_flags_t status_flags = LEXER_LIT_LOCATION_IS_ASCII; -#if JERRY_ESNEXT if (str_end_character == LIT_CHAR_RIGHT_BRACE) { str_end_character = LIT_CHAR_GRAVE_ACCENT; } -#endif /* JERRY_ESNEXT */ while (true) { @@ -937,9 +887,7 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ source_p++; if (source_p < source_end_p && *source_p == LIT_CHAR_LF) { -#if JERRY_ESNEXT raw_length_adjust--; -#endif /* JERRY_ESNEXT */ source_p++; } @@ -962,7 +910,6 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ continue; } -#if JERRY_ESNEXT if (opts & LEXER_STRING_RAW) { if ((*source_p == LIT_CHAR_GRAVE_ACCENT) || (*source_p == LIT_CHAR_BACKSLASH)) @@ -973,7 +920,6 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ } continue; } -#endif /* JERRY_ESNEXT */ if (*source_p == LIT_CHAR_0 && source_p + 1 < source_end_p && (*(source_p + 1) < LIT_CHAR_0 || *(source_p + 1) > LIT_CHAR_9)) @@ -988,12 +934,10 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ * converted to a character which has the same byte length. */ if (*source_p >= LIT_CHAR_0 && *source_p <= LIT_CHAR_3) { -#if JERRY_ESNEXT if (str_end_character == LIT_CHAR_GRAVE_ACCENT) { parser_raise_error (context_p, PARSER_ERR_TEMPLATE_STR_OCTAL_ESCAPE); } -#endif /* JERRY_ESNEXT */ if (context_p->status_flags & PARSER_IS_STRICT) { @@ -1053,7 +997,6 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ uint32_t escape_length = (*source_p == LIT_CHAR_LOWERCASE_X) ? 3 : 5; lit_code_point_t code_point = UINT32_MAX; -#if JERRY_ESNEXT if (source_p + 4 <= source_end_p && source_p[0] == LIT_CHAR_LOWERCASE_U && source_p[1] == LIT_CHAR_LEFT_BRACE) { code_point = lexer_hex_in_braces_to_code_point (source_p + 2, source_end_p, &escape_length); @@ -1061,14 +1004,11 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ } else { -#endif /* JERRY_ESNEXT */ if (source_p + escape_length <= source_end_p) { code_point = lexer_hex_to_code_point (source_p + 1, escape_length - 1); } -#if JERRY_ESNEXT } -#endif /* JERRY_ESNEXT */ if (code_point == UINT32_MAX) { @@ -1084,7 +1024,6 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ continue; } } -#if JERRY_ESNEXT else if (str_end_character == LIT_CHAR_GRAVE_ACCENT && source_p[0] == LIT_CHAR_DOLLAR_SIGN && source_p + 1 < source_end_p && source_p[1] == LIT_CHAR_LEFT_BRACE) { @@ -1092,7 +1031,6 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ source_p++; break; } -#endif /* JERRY_ESNEXT */ if (*source_p >= LIT_UTF8_4_BYTE_MARKER) { @@ -1102,9 +1040,7 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ length += 2 * 3; status_flags = LEXER_LIT_LOCATION_HAS_ESCAPE; source_p += 4; -#if JERRY_ESNEXT raw_length_adjust += 2; -#endif /* JERRY_ESNEXT */ column++; #if JERRY_FUNCTION_TO_STRING context_p->global_status_flags |= ECMA_PARSE_INTERNAL_HAS_4_BYTE_MARKER; @@ -1117,7 +1053,6 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ /* Subtract -1 because column is increased below. */ column--; } -#if JERRY_ESNEXT else if (*source_p == LEXER_NEWLINE_LS_PS_BYTE_1 && LEXER_NEWLINE_LS_PS_BYTE_23 (source_p)) { source_p += 3; @@ -1153,12 +1088,7 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ continue; } } -#endif /* JERRY_ESNEXT */ - else if (*source_p == LIT_CHAR_CR -#if !JERRY_ESNEXT - || (*source_p == LEXER_NEWLINE_LS_PS_BYTE_1 && LEXER_NEWLINE_LS_PS_BYTE_23 (source_p)) -#endif /* !JERRY_ESNEXT */ - || *source_p == LIT_CHAR_LF) + else if (*source_p == LIT_CHAR_CR || *source_p == LIT_CHAR_LF) { context_p->token.line = line; context_p->token.column = column; @@ -1176,23 +1106,17 @@ lexer_parse_string (parser_context_t *context_p, /**< context */ } } -#if JERRY_ESNEXT if (opts & LEXER_STRING_RAW) { length = (size_t) ((source_p - string_start_p) + raw_length_adjust); } -#endif /* JERRY_ESNEXT */ if (length > PARSER_MAXIMUM_STRING_LENGTH) { parser_raise_error (context_p, PARSER_ERR_STRING_TOO_LONG); } -#if JERRY_ESNEXT context_p->token.type = ((str_end_character != LIT_CHAR_GRAVE_ACCENT) ? LEXER_LITERAL : LEXER_TEMPLATE_LITERAL); -#else /* !JERRY_ESNEXT */ - context_p->token.type = LEXER_LITERAL; -#endif /* JERRY_ESNEXT */ /* Fill literal data. */ context_p->token.lit_location.char_p = string_start_p; @@ -1215,17 +1139,12 @@ lexer_check_numbers (parser_context_t *context_p, /**< context */ const ecma_char_t digit_max, /**< maximum of the number range */ const bool is_legacy) /**< is legacy octal number */ { -#if !JERRY_ESNEXT - JERRY_UNUSED (context_p); - JERRY_UNUSED (is_legacy); -#endif /* !JERRY_ESNEXT */ while (true) { while (*source_p < source_end_p && *source_p[0] >= LIT_CHAR_0 && *source_p[0] <= digit_max) { *source_p += 1; } -#if JERRY_ESNEXT if (*source_p != source_end_p && *source_p[0] == LIT_CHAR_UNDERSCORE) { *source_p += 1; @@ -1236,7 +1155,6 @@ lexer_check_numbers (parser_context_t *context_p, /**< context */ } continue; } -#endif /* JERRY_ESNEXT */ break; } @@ -1264,12 +1182,11 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ if (source_p[0] == LIT_CHAR_0 && source_p + 1 < source_end_p) { -#if JERRY_ESNEXT if (source_p[1] == LIT_CHAR_UNDERSCORE) { parser_raise_error (context_p, PARSER_ERR_INVALID_UNDERSCORE_IN_NUMBER); } -#endif /* JERRY_ESNEXT */ + if (LEXER_TO_ASCII_LOWERCASE (source_p[1]) == LIT_CHAR_LOWERCASE_X) { context_p->token.extra_value = LEXER_NUMBER_HEXADECIMAL; @@ -1283,7 +1200,6 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ do { source_p++; -#if JERRY_ESNEXT if (source_p < source_end_p && source_p[0] == LIT_CHAR_UNDERSCORE) { source_p++; @@ -1292,10 +1208,8 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ parser_raise_error (context_p, PARSER_ERR_INVALID_UNDERSCORE_IN_NUMBER); } } -#endif /* JERRY_ESNEXT */ } while (source_p < source_end_p && lit_char_is_hex_digit (source_p[0])); } -#if JERRY_ESNEXT else if (LEXER_TO_ASCII_LOWERCASE (source_p[1]) == LIT_CHAR_LOWERCASE_O) { context_p->token.extra_value = LEXER_NUMBER_OCTAL; @@ -1308,7 +1222,6 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ lexer_check_numbers (context_p, &source_p, source_end_p, LIT_CHAR_7, false); } -#endif /* JERRY_ESNEXT */ else if (source_p[1] >= LIT_CHAR_0 && source_p[1] <= LIT_CHAR_9) { context_p->token.extra_value = LEXER_NUMBER_OCTAL; @@ -1325,15 +1238,11 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ if (source_p < source_end_p && source_p[0] >= LIT_CHAR_8 && source_p[0] <= LIT_CHAR_9) { -#if JERRY_ESNEXT lexer_check_numbers (context_p, &source_p, source_end_p, LIT_CHAR_9, true); context_p->token.extra_value = LEXER_NUMBER_DECIMAL; -#else /* !JERRY_ESNEXT */ - parser_raise_error (context_p, PARSER_ERR_INVALID_NUMBER); -#endif /* JERRY_ESNEXT */ } } -#if JERRY_ESNEXT + else if (LEXER_TO_ASCII_LOWERCASE (source_p[1]) == LIT_CHAR_LOWERCASE_B) { context_p->token.extra_value = LEXER_NUMBER_BINARY; @@ -1357,7 +1266,6 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ } } while (source_p < source_end_p && lit_char_is_binary_digit (source_p[0])); } -#endif /* JERRY_ESNEXT */ else { can_be_float = true; @@ -1379,12 +1287,11 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ can_be_bigint = false; #endif /* JERRY_BUILTIN_BIGINT */ -#if JERRY_ESNEXT if (source_p < source_end_p && source_p[0] == LIT_CHAR_UNDERSCORE) { parser_raise_error (context_p, PARSER_ERR_INVALID_UNDERSCORE_IN_NUMBER); } -#endif /* JERRY_ESNEXT */ + lexer_check_numbers (context_p, &source_p, source_end_p, LIT_CHAR_9, false); } @@ -1522,7 +1429,6 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ * @param char4 fourth character * @param type4 type of the fourth character */ -#if JERRY_ESNEXT #define LEXER_TYPE_D_TOKEN(char1, type1, char2, type2, char3, type3, char4, type4) \ case (uint8_t) (char1): \ { \ @@ -1553,10 +1459,6 @@ lexer_parse_number (parser_context_t *context_p) /**< context */ length = 1; \ break; \ } -#else /* !JERRY_ESNEXT */ -#define LEXER_TYPE_D_TOKEN(char1, type1, char2, type2, char3, type3, char4, type4) \ - LEXER_TYPE_C_TOKEN (char1, type1, char2, type2, char3, type3) -#endif /* JERRY_ESNEXT */ /** * Get next token. @@ -1566,10 +1468,10 @@ lexer_next_token (parser_context_t *context_p) /**< context */ { size_t length; -#if JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING +#if JERRY_FUNCTION_TO_STRING /* Needed by arrow functions with expression body */ context_p->function_end_p = context_p->source_p; -#endif /* JERRY_ESNEXT && JERRY_FUNCTION_TO_STRING */ +#endif /* JERRY_FUNCTION_TO_STRING */ lexer_skip_spaces (context_p); @@ -1605,9 +1507,7 @@ lexer_next_token (parser_context_t *context_p) /**< context */ LEXER_TYPE_A_TOKEN (LIT_CHAR_RIGHT_SQUARE, LEXER_RIGHT_SQUARE); LEXER_TYPE_A_TOKEN (LIT_CHAR_SEMICOLON, LEXER_SEMICOLON); LEXER_TYPE_A_TOKEN (LIT_CHAR_COMMA, LEXER_COMMA); -#if JERRY_ESNEXT LEXER_TYPE_A_TOKEN (LIT_CHAR_HASHMARK, LEXER_HASHMARK); -#endif /* JERRY_ESNEXT */ case (uint8_t) LIT_CHAR_DOT: { @@ -1617,14 +1517,12 @@ lexer_next_token (parser_context_t *context_p) /**< context */ return; } -#if JERRY_ESNEXT if (length >= 3 && context_p->source_p[1] == LIT_CHAR_DOT && context_p->source_p[2] == LIT_CHAR_DOT) { context_p->token.type = LEXER_THREE_DOTS; length = 3; break; } -#endif /* JERRY_ESNEXT */ context_p->token.type = LEXER_DOT; length = 1; @@ -1728,14 +1626,12 @@ lexer_next_token (parser_context_t *context_p) /**< context */ break; } -#if JERRY_ESNEXT if (context_p->source_p[1] == (uint8_t) LIT_CHAR_GREATER_THAN) { context_p->token.type = LEXER_ARROW; length = 2; break; } -#endif /* JERRY_ESNEXT */ } context_p->token.type = LEXER_ASSIGN; @@ -1783,7 +1679,6 @@ lexer_next_token (parser_context_t *context_p) /**< context */ break; } -#if JERRY_ESNEXT if (context_p->source_p[1] == (uint8_t) LIT_CHAR_ASTERISK) { if (length >= 3 && context_p->source_p[2] == (uint8_t) LIT_CHAR_EQUALS) @@ -1797,7 +1692,6 @@ lexer_next_token (parser_context_t *context_p) /**< context */ length = 2; break; } -#endif /* JERRY_ESNEXT */ } context_p->token.type = LEXER_MULTIPLY; @@ -1830,7 +1724,6 @@ lexer_next_token (parser_context_t *context_p) /**< context */ LEXER_TYPE_A_TOKEN (LIT_CHAR_TILDE, LEXER_BIT_NOT); case (uint8_t) (LIT_CHAR_QUESTION): { -#if JERRY_ESNEXT if (length >= 2) { if (context_p->source_p[1] == (uint8_t) LIT_CHAR_QUESTION) @@ -1846,7 +1739,7 @@ lexer_next_token (parser_context_t *context_p) /**< context */ break; } } -#endif /* JERRY_ESNEXT */ + context_p->token.type = LEXER_QUESTION_MARK; length = 1; break; @@ -1856,9 +1749,7 @@ lexer_next_token (parser_context_t *context_p) /**< context */ case LIT_CHAR_SINGLE_QUOTE: case LIT_CHAR_DOUBLE_QUOTE: -#if JERRY_ESNEXT case LIT_CHAR_GRAVE_ACCENT: -#endif /* JERRY_ESNEXT */ { lexer_parse_string (context_p, LEXER_STRING_NO_OPTS); return; @@ -1963,9 +1854,7 @@ lexer_check_post_primary_exp (parser_context_t *context_p) /**< context */ case LIT_CHAR_DOT: case LIT_CHAR_LEFT_PAREN: case LIT_CHAR_LEFT_SQUARE: -#if JERRY_ESNEXT case LIT_CHAR_GRAVE_ACCENT: -#endif /* JERRY_ESNEXT */ { return true; } @@ -1975,20 +1864,16 @@ lexer_check_post_primary_exp (parser_context_t *context_p) /**< context */ return (!(context_p->token.flags & LEXER_WAS_NEWLINE) && context_p->source_p + 1 < context_p->source_end_p && context_p->source_p[1] == context_p->source_p[0]); } -#if JERRY_ESNEXT case LIT_CHAR_ASTERISK: { return (context_p->source_p + 1 < context_p->source_end_p && context_p->source_p[1] == (uint8_t) LIT_CHAR_ASTERISK); } -#endif /* JERRY_ESNEXT */ } return false; } /* lexer_check_post_primary_exp */ -#if JERRY_ESNEXT - /** * Checks whether the next token is a type used for detecting arrow functions. * @@ -2181,8 +2066,6 @@ lexer_scan_private_identifier (parser_context_t *context_p) /**< context */ return (context_p->source_p < context_p->source_end_p && lexer_parse_identifier (context_p, LEXER_PARSE_NO_OPTS)); } /* lexer_scan_private_identifier */ -#endif /* JERRY_ESNEXT */ - /** * Convert an ident with escapes to a utf8 string. */ @@ -2204,7 +2087,6 @@ lexer_convert_ident_to_cesu8 (uint8_t *destination_p, /**< destination string */ continue; } -#if JERRY_ESNEXT if (*source_p >= LIT_UTF8_4_BYTE_MARKER) { lit_four_byte_utf8_char_to_cesu8 (destination_p, source_p); @@ -2213,7 +2095,6 @@ lexer_convert_ident_to_cesu8 (uint8_t *destination_p, /**< destination string */ source_p += 4; continue; } -#endif /* JERRY_ESNEXT */ *destination_p++ = *source_p++; } while (destination_p < destination_end_p); @@ -2258,17 +2139,12 @@ lexer_convert_literal_to_chars (parser_context_t *context_p, /**< context */ uint8_t str_end_character = source_p[-1]; -#if JERRY_ESNEXT if (str_end_character == LIT_CHAR_RIGHT_BRACE) { str_end_character = LIT_CHAR_GRAVE_ACCENT; } bool is_raw = (opts & LEXER_STRING_RAW) != 0; -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (opts); - bool is_raw = false; -#endif /* JERRY_ESNEXT */ while (true) { @@ -2399,7 +2275,6 @@ lexer_convert_literal_to_chars (parser_context_t *context_p, /**< context */ continue; } } -#if JERRY_ESNEXT else if (str_end_character == LIT_CHAR_GRAVE_ACCENT) { if (source_p[0] == LIT_CHAR_DOLLAR_SIGN && source_p[1] == LIT_CHAR_LEFT_BRACE) @@ -2429,7 +2304,6 @@ lexer_convert_literal_to_chars (parser_context_t *context_p, /**< context */ } } } -#endif /* JERRY_ESNEXT */ if (*source_p >= LIT_UTF8_4_BYTE_MARKER) { @@ -2619,11 +2493,7 @@ lexer_construct_number_object (parser_context_t *context_p, /**< context */ { #endif /* JERRY_BUILTIN_BIGINT */ ecma_number_t num; - uint32_t options = 0; - -#if JERRY_ESNEXT - options |= ECMA_CONVERSION_ALLOW_UNDERSCORE; -#endif /* JERRY_ESNEXT */ + uint32_t options = ECMA_CONVERSION_ALLOW_UNDERSCORE; if (context_p->token.extra_value == LEXER_NUMBER_OCTAL) { @@ -2820,7 +2690,6 @@ lexer_construct_function_object (parser_context_t *context_p, /**< context */ parser_flush_cbc (context_p); -#if JERRY_ESNEXT if (JERRY_LIKELY (!(extra_status_flags & PARSER_IS_ARROW_FUNCTION))) { compiled_code_p = parser_parse_function (context_p, extra_status_flags); @@ -2829,9 +2698,6 @@ lexer_construct_function_object (parser_context_t *context_p, /**< context */ { compiled_code_p = parser_parse_arrow_function (context_p, extra_status_flags); } -#else /* !JERRY_ESNEXT */ - compiled_code_p = parser_parse_function (context_p, extra_status_flags); -#endif /* JERRY_ESNEXT */ literal_p->u.bytecode_p = compiled_code_p; literal_p->type = LEXER_FUNCTION_LITERAL; @@ -2839,7 +2705,6 @@ lexer_construct_function_object (parser_context_t *context_p, /**< context */ return result_index; } /* lexer_construct_function_object */ -#if JERRY_ESNEXT /** * Construct a class static block function literal object. * @@ -2864,7 +2729,6 @@ lexer_construct_class_static_block_function (parser_context_t *context_p) /**< c return result_index; } /* lexer_construct_class_static_block_function */ -#endif /* JERRY_ESNEXT */ /** * Construct a regular expression object. @@ -2987,12 +2851,10 @@ lexer_construct_regexp_object (parser_context_t *context_p, /**< context */ { flag = RE_FLAG_STICKY; } -#if JERRY_ESNEXT else if (source_p[0] == LIT_CHAR_LOWERCASE_S) { flag = RE_FLAG_DOTALL; } -#endif /* JERRY_ESNEXT */ if (flag == 0) { @@ -3126,8 +2988,6 @@ lexer_expect_identifier (parser_context_t *context_p, /**< context */ return; } #endif /* JERRY_MODULE_SYSTEM */ - -#if JERRY_ESNEXT if (context_p->token.type == LEXER_KEYW_YIELD) { parser_raise_error (context_p, PARSER_ERR_YIELD_NOT_ALLOWED); @@ -3136,7 +2996,6 @@ lexer_expect_identifier (parser_context_t *context_p, /**< context */ { parser_raise_error (context_p, PARSER_ERR_AWAIT_NOT_ALLOWED); } -#endif /* JERRY_ESNEXT */ parser_raise_error (context_p, PARSER_ERR_IDENTIFIER_EXPECTED); } /* lexer_expect_identifier */ @@ -3175,12 +3034,9 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ lexer_skip_spaces (context_p); context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES); - if (context_p->source_p < context_p->source_end_p -#if JERRY_ESNEXT - && context_p->source_p[0] != LIT_CHAR_COMMA && context_p->source_p[0] != LIT_CHAR_RIGHT_BRACE - && context_p->source_p[0] != LIT_CHAR_LEFT_PAREN && context_p->source_p[0] != LIT_CHAR_SEMICOLON - && context_p->source_p[0] != LIT_CHAR_EQUALS -#endif /* JERRY_ESNEXT */ + if (context_p->source_p < context_p->source_end_p && context_p->source_p[0] != LIT_CHAR_COMMA + && context_p->source_p[0] != LIT_CHAR_RIGHT_BRACE && context_p->source_p[0] != LIT_CHAR_LEFT_PAREN + && context_p->source_p[0] != LIT_CHAR_SEMICOLON && context_p->source_p[0] != LIT_CHAR_EQUALS && context_p->source_p[0] != LIT_CHAR_COLON) { if (lexer_compare_literal_to_string (context_p, "get", 3)) @@ -3195,7 +3051,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ return; } -#if JERRY_ESNEXT if (lexer_compare_literal_to_string (context_p, "async", 5)) { context_p->token.type = LEXER_KEYW_ASYNC; @@ -3210,18 +3065,15 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ } return; } -#endif /* JERRY_ESNEXT */ } } create_literal_object = true; } -#if JERRY_ESNEXT else if (ident_opts & LEXER_OBJ_IDENT_CLASS_PRIVATE) { parser_raise_error (context_p, PARSER_ERR_INVALID_CHARACTER); } -#endif /* JERRY_ESNEXT */ else { switch (context_p->source_p[0]) @@ -3233,7 +3085,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ create_literal_object = true; break; } -#if JERRY_ESNEXT case LIT_CHAR_LEFT_SQUARE: { #if JERRY_FUNCTION_TO_STRING @@ -3276,7 +3127,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ break; } -#endif /* JERRY_ESNEXT */ case LIT_CHAR_LEFT_BRACE: { const uint32_t static_block_flags = @@ -3302,7 +3152,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ lexer_consume_next_character (context_p); return; } -#if JERRY_ESNEXT case LIT_CHAR_DOT: { if (!(context_p->source_p + 1 >= context_p->source_end_p || lit_char_is_decimal_digit (context_p->source_p[1]))) @@ -3322,7 +3171,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ } /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ default: { const uint8_t *char_p = context_p->source_p; @@ -3349,7 +3197,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ if (create_literal_object) { -#if JERRY_ESNEXT if (ident_opts & LEXER_OBJ_IDENT_CLASS_IDENTIFIER) { return; @@ -3360,7 +3207,6 @@ lexer_expect_object_literal_id (parser_context_t *context_p, /**< context */ parser_resolve_private_identifier (context_p); return; } -#endif /* JERRY_ESNEXT */ lexer_construct_literal_object (context_p, &context_p->token.lit_location, LEXER_STRING_LITERAL); return; @@ -3405,12 +3251,9 @@ lexer_check_property_modifier (parser_context_t *context_p) /**< context */ lexer_skip_spaces (context_p); context_p->token.flags = (uint8_t) (context_p->token.flags | LEXER_NO_SKIP_SPACES); - if (context_p->source_p >= context_p->source_end_p -#if JERRY_ESNEXT - || context_p->source_p[0] == LIT_CHAR_COMMA || context_p->source_p[0] == LIT_CHAR_RIGHT_BRACE - || context_p->source_p[0] == LIT_CHAR_LEFT_PAREN || context_p->source_p[0] == LIT_CHAR_EQUALS -#endif /* JERRY_ESNEXT */ - || context_p->source_p[0] == LIT_CHAR_COLON) + if (context_p->source_p >= context_p->source_end_p || context_p->source_p[0] == LIT_CHAR_COMMA + || context_p->source_p[0] == LIT_CHAR_RIGHT_BRACE || context_p->source_p[0] == LIT_CHAR_LEFT_PAREN + || context_p->source_p[0] == LIT_CHAR_EQUALS || context_p->source_p[0] == LIT_CHAR_COLON) { return; } @@ -3427,13 +3270,11 @@ lexer_check_property_modifier (parser_context_t *context_p) /**< context */ return; } -#if JERRY_ESNEXT if (lexer_compare_literal_to_string (context_p, "async", 5)) { context_p->token.type = LEXER_KEYW_ASYNC; return; } -#endif /* JERRY_ESNEXT */ } /* lexer_check_property_modifier */ /** @@ -3632,8 +3473,6 @@ lexer_string_is_directive (parser_context_t *context_p) /**< context */ && context_p->token.type != LEXER_DOT)); } /* lexer_string_is_directive */ -#if JERRY_ESNEXT - /** * Compares the current token to an expected identifier. * @@ -3687,8 +3526,6 @@ lexer_token_is_async (parser_context_t *context_p) /**< context */ && !(context_p->token.lit_location.status_flags & LEXER_LIT_LOCATION_HAS_ESCAPE)); } /* lexer_token_is_async */ -#endif /* JERRY_ESNEXT */ - /** * Compares the current identifier or string to an expected string. * @@ -3749,17 +3586,10 @@ lexer_convert_binary_lvalue_token_to_binary (uint8_t token) /**< binary lvalue t JERRY_ASSERT (LEXER_IS_BINARY_LVALUE_OP_TOKEN (token)); JERRY_ASSERT (token != LEXER_ASSIGN); -#if JERRY_ESNEXT if (token <= LEXER_ASSIGN_EXPONENTIATION) { return (uint8_t) (LEXER_ADD + (token - LEXER_ASSIGN_ADD)); } -#else /* !JERRY_ESNEXT */ - if (token <= LEXER_ASSIGN_MODULO) - { - return (uint8_t) (LEXER_ADD + (token - LEXER_ASSIGN_ADD)); - } -#endif /* JERRY_ESNEXT */ if (token <= LEXER_ASSIGN_UNS_RIGHT_SHIFT) { diff --git a/jerry-core/parser/js/js-lexer.h b/jerry-core/parser/js/js-lexer.h index 8d06baab5..97e25d3d4 100644 --- a/jerry-core/parser/js/js-lexer.h +++ b/jerry-core/parser/js/js-lexer.h @@ -55,10 +55,8 @@ typedef enum LEXER_LIT_TRUE, /**< true (not a keyword!) */ LEXER_LIT_FALSE, /**< false (not a keyword!) */ LEXER_LIT_NULL, /**< null (not a keyword!) */ -#if JERRY_ESNEXT LEXER_TEMPLATE_LITERAL, /**< multi segment template literal */ LEXER_THREE_DOTS, /**< ... (rest or spread operator) */ -#endif /* JERRY_ESNEXT */ /* Unary operators * IMPORTANT: update CBC_UNARY_OP_TOKEN_TO_OPCODE and @@ -72,9 +70,7 @@ typedef enum LEXER_BIT_NOT, /**< "~" */ LEXER_KEYW_VOID, /**< void */ LEXER_KEYW_TYPEOF, /**< typeof */ -#if JERRY_ESNEXT LEXER_KEYW_AWAIT, /**< await */ -#endif /* JERRY_ESNEXT */ LEXER_KEYW_DELETE, /**< delete */ LEXER_INCREASE, /**< "++" */ LEXER_DECREASE, /**< "--" */ @@ -87,17 +83,11 @@ typedef enum * Index of first binary operation opcode. */ #define LEXER_FIRST_BINARY_OP LEXER_ASSIGN -#if JERRY_ESNEXT + /** * Index of last binary operation opcode. */ #define LEXER_LAST_BINARY_OP LEXER_EXPONENTIATION -#else /* !JERRY_ESNEXT */ -/** - * Index of last binary operation opcode. - */ -#define LEXER_LAST_BINARY_OP LEXER_MODULO -#endif /* JERRY_ESNEXT */ /** * Checks whether the token is a binary operation token. @@ -121,12 +111,10 @@ typedef enum LEXER_ASSIGN_MULTIPLY, /**< "*=" (prec: 3) */ LEXER_ASSIGN_DIVIDE, /**< "/=" (prec: 3) */ LEXER_ASSIGN_MODULO, /**< "%=" (prec: 3) */ -#if JERRY_ESNEXT LEXER_ASSIGN_EXPONENTIATION, /**< "**=" (prec: 3) */ LEXER_ASSIGN_NULLISH_COALESCING, /**< "??=" (prec: 3) */ LEXER_ASSIGN_LOGICAL_OR, /**< "||=" (prec: 3) */ LEXER_ASSIGN_LOGICAL_AND, /**< "&&=" (prec: 3) */ -#endif /* JERRY_ESNEXT */ LEXER_ASSIGN_LEFT_SHIFT, /**< "<<=" (prec: 3) */ LEXER_ASSIGN_RIGHT_SHIFT, /**< ">>=" (prec: 3) */ LEXER_ASSIGN_UNS_RIGHT_SHIFT, /**< ">>>=" (prec: 3) */ @@ -134,9 +122,7 @@ typedef enum LEXER_ASSIGN_BIT_OR, /**< "|=" (prec: 3) */ LEXER_ASSIGN_BIT_XOR, /**< "^=" (prec: 3) */ LEXER_QUESTION_MARK, /**< "?" (prec: 4) */ -#if JERRY_ESNEXT LEXER_NULLISH_COALESCING, /**< "??" (prec: 5) */ -#endif /* JERRY_ESNEXT */ LEXER_LOGICAL_OR, /**< "||" (prec: 6) */ LEXER_LOGICAL_AND, /**< "&&" (prec: 7) */ LEXER_BIT_OR, /**< "|" (prec: 8) */ @@ -160,10 +146,7 @@ typedef enum LEXER_MULTIPLY, /**< "*" (prec: 15) */ LEXER_DIVIDE, /**< "/" (prec: 15) */ LEXER_MODULO, /**< "%" (prec: 15) */ -#if JERRY_ESNEXT LEXER_EXPONENTIATION, /**< "**" (prec: 16) */ -#endif /* JERRY_ESNEXT */ - LEXER_LEFT_BRACE, /**< "{" */ LEXER_LEFT_PAREN, /**< "(" */ LEXER_LEFT_SQUARE, /**< "[" */ @@ -174,10 +157,8 @@ typedef enum LEXER_SEMICOLON, /**< ";" */ LEXER_COLON, /**< ":" */ LEXER_COMMA, /**< "," */ -#if JERRY_ESNEXT LEXER_ARROW, /**< "=>" */ LEXER_HASHMARK, /**< "#" */ -#endif /* JERRY_ESNEXT */ LEXER_KEYW_BREAK, /**< break */ LEXER_KEYW_DO, /**< do */ @@ -215,18 +196,14 @@ typedef enum LEXER_PROPERTY_GETTER, /**< property getter function */ LEXER_PROPERTY_SETTER, /**< property setter function */ LEXER_COMMA_SEP_LIST, /**< comma separated bracketed expression list */ -#if JERRY_ESNEXT LEXER_ASSIGN_GROUP_EXPR, /**< indetifier for the assignment is located in a group expression */ LEXER_ASSIGN_CONST, /**< a const binding is reassigned */ LEXER_INVALID_PATTERN, /**< special value for invalid destructuring pattern */ LEXER_PRIVATE_PRIMARY_EXPR, /**< private field in primary expession position */ LEXER_ASSIGN_REFERENCE, /**< special value for reference assignment */ -#endif /* JERRY_ESNEXT */ -/* Keywords which are not keyword tokens. */ -#if JERRY_ESNEXT + /* Keywords which are not keyword tokens. */ LEXER_KEYW_ASYNC, /**< async */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM LEXER_KEYW_META, /**< meta */ #endif /* JERRY_MODULE_SYSTEM */ diff --git a/jerry-core/parser/js/js-parser-expr.c b/jerry-core/parser/js/js-parser-expr.c index 67b69d2c7..d079d762b 100644 --- a/jerry-core/parser/js/js-parser-expr.c +++ b/jerry-core/parser/js/js-parser-expr.c @@ -71,16 +71,12 @@ static const uint8_t parser_binary_precedence_table[] = { 3, /**< "&=" */ 3, /**< "|=" */ 3, /**< "^=" */ -#if JERRY_ESNEXT 3, /**< "**=" */ 3, /**< "??=" */ 3, /**< "||=" */ 3, /**< "&&=" */ -#endif /* JERRY_ESNEXT */ 4, /**< "?"*/ -#if JERRY_ESNEXT 5, /**< "??" */ -#endif /* JERRY_ESNEXT */ 6, /**< "||" */ 7, /**< "&&" */ 8, /**< "|" */ @@ -104,18 +100,11 @@ static const uint8_t parser_binary_precedence_table[] = { 15, /**< "*" */ 15, /**< "/" */ 15, /**< "%" */ -#if JERRY_ESNEXT 16, /**< "**" */ -#endif /* JERRY_ESNEXT */ }; -#if JERRY_ESNEXT JERRY_STATIC_ASSERT (sizeof (parser_binary_precedence_table) == 42, parser_binary_precedence_table_should_have_39_values_in_es2015); -#else /* !JERRY_ESNEXT */ -JERRY_STATIC_ASSERT (sizeof (parser_binary_precedence_table) == 36, - parser_binary_precedence_table_should_have_36_values_in_es51); -#endif /* JERRY_ESNEXT */ /** * Generate byte code for operators with lvalue. @@ -168,8 +157,6 @@ parser_check_invalid_assign (parser_context_t *context_p) /**< context */ } } /* parser_check_invalid_assign */ -#if JERRY_ESNEXT - /** * Check and throw an error if the "new.target" is invalid as a left-hand side expression. */ @@ -191,8 +178,6 @@ parser_check_invalid_new_target (parser_context_t *context_p, /**< parser contex } } /* parser_check_invalid_new_target */ -#endif /* JERRY_ESNEXT */ - /** * Emit identifier reference */ @@ -259,7 +244,6 @@ parser_emit_unary_lvalue_opcode (parser_context_t *context_p, /**< context */ parser_emit_ident_reference (context_p, unary_opcode); -#if JERRY_ESNEXT if (unary_opcode != CBC_DELETE_IDENT_PUSH_RESULT && scanner_literal_is_const_reg (context_p, context_p->last_cbc.literal_index)) { @@ -267,7 +251,6 @@ parser_emit_unary_lvalue_opcode (parser_context_t *context_p, /**< context */ context_p->last_cbc_opcode = CBC_PUSH_LITERAL; parser_emit_cbc_ext (context_p, CBC_EXT_THROW_ASSIGN_CONST_ERROR); } -#endif /* JERRY_ESNEXT */ return; } @@ -287,7 +270,6 @@ parser_emit_unary_lvalue_opcode (parser_context_t *context_p, /**< context */ /* Invalid LeftHandSide expression. */ if (opcode == CBC_DELETE_PUSH_RESULT) { -#if JERRY_ESNEXT if (context_p->last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_PRIVATE_PROP_LITERAL)) { parser_raise_error (context_p, PARSER_ERR_DELETE_PRIVATE_FIELD); @@ -300,13 +282,12 @@ parser_emit_unary_lvalue_opcode (parser_context_t *context_p, /**< context */ parser_emit_cbc (context_p, CBC_POP); return; } -#endif /* JERRY_ESNEXT */ + parser_emit_cbc (context_p, CBC_POP); parser_emit_cbc (context_p, CBC_PUSH_TRUE); return; } -#if JERRY_ESNEXT parser_check_invalid_new_target (context_p, opcode); if (opcode == CBC_PRE_INCR || opcode == CBC_PRE_DECR) { @@ -316,9 +297,6 @@ parser_emit_unary_lvalue_opcode (parser_context_t *context_p, /**< context */ { parser_raise_error (context_p, PARSER_ERR_INVALID_LHS_POSTFIX_OP); } -#else /* JERRY_ESNEXT */ - parser_emit_cbc_ext (context_p, CBC_EXT_THROW_REFERENCE_ERROR); -#endif /* JERRY_ESNEXT */ } parser_emit_cbc (context_p, (uint16_t) opcode); @@ -358,7 +336,6 @@ parser_parse_array_literal (parser_context_t *context_p) /**< context */ } else { -#if JERRY_ESNEXT if (context_p->token.type == LEXER_THREE_DOTS) { opcode = (uint16_t) (PARSER_TO_EXT_OPCODE (CBC_EXT_SPREAD_ARRAY_APPEND)); @@ -366,7 +343,6 @@ parser_parse_array_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); parser_emit_cbc_ext (context_p, CBC_EXT_PUSH_SPREAD_ELEMENT); } -#endif /* JERRY_ESNEXT */ parser_parse_expression (context_p, PARSE_EXPR_NO_COMMA); @@ -388,111 +364,12 @@ parser_parse_array_literal (parser_context_t *context_p) /**< context */ if (pushed_items >= 64) { parser_emit_cbc_call (context_p, opcode, pushed_items); -#if JERRY_ESNEXT opcode = (uint16_t) CBC_ARRAY_APPEND; -#endif /* JERRY_ESNEXT */ pushed_items = 0; } } } /* parser_parse_array_literal */ -#if !JERRY_ESNEXT -/** - * Object literal item types. - */ -typedef enum -{ - PARSER_OBJECT_PROPERTY_START, /**< marks the start of the property list */ - PARSER_OBJECT_PROPERTY_VALUE, /**< value property */ - PARSER_OBJECT_PROPERTY_GETTER, /**< getter property */ - PARSER_OBJECT_PROPERTY_SETTER, /**< setter property */ - PARSER_OBJECT_PROPERTY_BOTH_ACCESSORS, /**< both getter and setter properties are set */ -} parser_object_literal_item_types_t; - -/** - * Parse object literal. - */ -static void -parser_append_object_literal_item (parser_context_t *context_p, /**< context */ - uint16_t item_index, /**< index of the item name */ - parser_object_literal_item_types_t item_type) /**< type of the item */ -{ - parser_stack_iterator_t iterator; - uint8_t *current_item_type_p; - - iterator.current_p = context_p->stack.first_p; - iterator.current_position = context_p->stack.last_position; - - while (true) - { - current_item_type_p = iterator.current_p->bytes + iterator.current_position - 1; - - if (*current_item_type_p == PARSER_OBJECT_PROPERTY_START) - { - parser_stack_push_uint16 (context_p, item_index); - parser_stack_push_uint8 (context_p, (uint8_t) item_type); - return; - } - - iterator.current_position--; - if (iterator.current_position == 0) - { - iterator.current_p = iterator.current_p->next_p; - iterator.current_position = PARSER_STACK_PAGE_SIZE; - } - - uint32_t current_item_index = iterator.current_p->bytes[iterator.current_position - 1]; - - iterator.current_position--; - if (iterator.current_position == 0) - { - iterator.current_p = iterator.current_p->next_p; - iterator.current_position = PARSER_STACK_PAGE_SIZE; - } - - current_item_index |= ((uint32_t) iterator.current_p->bytes[iterator.current_position - 1]) << 8; - - iterator.current_position--; - if (iterator.current_position == 0) - { - iterator.current_p = iterator.current_p->next_p; - iterator.current_position = PARSER_STACK_PAGE_SIZE; - } - - if (current_item_index == item_index) - { - if (item_type == PARSER_OBJECT_PROPERTY_VALUE && *current_item_type_p == PARSER_OBJECT_PROPERTY_VALUE - && !(context_p->status_flags & PARSER_IS_STRICT)) - { - return; - } - - if (item_type == PARSER_OBJECT_PROPERTY_GETTER && *current_item_type_p == PARSER_OBJECT_PROPERTY_SETTER) - { - break; - } - - if (item_type == PARSER_OBJECT_PROPERTY_SETTER && *current_item_type_p == PARSER_OBJECT_PROPERTY_GETTER) - { - break; - } - - parser_raise_error (context_p, PARSER_ERR_OBJECT_PROPERTY_REDEFINED); - } - } - - uint8_t *last_page_p = context_p->stack.first_p->bytes; - - *current_item_type_p = PARSER_OBJECT_PROPERTY_BOTH_ACCESSORS; - - if (current_item_type_p == (last_page_p + context_p->stack.last_position - 1)) - { - context_p->stack_top_uint8 = PARSER_OBJECT_PROPERTY_BOTH_ACCESSORS; - } -} /* parser_append_object_literal_item */ -#endif /* !JERRY_ESNEXT */ - -#if JERRY_ESNEXT /** Forward definition of parse array initializer. */ static void parser_parse_array_initializer (parser_context_t *context_p, parser_pattern_flags_t flags); @@ -1271,9 +1148,7 @@ parser_parse_class (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); } /* parser_parse_class */ -#endif /* JERRY_ESNEXT */ -#if JERRY_ESNEXT /** * Parse object initializer method definition. * @@ -1326,7 +1201,6 @@ parser_reparse_as_common_identifier (parser_context_t *context_p, /**< context * lexer_construct_literal_object (context_p, &context_p->token.lit_location, LEXER_IDENT_LITERAL); } /* parser_reparse_as_common_identifier */ -#endif /* JERRY_ESNEXT */ /** * Parse object literal. @@ -1338,11 +1212,6 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ parser_emit_cbc (context_p, CBC_CREATE_OBJECT); -#if !JERRY_ESNEXT - parser_stack_push_uint8 (context_p, PARSER_OBJECT_PROPERTY_START); -#endif /* !JERRY_ESNEXT */ - -#if JERRY_ESNEXT bool proto_seen = false; bool has_super_env = false; @@ -1358,7 +1227,6 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ scanner_release_next (context_p, sizeof (scanner_info_t)); } -#endif /* JERRY_ESNEXT */ while (true) { @@ -1375,62 +1243,44 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ { uint32_t status_flags; cbc_ext_opcode_t opcode; -#if !JERRY_ESNEXT - parser_object_literal_item_types_t item_type; -#endif /* !JERRY_ESNEXT */ bool is_getter = context_p->token.type == LEXER_PROPERTY_GETTER; if (is_getter) { status_flags = PARSER_FUNCTION_CLOSURE | PARSER_IS_PROPERTY_GETTER; opcode = CBC_EXT_SET_GETTER; -#if !JERRY_ESNEXT - item_type = PARSER_OBJECT_PROPERTY_GETTER; -#endif /* !JERRY_ESNEXT */ } else { status_flags = PARSER_FUNCTION_CLOSURE | PARSER_IS_PROPERTY_SETTER; opcode = CBC_EXT_SET_SETTER; -#if !JERRY_ESNEXT - item_type = PARSER_OBJECT_PROPERTY_SETTER; -#endif /* !JERRY_ESNEXT */ } -#if JERRY_ESNEXT status_flags |= PARSER_ALLOW_SUPER; -#endif /* !JERRY_ESNEXT */ lexer_expect_object_literal_id (context_p, LEXER_OBJ_IDENT_ONLY_IDENTIFIERS); /* This assignment is a nop for computed getters/setters. */ uint16_t literal_index = context_p->lit_object.index; -#if JERRY_ESNEXT bool is_computed = context_p->token.type == LEXER_RIGHT_SQUARE; if (is_computed) { opcode = ((opcode == CBC_EXT_SET_GETTER) ? CBC_EXT_SET_COMPUTED_GETTER : CBC_EXT_SET_COMPUTED_SETTER); } -#else /* !JERRY_ESNEXT */ - parser_append_object_literal_item (context_p, literal_index, item_type); -#endif /* JERRY_ESNEXT */ uint16_t function_literal_index = lexer_construct_function_object (context_p, status_flags); -#if JERRY_ESNEXT if (opcode >= CBC_EXT_SET_COMPUTED_GETTER) { literal_index = function_literal_index; } -#endif /* JERRY_ESNEXT */ parser_emit_cbc_literal (context_p, CBC_PUSH_LITERAL, literal_index); JERRY_ASSERT (context_p->last_cbc_opcode == CBC_PUSH_LITERAL); -#if JERRY_ESNEXT if (is_computed) { parser_emit_cbc_ext (context_p, @@ -1455,7 +1305,6 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ parser_emit_cbc_ext (context_p, is_getter ? CBC_EXT_SET_COMPUTED_GETTER : CBC_EXT_SET_COMPUTED_SETTER); } else -#endif /* JERRY_ESNEXT */ { context_p->last_cbc_opcode = PARSER_TO_EXT_OPCODE (opcode); context_p->last_cbc.value = function_literal_index; @@ -1464,7 +1313,6 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); break; } -#if JERRY_ESNEXT case LEXER_RIGHT_SQUARE: { lexer_next_token (context_p); @@ -1588,10 +1436,8 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); break; } -#endif /* JERRY_ESNEXT */ default: { -#if JERRY_ESNEXT const lexer_lit_location_t *literal_p = (const lexer_lit_location_t *) context_p->lit_object.literal_p; bool is_proto = ((context_p->token.lit_location.type == LEXER_IDENT_LITERAL || context_p->token.lit_location.type == LEXER_STRING_LITERAL) @@ -1606,20 +1452,13 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ proto_seen = true; } -#endif /* JERRY_ESNEXT */ uint16_t literal_index = context_p->lit_object.index; - -#if JERRY_ESNEXT parser_line_counter_t start_line = context_p->token.line; parser_line_counter_t start_column = context_p->token.column; -#else /* !JERRY_ESNEXT */ - parser_append_object_literal_item (context_p, literal_index, PARSER_OBJECT_PROPERTY_VALUE); -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_PAREN && !is_proto) { parser_parse_object_method (context_p); @@ -1650,7 +1489,6 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); break; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_COLON) { @@ -1660,34 +1498,29 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); parser_parse_expression (context_p, PARSE_EXPR_NO_COMMA); -#if JERRY_ESNEXT if (is_proto) { parser_emit_cbc_ext (context_p, CBC_EXT_SET__PROTO__); break; } -#endif /* JERRY_ESNEXT */ if (context_p->last_cbc_opcode == CBC_PUSH_LITERAL) { -#if JERRY_ESNEXT if (context_p->last_cbc.literal_type == LEXER_FUNCTION_LITERAL) { parser_set_function_name (context_p, context_p->last_cbc.literal_index, literal_index, 0); } -#endif /* JERRY_ESNEXT */ context_p->last_cbc_opcode = CBC_SET_LITERAL_PROPERTY; context_p->last_cbc.value = literal_index; } else { -#if JERRY_ESNEXT if (context_p->last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_FINALIZE_ANONYMOUS_CLASS)) { uint16_t name_index = scanner_save_literal (context_p, literal_index); parser_emit_cbc_ext_literal (context_p, CBC_EXT_SET_CLASS_NAME, name_index); } -#endif /* JERRY_ESNEXT */ + parser_emit_cbc_literal (context_p, CBC_SET_PROPERTY, literal_index); } @@ -1705,19 +1538,10 @@ parser_parse_object_literal (parser_context_t *context_p) /**< context */ } } -#if !JERRY_ESNEXT - while (context_p->stack_top_uint8 != PARSER_OBJECT_PROPERTY_START) - { - parser_stack_pop (context_p, NULL, 3); - } - - parser_stack_pop_uint8 (context_p); -#else /* JERRY_ESNEXT */ if (has_super_env) { parser_emit_cbc_ext (context_p, CBC_EXT_POP_OBJECT_SUPER_ENVIRONMENT); } -#endif /* !JERRY_ESNEXT */ } /* parser_parse_object_literal */ /** @@ -1733,21 +1557,12 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ uint16_t function_literal_index; int32_t function_name_index = -1; -#if !JERRY_ESNEXT - JERRY_ASSERT (status_flags & PARSER_IS_FUNC_EXPRESSION); -#endif /* !JERRY_ESNEXT */ - -#if JERRY_ESNEXT if (status_flags & PARSER_IS_FUNC_EXPRESSION) { -#endif /* !JERRY_ESNEXT */ - #if JERRY_DEBUGGER parser_line_counter_t debugger_line = context_p->token.line; parser_line_counter_t debugger_column = context_p->token.column; #endif /* JERRY_DEBUGGER */ - -#if JERRY_ESNEXT uint32_t parent_status_flags = context_p->status_flags; context_p->status_flags &= @@ -1765,20 +1580,15 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ context_p->status_flags |= PARSER_IS_GENERATOR_FUNCTION | PARSER_DISALLOW_AWAIT_YIELD; status_flags |= PARSER_IS_GENERATOR_FUNCTION | PARSER_DISALLOW_AWAIT_YIELD; } -#endif /* JERRY_ESNEXT */ if (!lexer_check_next_character (context_p, LIT_CHAR_LEFT_PAREN)) { -#if JERRY_ESNEXT /* The `await` keyword is interpreted as an IdentifierReference within function expressions */ context_p->status_flags &= (uint32_t) ~PARSER_IS_CLASS_STATIC_BLOCK; -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); -#if JERRY_ESNEXT context_p->status_flags |= parent_status_flags & PARSER_IS_CLASS_STATIC_BLOCK; -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { @@ -1802,7 +1612,6 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ context_p->token.column = debugger_column; } #endif /* JERRY_DEBUGGER */ - if (context_p->token.keyword_type >= LEXER_FIRST_NON_STRICT_ARGUMENTS) { status_flags |= PARSER_HAS_NON_STRICT_ARG; @@ -1811,10 +1620,8 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ function_name_index = context_p->lit_object.index; } -#if JERRY_ESNEXT context_p->status_flags = parent_status_flags; } -#endif /* JERRY_ESNEXT */ if (context_p->last_cbc_opcode == CBC_PUSH_LITERAL) { @@ -1834,12 +1641,10 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ JERRY_ASSERT (context_p->last_cbc_opcode == PARSER_CBC_UNAVAILABLE); -#if JERRY_ESNEXT if (function_name_index != -1) { parser_set_function_name (context_p, function_literal_index, (uint16_t) function_name_index, 0); } -#endif /* JERRY_ESNEXT */ if (literals == 1) { @@ -1869,8 +1674,6 @@ parser_parse_function_expression (parser_context_t *context_p, /**< context */ context_p->last_cbc.literal_keyword_type = LEXER_EOS; } /* parser_parse_function_expression */ -#if JERRY_ESNEXT - /** * Parse template literal. */ @@ -2065,8 +1868,6 @@ parser_abort_parsing_after_assignment_expression (parser_context_t *context_p) return (context_p->token.type != LEXER_RIGHT_PAREN && context_p->token.type != LEXER_COMMA); } /* parser_abort_parsing_after_assignment_expression */ -#endif /* JERRY_ESNEXT */ - /** * Parse and record unary operators, and parse the primary literal. * @@ -2094,7 +1895,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ context_p->token.type = LEXER_NEGATE; break; } -#if JERRY_ESNEXT case LEXER_KEYW_AWAIT: { #if JERRY_MODULE_SYSTEM @@ -2111,7 +1911,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ } break; } -#endif /* JERRY_ESNEXT */ } /* Bracketed expressions are primary expressions. At this @@ -2119,13 +1918,11 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ * they are processed when their closing paren is reached. */ if (context_p->token.type == LEXER_LEFT_PAREN) { -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p) { JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); break; } -#endif /* JERRY_ESNEXT */ (*grouping_level_p) += PARSER_GROUPING_LEVEL_INCREASE; new_was_seen = false; } @@ -2134,7 +1931,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ /* After 'new' unary operators are not allowed. */ new_was_seen = true; -#if JERRY_ESNEXT /* Check if "new.target" is written here. */ if (scanner_try_scan_new_target (context_p)) { @@ -2148,7 +1944,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ /* Found "new.target" return here */ return false; } -#endif /* JERRY_ESNEXT */ } else if (new_was_seen || (*grouping_level_p == PARSE_EXPR_LEFT_HAND_SIDE) || !LEXER_IS_UNARY_OP_TOKEN (context_p->token.type)) @@ -2163,7 +1958,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ /* Parse primary expression. */ switch (context_p->token.type) { -#if JERRY_ESNEXT case LEXER_HASHMARK: { if (!lexer_scan_private_identifier (context_p)) @@ -2195,10 +1989,8 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ /* The string is a normal string literal. */ /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case LEXER_LITERAL: { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (context_p->next_scanner_info_p->source_p == context_p->source_p)) { JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); @@ -2238,7 +2030,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ parser_parse_function_expression (context_p, arrow_status_flags); return parser_abort_parsing_after_assignment_expression (context_p); } -#endif /* JERRY_ESNEXT */ uint8_t type = context_p->token.lit_location.type; @@ -2320,7 +2111,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ } case LEXER_LEFT_BRACE: { -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p && context_p->next_scanner_info_p->type == SCANNER_TYPE_INITIALIZER) { @@ -2339,14 +2129,12 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ scanner_release_next (context_p, sizeof (scanner_location_info_t)); } -#endif /* JERRY_ESNEXT */ parser_parse_object_literal (context_p); break; } case LEXER_LEFT_SQUARE: { -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p) { if (context_p->next_scanner_info_p->type == SCANNER_TYPE_INITIALIZER) @@ -2367,7 +2155,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ scanner_release_next (context_p, sizeof (scanner_info_t)); } } -#endif /* JERRY_ESNEXT */ parser_parse_array_literal (context_p); break; @@ -2399,18 +2186,15 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ } case LEXER_KEYW_THIS: { -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_ALLOW_SUPER_CALL) { parser_emit_cbc_ext (context_p, CBC_EXT_RESOLVE_LEXICAL_THIS); } else { -#endif /* JERRY_ESNEXT */ parser_emit_cbc (context_p, CBC_PUSH_THIS); -#if JERRY_ESNEXT } -#endif /* JERRY_ESNEXT */ + break; } case LEXER_LIT_TRUE: @@ -2428,7 +2212,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ parser_emit_cbc (context_p, CBC_PUSH_NULL); break; } -#if JERRY_ESNEXT case LEXER_KEYW_CLASS: { parser_parse_class (context_p, false); @@ -2506,7 +2289,6 @@ parser_parse_unary_expression (parser_context_t *context_p, /**< context */ return (context_p->token.type != LEXER_RIGHT_PAREN && context_p->token.type != LEXER_COMMA); } -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case LEXER_KEYW_IMPORT: { @@ -2588,7 +2370,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ { parser_push_result (context_p); -#if JERRY_ESNEXT if (lexer_check_next_character (context_p, LIT_CHAR_HASHMARK)) { lexer_next_token (context_p); @@ -2609,7 +2390,7 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); continue; } -#endif /* JERRY_ESNEXT */ + lexer_expect_identifier (context_p, LEXER_STRING_LITERAL); JERRY_ASSERT (context_p->token.type == LEXER_LITERAL @@ -2627,13 +2408,11 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ context_p->last_cbc_opcode = PARSER_CBC_UNAVAILABLE; parser_emit_cbc_literal_from_token (context_p, CBC_PUSH_PROP_THIS_LITERAL); } -#if JERRY_ESNEXT else if (context_p->last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_SUPER)) { context_p->last_cbc_opcode = PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_SUPER_PROP_LITERAL); context_p->last_cbc.literal_index = context_p->lit_object.index; } -#endif /* JERRY_ESNEXT */ else { parser_emit_cbc_literal_from_token (context_p, CBC_PUSH_PROP_LITERAL); @@ -2646,14 +2425,12 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ { parser_push_result (context_p); -#if JERRY_ESNEXT uint16_t last_cbc_opcode = context_p->last_cbc_opcode; if (last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_SUPER)) { context_p->last_cbc_opcode = PARSER_CBC_UNAVAILABLE; } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); parser_parse_expression (context_p, PARSE_EXPR); @@ -2663,13 +2440,11 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ } lexer_next_token (context_p); -#if JERRY_ESNEXT if (last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_SUPER)) { parser_emit_cbc_ext (context_p, CBC_EXT_PUSH_SUPER_PROP); continue; } -#endif /* JERRY_ESNEXT */ if (PARSER_IS_MUTABLE_PUSH_LITERAL (context_p->last_cbc_opcode)) { @@ -2681,10 +2456,7 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ } continue; } - -#if JERRY_ESNEXT case LEXER_TEMPLATE_LITERAL: -#endif /* JERRY_ESNEXT */ case LEXER_LEFT_PAREN: { size_t call_arguments = 0; @@ -2695,9 +2467,7 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ if (context_p->stack_top_uint8 == LEXER_KEYW_NEW) { -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_PAREN) -#endif /* JERRY_ESNEXT */ { parser_stack_pop_uint8 (context_p); opcode = CBC_NEW; @@ -2717,7 +2487,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ opcode = CBC_CALL_PROP; context_p->last_cbc_opcode = PARSER_PUSH_PROP_TO_PUSH_PROP_REFERENCE (context_p->last_cbc_opcode); } -#if JERRY_ESNEXT else if (context_p->last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_SUPER_CONSTRUCTOR)) { opcode = PARSER_TO_EXT_OPCODE (CBC_EXT_SUPER_CALL); @@ -2737,7 +2506,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ context_p->last_cbc_opcode = PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_PRIVATE_PROP_LITERAL_REFERENCE); opcode = CBC_CALL_PROP; } -#endif /* JERRY_ESNEXT */ else if (JERRY_UNLIKELY (context_p->status_flags & PARSER_INSIDE_WITH) && PARSER_IS_PUSH_LITERALS_WITH_THIS (context_p->last_cbc_opcode) && context_p->last_cbc.literal_type == LEXER_IDENT_LITERAL) @@ -2748,7 +2516,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ } } -#if JERRY_ESNEXT bool has_spread_element = false; if (context_p->token.type == LEXER_TEMPLATE_LITERAL) @@ -2790,33 +2557,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ break; } } -#else /* !JERRY_ESNEXT */ - lexer_next_token (context_p); - - if (context_p->token.type != LEXER_RIGHT_PAREN) - { - while (true) - { - if (++call_arguments > CBC_MAXIMUM_BYTE_VALUE) - { - parser_raise_error (context_p, PARSER_ERR_ARGUMENT_LIMIT_REACHED); - } - - parser_parse_expression (context_p, PARSE_EXPR_NO_COMMA); - - if (context_p->token.type != LEXER_COMMA) - { - break; - } - lexer_next_token (context_p); - } - - if (context_p->token.type != LEXER_RIGHT_PAREN) - { - parser_raise_error (context_p, PARSER_ERR_RIGHT_PAREN_EXPECTED); - } - } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); @@ -2824,7 +2564,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ { context_p->status_flags |= PARSER_LEXICAL_ENV_NEEDED; -#if JERRY_ESNEXT uint16_t eval_flags = PARSER_SAVE_STATUS_FLAGS (context_p->status_flags); const uint32_t required_flags = PARSER_IS_FUNCTION | PARSER_LEXICAL_BLOCK_NEEDED; @@ -2845,14 +2584,10 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ } else { -#endif /* JERRY_ESNEXT */ parser_emit_cbc (context_p, CBC_EVAL); -#if JERRY_ESNEXT } -#endif /* JERRY_ESNEXT */ } -#if JERRY_ESNEXT if (has_spread_element) { uint16_t spread_opcode; @@ -2879,7 +2614,6 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ parser_emit_cbc_ext_call (context_p, spread_opcode, call_arguments); continue; } -#endif /* JERRY_ESNEXT */ if (call_arguments <= 1) { @@ -2945,9 +2679,7 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ break; } -#if JERRY_ESNEXT uint8_t last_unary_token = LEXER_INCREASE; -#endif /* JERRY_ESNEXT */ /* Generate byte code for the unary operators. */ while (true) @@ -2955,20 +2687,16 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ uint8_t token = context_p->stack_top_uint8; if (!LEXER_IS_UNARY_OP_TOKEN (token)) { -#if JERRY_ESNEXT if (context_p->token.type == LEXER_EXPONENTIATION && last_unary_token != LEXER_INCREASE && last_unary_token != LEXER_DECREASE) { parser_raise_error (context_p, PARSER_ERR_INVALID_EXPONENTIATION); } -#endif /* JERRY_ESNEXT */ + break; } -#if JERRY_ESNEXT last_unary_token = token; -#endif /* JERRY_ESNEXT */ - parser_push_result (context_p); parser_stack_pop_uint8 (context_p); @@ -2984,14 +2712,12 @@ parser_process_unary_expression (parser_context_t *context_p, /**< context */ } parser_emit_unary_lvalue_opcode (context_p, (cbc_opcode_t) token); } -#if JERRY_ESNEXT else if (JERRY_UNLIKELY (token == LEXER_KEYW_AWAIT)) { cbc_ext_opcode_t opcode = ((context_p->status_flags & PARSER_IS_GENERATOR_FUNCTION) ? CBC_EXT_GENERATOR_AWAIT : CBC_EXT_AWAIT); parser_emit_cbc_ext (context_p, opcode); } -#endif /* JERRY_ESNEXT */ else { token = (uint8_t) (LEXER_UNARY_OP_TOKEN_TO_OPCODE (token)); @@ -3082,7 +2808,6 @@ parser_append_binary_single_assignment_token (parser_context_t *context_p, /**< assign_opcode = CBC_ASSIGN_SET_IDENT; -#if JERRY_ESNEXT if (!(pattern_flags & (PARSER_PATTERN_LET | PARSER_PATTERN_CONST | PARSER_PATTERN_LOCAL))) { if (scanner_literal_is_const_reg (context_p, literal_index)) @@ -3107,7 +2832,6 @@ parser_append_binary_single_assignment_token (parser_context_t *context_p, /**< assign_opcode = CBC_INIT_ARG_OR_CATCH; } } -#endif /* JERRY_ESNEXT */ parser_stack_push_uint16 (context_p, literal_index); JERRY_ASSERT (CBC_SAME_ARGS (CBC_PUSH_LITERAL, assign_opcode)); @@ -3150,7 +2874,6 @@ parser_append_binary_single_assignment_token (parser_context_t *context_p, /**< context_p->last_cbc_opcode = CBC_PUSH_THIS_LITERAL; } } -#if JERRY_ESNEXT else if (context_p->last_cbc_opcode == PARSER_TO_EXT_OPCODE (CBC_EXT_PUSH_SUPER_PROP_LITERAL)) { context_p->last_cbc_opcode = PARSER_TO_EXT_OPCODE (CBC_EXT_SUPER_PROP_LITERAL_ASSIGNMENT_REFERENCE); @@ -3169,24 +2892,17 @@ parser_append_binary_single_assignment_token (parser_context_t *context_p, /**< parser_stack_push_uint8 (context_p, CBC_EXT_ASSIGN_PRIVATE); assign_opcode = CBC_EXT_OPCODE; } -#endif /* JERRY_ESNEXT */ else { /* Invalid LeftHandSide expression. */ // 3820, 3815 -#if JERRY_ESNEXT parser_check_invalid_new_target (context_p, CBC_ASSIGN); parser_raise_error (context_p, PARSER_ERR_INVALID_LHS_ASSIGNMENT); -#else /* !JERRY_ESNEXT */ - parser_emit_cbc_ext (context_p, CBC_EXT_THROW_REFERENCE_ERROR); -#endif /* JERRY_ESNEXT */ } parser_stack_push_uint8 (context_p, assign_opcode); parser_stack_push_uint8 (context_p, LEXER_ASSIGN); } /* parser_append_binary_single_assignment_token */ -#if JERRY_ESNEXT - /** * Check for invalid chain of logical operators */ @@ -3223,8 +2939,6 @@ parser_check_invalid_logical_op (parser_context_t *context_p, /**< context */ } } /* parser_check_invalid_logical_op */ -#endif /* JERRY_ESNEXT */ - /** * Append a binary lvalue token. */ @@ -3240,12 +2954,10 @@ parser_append_binary_lvalue_token (parser_context_t *context_p, /**< context */ parser_emit_ident_reference (context_p, CBC_PUSH_IDENT_REFERENCE); -#if JERRY_ESNEXT if (!is_logical_assignment && scanner_literal_is_const_reg (context_p, context_p->last_cbc.literal_index)) { parser_stack_push_uint8 (context_p, LEXER_ASSIGN_CONST); } -#endif /* JERRY_ESNEXT */ } else if (PARSER_IS_PUSH_PROP (context_p->last_cbc_opcode)) { @@ -3254,13 +2966,8 @@ parser_append_binary_lvalue_token (parser_context_t *context_p, /**< context */ else { /* Invalid LeftHandSide expression. */ -#if JERRY_ESNEXT parser_check_invalid_new_target (context_p, CBC_ASSIGN); parser_raise_error (context_p, PARSER_ERR_INVALID_LHS_ASSIGNMENT); -#else /* !JERRY_ESNEXT */ - parser_emit_cbc_ext (context_p, CBC_EXT_THROW_REFERENCE_ERROR); -#endif /* JERRY_ESNEXT */ - parser_emit_cbc (context_p, CBC_PUSH_PROP_REFERENCE); } @@ -3277,21 +2984,17 @@ static void parser_append_logical_token (parser_context_t *context_p, /**< context */ uint16_t opcode) /**< opcode */ { -#if JERRY_ESNEXT if (opcode != PARSER_TO_EXT_OPCODE (CBC_EXT_BRANCH_IF_NULLISH)) { parser_check_invalid_logical_op (context_p, LEXER_NULLISH_COALESCING, LEXER_NULLISH_COALESCING); } -#endif /* JERRY_ESNEXT */ parser_branch_t branch; - parser_emit_cbc_forward_branch (context_p, opcode, &branch); parser_stack_push (context_p, &branch, sizeof (parser_branch_t)); parser_stack_push_uint8 (context_p, (uint8_t) context_p->token.type); } /* parser_append_logical_token */ -#if JERRY_ESNEXT /** * Append a logical token. */ @@ -3307,7 +3010,6 @@ parser_append_logical_assignment_token (parser_context_t *context_p, /**< contex parser_append_binary_lvalue_token (context_p, true); parser_append_logical_token (context_p, opcode); } /* parser_append_logical_assignment_token */ -#endif /* JERRY_ESNEXT */ /** * Append a binary token. @@ -3331,9 +3033,7 @@ parser_append_binary_token (parser_context_t *context_p) /**< context */ case LEXER_ASSIGN_MULTIPLY: case LEXER_ASSIGN_DIVIDE: case LEXER_ASSIGN_MODULO: -#if JERRY_ESNEXT case LEXER_ASSIGN_EXPONENTIATION: -#endif /* JERRY_ESNEXT */ case LEXER_ASSIGN_LEFT_SHIFT: case LEXER_ASSIGN_RIGHT_SHIFT: case LEXER_ASSIGN_UNS_RIGHT_SHIFT: @@ -3344,7 +3044,6 @@ parser_append_binary_token (parser_context_t *context_p) /**< context */ parser_append_binary_lvalue_token (context_p, false); break; } -#if JERRY_ESNEXT case LEXER_ASSIGN_NULLISH_COALESCING: { parser_append_logical_assignment_token (context_p, PARSER_TO_EXT_OPCODE (CBC_EXT_BRANCH_IF_NULLISH)); @@ -3365,7 +3064,6 @@ parser_append_binary_token (parser_context_t *context_p) /**< context */ parser_append_logical_token (context_p, PARSER_TO_EXT_OPCODE (CBC_EXT_BRANCH_IF_NULLISH)); break; } -#endif /* JERRY_ESNEXT */ case LEXER_LOGICAL_OR: { parser_append_logical_token (context_p, CBC_BRANCH_IF_LOGICAL_TRUE); @@ -3391,14 +3089,9 @@ static void parser_process_binary_assignment_token (parser_context_t *context_p, /**< context */ uint8_t token) /**< token */ { -#if !JERRY_ESNEXT - JERRY_UNUSED (token); -#endif /* !JERRY_ESNEXT */ - uint16_t index = PARSER_INVALID_LITERAL_INDEX; uint16_t opcode = context_p->stack_top_uint8; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (opcode == CBC_EXT_OPCODE)) { parser_stack_pop_uint8 (context_p); @@ -3408,7 +3101,6 @@ parser_process_binary_assignment_token (parser_context_t *context_p, /**< contex parser_stack_pop_uint8 (context_p); } else -#endif /* JERRY_ESNEXT */ { parser_stack_pop_uint8 (context_p); @@ -3422,7 +3114,6 @@ parser_process_binary_assignment_token (parser_context_t *context_p, /**< contex } } -#if JERRY_ESNEXT bool group_expr_assingment = false; if (JERRY_UNLIKELY (context_p->stack_top_uint8 == LEXER_ASSIGN_GROUP_EXPR)) @@ -3436,22 +3127,18 @@ parser_process_binary_assignment_token (parser_context_t *context_p, /**< contex parser_stack_pop_uint8 (context_p); parser_emit_cbc_ext (context_p, CBC_EXT_THROW_ASSIGN_CONST_ERROR); } -#endif /* JERRY_ESNEXT */ if (index == PARSER_INVALID_LITERAL_INDEX) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (token == LEXER_ASSIGN_REFERENCE)) { opcode = CBC_ASSIGN_PUSH_RESULT; } -#endif /* JERRY_ESNEXT */ parser_emit_cbc (context_p, opcode); return; } -#if JERRY_ESNEXT if (!group_expr_assingment) { uint16_t function_literal_index = parser_check_anonymous_function_declaration (context_p); @@ -3472,7 +3159,6 @@ parser_process_binary_assignment_token (parser_context_t *context_p, /**< contex parser_emit_cbc (context_p, CBC_ASSIGN_PUSH_RESULT); return; } -#endif /* JERRY_ESNEXT */ if (context_p->last_cbc_opcode == CBC_PUSH_LITERAL && opcode == CBC_ASSIGN_SET_IDENT) { @@ -3510,7 +3196,6 @@ parser_process_logical_token (parser_context_t *context_p) /**< context */ parser_set_branch_to_current_position (context_p, &branch); } /* parser_process_logical_token */ -#if JERRY_ESNEXT /** * Emit opcode for logical assignment tokens. */ @@ -3537,8 +3222,6 @@ parser_process_logical_assignment_token (parser_context_t *context_p) /**< conte parser_set_branch_to_current_position (context_p, &prop_reference_branch); } /* parser_process_logical_assignment_token */ -#endif /* JERRY_ESNEXT */ - /** * Emit opcode for binary tokens. */ @@ -3621,9 +3304,7 @@ parser_process_binary_opcodes (parser_context_t *context_p, /**< context */ case LEXER_ASSIGN_MULTIPLY: case LEXER_ASSIGN_DIVIDE: case LEXER_ASSIGN_MODULO: -#if JERRY_ESNEXT case LEXER_ASSIGN_EXPONENTIATION: -#endif /* JERRY_ESNEXT */ case LEXER_ASSIGN_LEFT_SHIFT: case LEXER_ASSIGN_RIGHT_SHIFT: case LEXER_ASSIGN_UNS_RIGHT_SHIFT: @@ -3634,7 +3315,6 @@ parser_process_binary_opcodes (parser_context_t *context_p, /**< context */ parser_process_binary_lvalue_token (context_p, token); continue; } -#if JERRY_ESNEXT case LEXER_ASSIGN_NULLISH_COALESCING: case LEXER_ASSIGN_LOGICAL_OR: case LEXER_ASSIGN_LOGICAL_AND: @@ -3643,14 +3323,12 @@ parser_process_binary_opcodes (parser_context_t *context_p, /**< context */ continue; } case LEXER_NULLISH_COALESCING: -#endif /* JERRY_ESNEXT */ case LEXER_LOGICAL_OR: case LEXER_LOGICAL_AND: { parser_process_logical_token (context_p); continue; } -#if JERRY_ESNEXT case LEXER_KEYW_IN: { if (context_p->stack_top_uint8 == LEXER_PRIVATE_PRIMARY_EXPR) @@ -3663,7 +3341,6 @@ parser_process_binary_opcodes (parser_context_t *context_p, /**< context */ /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ default: { parser_process_binary_token (context_p, token); @@ -3673,7 +3350,6 @@ parser_process_binary_opcodes (parser_context_t *context_p, /**< context */ } } /* parser_process_binary_opcodes */ -#if JERRY_ESNEXT /** * End position marker of a pattern. */ @@ -4273,8 +3949,6 @@ parser_parse_initializer_by_next_char (parser_context_t *context_p, /**< context } } /* parser_parse_initializer_by_next_char */ -#endif /* JERRY_ESNEXT */ - /** * Process ternary expression. */ @@ -4370,7 +4044,6 @@ parser_process_group_expression (parser_context_t *context_p, /**< context */ parser_stack_pop_uint8 (context_p); lexer_next_token (context_p); -#if JERRY_ESNEXT /* Lookahead for anonymous function declaration after '=' token when the assignment base is LHS expression with a single indentifier in it. e.g.: (a) = function () {} */ if (JERRY_UNLIKELY (context_p->token.type == LEXER_ASSIGN @@ -4380,7 +4053,6 @@ parser_process_group_expression (parser_context_t *context_p, /**< context */ { parser_stack_push_uint8 (context_p, LEXER_ASSIGN_GROUP_EXPR); } -#endif /* JERRY_ESNEXT */ } /* parser_process_group_expression */ /** @@ -4457,16 +4129,13 @@ process_unary_expression: if (LEXER_IS_BINARY_OP_TOKEN (context_p->token.type)) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (context_p->token.type == LEXER_NULLISH_COALESCING)) { parser_check_invalid_logical_op (context_p, LEXER_LOGICAL_OR, LEXER_LOGICAL_AND); } -#endif /* JERRY_ESNEXT */ min_prec_treshold = parser_binary_precedence_table[context_p->token.type - LEXER_FIRST_BINARY_OP]; -#if JERRY_ESNEXT /* Check for BINARY_LVALUE tokens + LEXER_LOGICAL_OR + LEXER_LOGICAL_AND + LEXER_EXPONENTIATION */ if ((min_prec_treshold == PARSER_RIGHT_TO_LEFT_ORDER_EXPONENTIATION) || (min_prec_treshold <= PARSER_RIGHT_TO_LEFT_ORDER_MAX_PRECEDENCE @@ -4475,15 +4144,6 @@ process_unary_expression: /* Right-to-left evaluation order. */ min_prec_treshold++; } -#else /* !JERRY_ESNEXT */ - /* Check for BINARY_LVALUE tokens + LEXER_LOGICAL_OR + LEXER_LOGICAL_AND */ - if (min_prec_treshold <= PARSER_RIGHT_TO_LEFT_ORDER_MAX_PRECEDENCE - && min_prec_treshold != PARSER_RIGHT_TO_LEFT_ORDER_TERNARY_PRECEDENCE) - { - /* Right-to-left evaluation order. */ - min_prec_treshold++; - } -#endif /* JERRY_ESNEXT */ } parser_process_binary_opcodes (context_p, min_prec_treshold); diff --git a/jerry-core/parser/js/js-parser-internal.h b/jerry-core/parser/js/js-parser-internal.h index 476b7996d..4e46ea7cd 100644 --- a/jerry-core/parser/js/js-parser-internal.h +++ b/jerry-core/parser/js/js-parser-internal.h @@ -57,7 +57,6 @@ typedef enum * after the last byte code */ PARSER_DEBUGGER_BREAKPOINT_APPENDED = (1u << 11), /**< pending (unsent) breakpoint * info is available */ -#if JERRY_ESNEXT PARSER_LEXICAL_BLOCK_NEEDED = (1u << 12), /**< global script: needs a lexical environment for let and const * function: needs a lexical environment for arguments */ PARSER_IS_ARROW_FUNCTION = (1u << 13), /**< an arrow function is parsed */ @@ -79,7 +78,6 @@ typedef enum PARSER_IS_CLASS_STATIC_BLOCK = (1u << 26), /**< a class static block is parsed */ PARSER_PRIVATE_FUNCTION_NAME = PARSER_IS_FUNC_EXPRESSION, /**< represents private method for * parser_set_function_name*/ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM PARSER_MODULE_DEFAULT_CLASS_OR_FUNC = (1u << 27), /**< parsing a function or class default export */ PARSER_MODULE_STORE_IDENT = (1u << 28), /**< store identifier of the current export statement */ @@ -128,14 +126,10 @@ typedef enum typedef enum { PARSER_CHECK_BLOCK_CONTEXT, /**< check block context */ -#if JERRY_ESNEXT PARSER_CHECK_GLOBAL_CONTEXT, /**< check global context */ PARSER_CHECK_FUNCTION_CONTEXT, /**< check function context */ -#endif /* JERRY_ESNEXT */ } parser_check_context_type_t; -#if JERRY_ESNEXT - /** * Class field bits. */ @@ -148,8 +142,6 @@ typedef enum PARSER_CLASS_FIELD_STATIC_BLOCK = (1u << 4), /**< static class field */ } parser_class_field_type_t; -#endif /* JERRY_ESNEXT */ - /** * Mask for strict mode code */ @@ -172,7 +164,6 @@ typedef enum #define PARSER_MAX_BRANCH_LENGTH 3 #endif /* PARSER_MAXIMUM_CODE_SIZE <= UINT16_MAX */ -#if JERRY_ESNEXT /** * Offset of PARSER_ALLOW_SUPER */ @@ -222,15 +213,6 @@ typedef enum #define PARSER_IS_NORMAL_ASYNC_FUNCTION(status_flags) \ (((status_flags) & (PARSER_IS_GENERATOR_FUNCTION | PARSER_IS_ASYNC_FUNCTION)) == PARSER_IS_ASYNC_FUNCTION) -#else /* !JERRY_ESNEXT */ - -/** - * All flags that affect exotic arguments object creation. - */ -#define PARSER_ARGUMENTS_RELATED_FLAGS (PARSER_ARGUMENTS_NEEDED | PARSER_IS_STRICT) - -#endif /* JERRY_ESNEXT */ - /* Checks whether unmapped arguments are needed. */ #define PARSER_NEEDS_MAPPED_ARGUMENTS(status_flags) \ (((status_flags) &PARSER_ARGUMENTS_RELATED_FLAGS) == PARSER_ARGUMENTS_NEEDED) @@ -403,8 +385,6 @@ typedef struct */ #define PARSER_SCOPE_STACK_FUNC 0xffff -#if JERRY_ESNEXT - /** * Mask for decoding the register index of map_to */ @@ -426,8 +406,6 @@ typedef struct */ #define PARSER_SCOPE_STACK_IS_LOCAL_CREATED (PARSER_SCOPE_STACK_IS_CONST_REG) -#endif /* JERRY_ESNEXT */ - /** * Starting literal index for registers. */ @@ -485,7 +463,6 @@ typedef struct #endif /* JERRY_LINE_INFO */ -#if JERRY_ESNEXT /** * List of private field contexts */ @@ -495,7 +472,6 @@ typedef struct parser_private_context_t struct parser_private_context_t *prev_p; /**< previous private field context */ uint8_t opts; /**< options */ } parser_private_context_t; -#endif /* JERRY_ESNEXT */ /** * Those members of a context which needs @@ -512,9 +488,7 @@ typedef struct parser_saved_context_t /* Literal types */ uint16_t argument_count; /**< number of function arguments */ -#if JERRY_ESNEXT uint16_t argument_length; /**< length property of arguments */ -#endif /* JERRY_ESNEXT */ uint16_t register_count; /**< number of registers */ uint16_t literal_count; /**< number of literals */ @@ -526,11 +500,8 @@ typedef struct parser_saved_context_t uint16_t scope_stack_size; /**< size of scope stack */ uint16_t scope_stack_top; /**< preserved top of scope stack */ uint16_t scope_stack_reg_top; /**< preserved top register of scope stack */ -#if JERRY_ESNEXT uint16_t scope_stack_global_end; /**< end of global declarations of a function */ ecma_value_t tagged_template_literal_cp; /**< compessed pointer to the tagged template literal collection */ -#endif /* JERRY_ESNEXT */ - #ifndef JERRY_NDEBUG uint16_t context_stack_depth; /**< current context stack depth */ #endif /* !JERRY_NDEBUG */ @@ -602,9 +573,7 @@ typedef struct /* Literal types */ uint16_t argument_count; /**< number of function arguments */ -#if JERRY_ESNEXT uint16_t argument_length; /**< length property of arguments */ -#endif /* JERRY_ESNEXT */ uint16_t register_count; /**< number of registers */ uint16_t literal_count; /**< number of literals */ @@ -618,11 +587,9 @@ typedef struct uint16_t scope_stack_size; /**< size of scope stack */ uint16_t scope_stack_top; /**< current top of scope stack */ uint16_t scope_stack_reg_top; /**< current top register of scope stack */ -#if JERRY_ESNEXT uint16_t scope_stack_global_end; /**< end of global declarations of a function */ ecma_value_t tagged_template_literal_cp; /**< compessed pointer to the tagged template literal collection */ parser_private_context_t *private_context_p; /**< private context */ -#endif /* JERRY_ESNEXT */ uint8_t stack_top_uint8; /**< top byte stored on the stack */ #ifndef JERRY_NDEBUG @@ -738,6 +705,7 @@ ecma_string_t *parser_new_ecma_string_from_literal (lexer_literal_t *literal_p); void parser_set_branch_to_current_position (parser_context_t *context_p, parser_branch_t *branch_p); void parser_set_breaks_to_current_position (parser_context_t *context_p, parser_branch_node_t *current_p); void parser_set_continues_to_current_position (parser_context_t *context_p, parser_branch_node_t *current_p); +void parser_reverse_class_fields (parser_context_t *context_p, size_t fields_size); /* Convenience macros. */ #define parser_emit_cbc_ext(context_p, opcode) parser_emit_cbc ((context_p), PARSER_TO_EXT_OPCODE (opcode)) @@ -754,10 +722,6 @@ void parser_set_continues_to_current_position (parser_context_t *context_p, pars #define parser_emit_cbc_ext_backward_branch(context_p, opcode, offset) \ parser_emit_cbc_backward_branch ((context_p), PARSER_TO_EXT_OPCODE (opcode), (offset)) -#if JERRY_ESNEXT -void parser_reverse_class_fields (parser_context_t *context_p, size_t fields_size); -#endif /* JERRY_ESNEXT */ - /** * @} * @@ -772,7 +736,6 @@ bool lexer_check_next_character (parser_context_t *context_p, lit_utf8_byte_t ch bool lexer_check_next_characters (parser_context_t *context_p, lit_utf8_byte_t character1, lit_utf8_byte_t character2); uint8_t lexer_consume_next_character (parser_context_t *context_p); bool lexer_check_post_primary_exp (parser_context_t *context_p); -#if JERRY_ESNEXT void lexer_skip_empty_statements (parser_context_t *context_p); bool lexer_check_arrow (parser_context_t *context_p); bool lexer_check_arrow_param (parser_context_t *context_p); @@ -781,7 +744,6 @@ bool lexer_consume_generator (parser_context_t *context_p); bool lexer_consume_assign (parser_context_t *context_p); void lexer_update_await_yield (parser_context_t *context_p, uint32_t status_flags); bool lexer_scan_private_identifier (parser_context_t *context_p); -#endif /* JERRY_ESNEXT */ void lexer_parse_string (parser_context_t *context_p, lexer_string_options_t opts); void lexer_expect_identifier (parser_context_t *context_p, uint8_t literal_type); bool lexer_scan_identifier (parser_context_t *context_p, lexer_parse_options_t opts); @@ -800,9 +762,7 @@ void lexer_construct_literal_object (parser_context_t *context_p, bool lexer_construct_number_object (parser_context_t *context_p, bool is_expr, bool is_negative_number); void lexer_convert_push_number_to_push_literal (parser_context_t *context_p); uint16_t lexer_construct_function_object (parser_context_t *context_p, uint32_t extra_status_flags); -#if JERRY_ESNEXT uint16_t lexer_construct_class_static_block_function (parser_context_t *context_p); -#endif /* JERRY_ESNEXT */ void lexer_construct_regexp_object (parser_context_t *context_p, bool parse_only); bool lexer_compare_identifier_to_string (const lexer_lit_location_t *left_p, const uint8_t *right_p, size_t size); bool lexer_compare_identifiers (parser_context_t *context_p, @@ -811,11 +771,9 @@ bool lexer_compare_identifiers (parser_context_t *context_p, bool lexer_current_is_literal (parser_context_t *context_p, const lexer_lit_location_t *right_ident_p); bool lexer_string_is_use_strict (parser_context_t *context_p); bool lexer_string_is_directive (parser_context_t *context_p); -#if JERRY_ESNEXT bool lexer_token_is_identifier (parser_context_t *context_p, const char *identifier_p, size_t identifier_length); bool lexer_token_is_let (parser_context_t *context_p); bool lexer_token_is_async (parser_context_t *context_p); -#endif /* JERRY_ESNEXT */ bool lexer_compare_literal_to_string (parser_context_t *context_p, const char *string_p, size_t string_length); void lexer_init_line_info (parser_context_t *context_p); uint8_t lexer_convert_binary_lvalue_token_to_binary (uint8_t token); @@ -832,7 +790,6 @@ uint8_t lexer_convert_binary_lvalue_token_to_binary (uint8_t token); void parser_parse_block_expression (parser_context_t *context_p, int options); void parser_parse_expression_statement (parser_context_t *context_p, int options); void parser_parse_expression (parser_context_t *context_p, int options); -#if JERRY_ESNEXT void parser_resolve_private_identifier (parser_context_t *context_p); void parser_save_private_context (parser_context_t *context_p, parser_private_context_t *private_ctx_p, @@ -841,8 +798,6 @@ void parser_restore_private_context (parser_context_t *context_p, parser_private void parser_parse_class (parser_context_t *context_p, bool is_statement); void parser_parse_initializer (parser_context_t *context_p, parser_pattern_flags_t flags); void parser_parse_initializer_by_next_char (parser_context_t *context_p, parser_pattern_flags_t flags); -#endif /* JERRY_ESNEXT */ - /** * @} * @@ -861,21 +816,17 @@ void scanner_reverse_info_list (parser_context_t *context_p); void scanner_cleanup (parser_context_t *context_p); bool scanner_is_context_needed (parser_context_t *context_p, parser_check_context_type_t check_type); -#if JERRY_ESNEXT bool scanner_try_scan_new_target (parser_context_t *context_p); void scanner_check_variables (parser_context_t *context_p); -#endif /* JERRY_ESNEXT */ void scanner_create_variables (parser_context_t *context_p, uint32_t option_flags); void scanner_get_location (scanner_location_t *location_p, parser_context_t *context_p); void scanner_set_location (parser_context_t *context_p, scanner_location_t *location_p); uint16_t scanner_decode_map_to (parser_scope_stack_t *stack_item_p); -#if JERRY_ESNEXT uint16_t scanner_save_literal (parser_context_t *context_p, uint16_t ident_index); bool scanner_literal_is_const_reg (parser_context_t *context_p, uint16_t literal_index); bool scanner_literal_is_created (parser_context_t *context_p, uint16_t literal_index); bool scanner_literal_exists (parser_context_t *context_p, uint16_t literal_index); -#endif /* JERRY_ESNEXT */ void scanner_scan_all (parser_context_t *context_p); @@ -935,7 +886,6 @@ uint8_t *parser_line_info_generate (parser_context_t *context_p); */ ecma_compiled_code_t *parser_parse_function (parser_context_t *context_p, uint32_t status_flags); -#if JERRY_ESNEXT ecma_compiled_code_t *parser_parse_class_static_block (parser_context_t *context_p); ecma_compiled_code_t *parser_parse_arrow_function (parser_context_t *context_p, uint32_t status_flags); ecma_compiled_code_t *parser_parse_class_fields (parser_context_t *context_p); @@ -948,7 +898,6 @@ void parser_compiled_code_set_function_name (parser_context_t *context_p, uint16_t name_index, uint32_t status_flags); uint16_t parser_check_anonymous_function_declaration (parser_context_t *context_p); -#endif /* JERRY_ESNEXT */ /* Error management. */ diff --git a/jerry-core/parser/js/js-parser-statm.c b/jerry-core/parser/js/js-parser-statm.c index b6f5075d2..10df37e51 100644 --- a/jerry-core/parser/js/js-parser-statm.c +++ b/jerry-core/parser/js/js-parser-statm.c @@ -43,12 +43,10 @@ typedef enum { PARSER_STATEMENT_START, PARSER_STATEMENT_BLOCK, -#if JERRY_ESNEXT PARSER_STATEMENT_BLOCK_SCOPE, PARSER_STATEMENT_PRIVATE_SCOPE, PARSER_STATEMENT_BLOCK_CONTEXT, PARSER_STATEMENT_PRIVATE_CONTEXT, -#endif /* JERRY_ESNEXT */ PARSER_STATEMENT_LABEL, PARSER_STATEMENT_IF, PARSER_STATEMENT_ELSE, @@ -58,10 +56,8 @@ typedef enum PARSER_STATEMENT_WHILE, PARSER_STATEMENT_FOR, PARSER_STATEMENT_FOR_IN, -#if JERRY_ESNEXT PARSER_STATEMENT_FOR_OF, PARSER_STATEMENT_FOR_AWAIT_OF, -#endif /* JERRY_ESNEXT */ PARSER_STATEMENT_WITH, PARSER_STATEMENT_TRY, } parser_statement_type_t; @@ -88,7 +84,6 @@ static const uint8_t parser_statement_flags[] = { PARSER_STATM_HAS_BLOCK, /* PARSER_STATEMENT_BLOCK, */ PARSER_STATM_HAS_BLOCK, -#if JERRY_ESNEXT /* PARSER_STATEMENT_BLOCK_SCOPE, */ PARSER_STATM_HAS_BLOCK, /* PARSER_STATEMENT_PRIVATE_SCOPE, */ @@ -97,7 +92,6 @@ static const uint8_t parser_statement_flags[] = { PARSER_STATM_HAS_BLOCK | PARSER_STATM_CONTEXT_BREAK, /* PARSER_STATEMENT_PRIVATE_CONTEXT, */ PARSER_STATM_CONTEXT_BREAK, -#endif /* JERRY_ESNEXT */ /* PARSER_STATEMENT_LABEL */ PARSER_STATM_SINGLE_STATM, /* PARSER_STATEMENT_IF */ @@ -116,19 +110,16 @@ static const uint8_t parser_statement_flags[] = { PARSER_STATM_BREAK_TARGET | PARSER_STATM_CONTINUE_TARGET | PARSER_STATM_SINGLE_STATM, /* PARSER_STATEMENT_FOR_IN */ PARSER_STATM_BREAK_TARGET | PARSER_STATM_CONTINUE_TARGET | PARSER_STATM_SINGLE_STATM | PARSER_STATM_CONTEXT_BREAK, -#if JERRY_ESNEXT /* PARSER_STATEMENT_FOR_OF */ PARSER_STATM_BREAK_TARGET | PARSER_STATM_CONTINUE_TARGET | PARSER_STATM_SINGLE_STATM | PARSER_STATM_CONTEXT_BREAK, /* PARSER_STATEMENT_FOR_AWAIT_OF */ PARSER_STATM_BREAK_TARGET | PARSER_STATM_CONTINUE_TARGET | PARSER_STATM_SINGLE_STATM | PARSER_STATM_CONTEXT_BREAK, -#endif /* JERRY_ESNEXT */ /* PARSER_STATEMENT_WITH */ PARSER_STATM_CONTEXT_BREAK | PARSER_STATM_SINGLE_STATM, /* PARSER_STATEMENT_TRY */ PARSER_STATM_HAS_BLOCK | PARSER_STATM_CONTEXT_BREAK }; -#if JERRY_ESNEXT /** * Block statement. */ @@ -146,8 +137,6 @@ typedef struct parser_branch_t branch; /**< branch to the end */ } parser_block_context_t; -#endif /* !JERRY_ESNEXT */ - /** * Loop statement. */ @@ -261,7 +250,6 @@ parser_statement_length (uint8_t type) /**< type of statement */ static const uint8_t statement_lengths[] = { /* PARSER_STATEMENT_BLOCK */ 1, -#if JERRY_ESNEXT /* PARSER_STATEMENT_BLOCK_SCOPE */ (uint8_t) (sizeof (parser_block_statement_t) + 1), /* PARSER_STATEMENT_PRIVATE_SCOPE */ @@ -270,7 +258,6 @@ parser_statement_length (uint8_t type) /**< type of statement */ (uint8_t) (sizeof (parser_block_statement_t) + sizeof (parser_block_context_t) + 1), /* PARSER_STATEMENT_PRIVATE_CONTEXT */ (uint8_t) (sizeof (parser_block_statement_t) + sizeof (parser_block_context_t) + 1), -#endif /* JERRY_ESNEXT */ /* PARSER_STATEMENT_LABEL */ (uint8_t) (sizeof (parser_label_statement_t) + 1), /* PARSER_STATEMENT_IF */ @@ -289,12 +276,10 @@ parser_statement_length (uint8_t type) /**< type of statement */ (uint8_t) (sizeof (parser_for_statement_t) + sizeof (parser_loop_statement_t) + 1), /* PARSER_STATEMENT_FOR_IN */ (uint8_t) (sizeof (parser_for_in_of_statement_t) + sizeof (parser_loop_statement_t) + 1), -#if JERRY_ESNEXT /* PARSER_STATEMENT_FOR_OF */ (uint8_t) (sizeof (parser_for_in_of_statement_t) + sizeof (parser_loop_statement_t) + 1), /* PARSER_STATEMENT_FOR_AWAIT_OF */ (uint8_t) (sizeof (parser_for_in_of_statement_t) + sizeof (parser_loop_statement_t) + 1), -#endif /* JERRY_ESNEXT */ /* PARSER_STATEMENT_WITH */ (uint8_t) (sizeof (parser_with_statement_t) + 1 + 1), /* PARSER_STATEMENT_TRY */ @@ -328,8 +313,6 @@ parser_parse_enclosed_expr (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); } /* parser_parse_enclosed_expr */ -#if JERRY_ESNEXT - /** * Create a block context. * @@ -431,7 +414,6 @@ parser_validate_lexical_context (parser_context_t *context_p) /**< context */ parser_raise_error (context_p, PARSER_ERR_LEXICAL_SINGLE_STATEMENT); } } /* parser_validate_lexical_context */ -#endif /* JERRY_ESNEXT */ /** * Parse var statement. @@ -442,18 +424,15 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ JERRY_ASSERT (context_p->token.type == LEXER_KEYW_VAR || context_p->token.type == LEXER_KEYW_LET || context_p->token.type == LEXER_KEYW_CONST); -#if JERRY_ESNEXT uint8_t declaration_type = context_p->token.type; if (declaration_type != LEXER_KEYW_VAR) { parser_validate_lexical_context (context_p); } -#endif /* JERRY_ESNEXT */ while (true) { -#if JERRY_ESNEXT if (lexer_check_next_characters (context_p, LIT_CHAR_LEFT_SQUARE, LIT_CHAR_LEFT_BRACE)) { parser_pattern_flags_t flags = PARSER_PATTERN_BINDING; @@ -471,7 +450,6 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ } else { -#endif /* JERRY_ESNEXT */ lexer_expect_identifier (context_p, LEXER_IDENT_LITERAL); JERRY_ASSERT (context_p->token.type == LEXER_LITERAL && context_p->token.lit_location.type == LEXER_IDENT_LITERAL); @@ -487,7 +465,6 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ parser_module_append_export_name (context_p); #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT if (declaration_type != LEXER_KEYW_VAR && context_p->token.keyword_type == LEXER_KEYW_LET) { parser_raise_error (context_p, PARSER_ERR_LEXICAL_LET_BINDING); @@ -498,7 +475,6 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED); parser_raise_error (context_p, PARSER_ERR_VARIABLE_REDECLARED); } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); @@ -528,7 +504,6 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ cbc_opcode_t opcode = CBC_ASSIGN_SET_IDENT; -#if JERRY_ESNEXT uint16_t function_literal_index = parser_check_anonymous_function_declaration (context_p); if (function_literal_index == PARSER_ANONYMOUS_CLASS) @@ -554,11 +529,9 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ opcode = CBC_INIT_CONST; } } -#endif /* JERRY_ESNEXT */ parser_emit_cbc_literal (context_p, (uint16_t) opcode, index); } -#if JERRY_ESNEXT else if (declaration_type == LEXER_KEYW_LET) { parser_emit_cbc (context_p, CBC_PUSH_UNDEFINED); @@ -578,7 +551,6 @@ parser_parse_var_statement (parser_context_t *context_p) /**< context */ parser_raise_error (context_p, PARSER_ERR_MISSING_ASSIGN_AFTER_CONST); } } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_COMMA) { @@ -599,7 +571,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ { JERRY_ASSERT (context_p->token.type == LEXER_KEYW_FUNCTION); -#if JERRY_ESNEXT bool is_single_statement = (parser_statement_flags[context_p->stack_top_uint8] & PARSER_STATM_SINGLE_STATM) != 0; if (JERRY_UNLIKELY (is_single_statement)) @@ -646,17 +617,11 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ parser_raise_error (context_p, PARSER_ERR_LEXICAL_SINGLE_STATEMENT); } } -#endif /* JERRY_ESNEXT */ - #if JERRY_FUNCTION_TO_STRING -#if JERRY_ESNEXT if (!(context_p->next_scanner_info_p->u8_arg & SCANNER_FUNCTION_ASYNC)) { context_p->function_start_p = context_p->token.lit_location.char_p; } -#else /* !JERRY_ESNEXT */ - context_p->function_start_p = context_p->token.lit_location.char_p; -#endif /* JERRY_ESNEXT */ #endif /* JERRY_FUNCTION_TO_STRING */ #if JERRY_DEBUGGER @@ -664,7 +629,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ parser_line_counter_t debugger_column = context_p->token.column; #endif /* JERRY_DEBUGGER */ -#if JERRY_ESNEXT bool is_generator_function = false; if (lexer_consume_generator (context_p)) @@ -675,12 +639,10 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ } is_generator_function = true; } -#endif /* JERRY_ESNEXT */ lexer_expect_identifier (context_p, LEXER_NEW_IDENT_LITERAL); JERRY_ASSERT (context_p->token.type == LEXER_LITERAL && context_p->token.lit_location.type == LEXER_IDENT_LITERAL); -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p && context_p->next_scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED) { @@ -688,7 +650,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ } uint16_t function_name_index = context_p->lit_object.index; -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM parser_module_append_export_name (context_p); @@ -702,7 +663,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ status_flags |= PARSER_HAS_NON_STRICT_ARG; } -#if JERRY_ESNEXT if (is_generator_function) { status_flags |= PARSER_IS_GENERATOR_FUNCTION | PARSER_DISALLOW_AWAIT_YIELD; @@ -712,7 +672,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ { status_flags |= PARSER_IS_ASYNC_FUNCTION | PARSER_DISALLOW_AWAIT_YIELD; } -#endif /* JERRY_ESNEXT */ #if JERRY_DEBUGGER if (JERRY_CONTEXT (debugger_flags) & JERRY_DEBUGGER_CONNECTED) @@ -743,7 +702,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ JERRY_ASSERT (scope_stack_p[1].map_from == PARSER_SCOPE_STACK_FUNC); -#if JERRY_ESNEXT if (!(context_p->status_flags & PARSER_IS_STRICT) && (scope_stack_p >= context_p->scope_stack_p + context_p->scope_stack_global_end)) { @@ -789,7 +747,6 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ parser_pop_block_context (context_p); } } -#endif /* JERRY_ESNEXT */ lexer_literal_t *literal_p = PARSER_GET_LITERAL ((size_t) scope_stack_p[1].map_to); @@ -806,10 +763,7 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */ literal_p->u.bytecode_p = compiled_code_p; literal_p->type = LEXER_FUNCTION_LITERAL; -#if JERRY_ESNEXT parser_compiled_code_set_function_name (context_p, compiled_code_p, function_name_index, 0); -#endif /* JERRY_ESNEXT */ - lexer_next_token (context_p); } /* parser_parse_function_statement */ @@ -1140,12 +1094,7 @@ parser_check_left_hand_side_expression (parser_context_t *context_p, /**< contex else { /* Invalid LeftHandSide expression. */ -#if JERRY_ESNEXT parser_raise_error (context_p, PARSER_ERR_INVALID_LHS_FOR_LOOP); -#else /* !JERRY_ESNEXT */ - parser_emit_cbc_ext (context_p, CBC_EXT_THROW_REFERENCE_ERROR); -#endif /* JERRY_ESNEXT */ - return CBC_ASSIGN; } @@ -1162,8 +1111,6 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ JERRY_ASSERT (context_p->token.type == LEXER_KEYW_FOR); lexer_next_token (context_p); - -#if JERRY_ESNEXT bool is_for_await = false; if (context_p->token.type == LEXER_KEYW_AWAIT) @@ -1175,17 +1122,15 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); is_for_await = true; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LEFT_PAREN) { -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LITERAL && context_p->token.keyword_type == LEXER_KEYW_AWAIT && !(context_p->token.lit_location.status_flags & LEXER_LIT_LOCATION_HAS_ESCAPE)) { parser_raise_error (context_p, PARSER_ERR_FOR_AWAIT_NO_ASYNC); } -#endif /* JERRY_ESNEXT */ + parser_raise_error (context_p, PARSER_ERR_LEFT_PAREN_EXPECTED); } @@ -1194,7 +1139,6 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ parser_for_in_of_statement_t for_in_of_statement; scanner_location_t start_location, end_location; -#if JERRY_ESNEXT JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_IN || context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_OF); @@ -1245,29 +1189,18 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ } scanner_set_location (context_p, &end_location); -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR_IN); - - bool is_for_in = true; - scanner_get_location (&start_location, context_p); - - scanner_set_location (context_p, &((scanner_location_info_t *) context_p->next_scanner_info_p)->location); - scanner_release_next (context_p, sizeof (scanner_location_info_t)); -#endif /* JERRY_ESNEXT */ /* The length of both 'in' and 'of' is two. */ const uint8_t *source_end_p = context_p->source_p - 2; scanner_seek (context_p); -#if JERRY_ESNEXT if (is_for_in && is_for_await) { context_p->token.line = context_p->line; context_p->token.column = context_p->column - 2; parser_raise_error (context_p, PARSER_ERR_FOR_AWAIT_NO_OF); } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); int options = is_for_in ? PARSE_EXPR : PARSE_EXPR_NO_COMMA; @@ -1285,24 +1218,20 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ cbc_ext_opcode_t init_opcode = CBC_EXT_FOR_IN_INIT; -#if JERRY_ESNEXT if (!is_for_in) { init_opcode = is_for_await ? CBC_EXT_FOR_AWAIT_OF_INIT : CBC_EXT_FOR_OF_INIT; } -#endif /* JERRY_ESNEXT */ parser_emit_cbc_ext_forward_branch (context_p, init_opcode, &for_in_of_statement.branch); JERRY_ASSERT (context_p->last_cbc_opcode == PARSER_CBC_UNAVAILABLE); for_in_of_statement.start_offset = context_p->byte_code_size; -#if JERRY_ESNEXT if (has_context) { parser_emit_cbc_ext (context_p, CBC_EXT_CLONE_CONTEXT); } -#endif /* JERRY_ESNEXT */ /* The expression parser must not read the 'in' or 'of' tokens. */ scanner_get_location (&end_location, context_p); @@ -1312,7 +1241,6 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ context_p->source_end_p = source_end_p; scanner_seek (context_p); -#if JERRY_ESNEXT if (token_type == LEXER_EOS) { lexer_next_token (context_p); @@ -1322,21 +1250,13 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ token_type = context_p->token.type; } } -#else /* !JERRY_ESNEXT */ - lexer_next_token (context_p); - - uint8_t token_type = context_p->token.type; -#endif /* JERRY_ESNEXT */ switch (token_type) { -#if JERRY_ESNEXT case LEXER_KEYW_LET: case LEXER_KEYW_CONST: -#endif /* JERRY_ESNEXT */ case LEXER_KEYW_VAR: { -#if JERRY_ESNEXT if (lexer_check_next_characters (context_p, LIT_CHAR_LEFT_SQUARE, LIT_CHAR_LEFT_BRACE)) { parser_emit_cbc_ext (context_p, is_for_in ? CBC_EXT_FOR_IN_GET_NEXT : CBC_EXT_FOR_OF_GET_NEXT); @@ -1373,16 +1293,13 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ parser_parse_initializer_by_next_char (context_p, flags); break; } -#endif /* JERRY_ESNEXT */ lexer_expect_identifier (context_p, LEXER_IDENT_LITERAL); -#if JERRY_ESNEXT if (context_p->token.keyword_type == LEXER_KEYW_LET && token_type != LEXER_KEYW_VAR) { parser_raise_error (context_p, PARSER_ERR_LEXICAL_LET_BINDING); } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (context_p->token.type == LEXER_LITERAL && context_p->token.lit_location.type == LEXER_IDENT_LITERAL); @@ -1392,12 +1309,10 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ if (context_p->token.type == LEXER_ASSIGN) { -#if JERRY_ESNEXT if ((context_p->status_flags & PARSER_IS_STRICT) || !is_for_in) { parser_raise_error (context_p, PARSER_ERR_FOR_IN_OF_DECLARATION); } -#endif /* JERRY_ESNEXT */ parser_branch_t branch; /* Initialiser is never executed. */ @@ -1408,7 +1323,6 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ } parser_emit_cbc_ext (context_p, is_for_in ? CBC_EXT_FOR_IN_GET_NEXT : CBC_EXT_FOR_OF_GET_NEXT); -#if JERRY_ESNEXT #ifndef JERRY_NDEBUG if (literal_index < PARSER_REGISTER_START && has_context && !scanner_literal_is_created (context_p, literal_index)) @@ -1419,12 +1333,8 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ uint16_t opcode = (has_context ? CBC_ASSIGN_LET_CONST : CBC_ASSIGN_SET_IDENT); parser_emit_cbc_literal (context_p, opcode, literal_index); -#else /* !JERRY_ESNEXT */ - parser_emit_cbc_literal (context_p, CBC_ASSIGN_SET_IDENT, literal_index); -#endif /* JERRY_ESNEXT */ break; } -#if JERRY_ESNEXT case LEXER_LEFT_BRACE: case LEXER_LEFT_SQUARE: { @@ -1449,7 +1359,6 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ } /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ default: { uint16_t opcode; @@ -1473,11 +1382,7 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ if (context_p->token.type != LEXER_EOS) { -#if JERRY_ESNEXT parser_raise_error (context_p, is_for_in ? PARSER_ERR_IN_EXPECTED : PARSER_ERR_OF_EXPECTED); -#else /* !JERRY_ESNEXT */ - parser_raise_error (context_p, PARSER_ERR_IN_EXPECTED); -#endif /* JERRY_ESNEXT */ } parser_flush_cbc (context_p); @@ -1492,12 +1397,10 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ uint8_t for_type = PARSER_STATEMENT_FOR_IN; -#if JERRY_ESNEXT if (!is_for_in) { for_type = is_for_await ? PARSER_STATEMENT_FOR_AWAIT_OF : PARSER_STATEMENT_FOR_OF; } -#endif /* JERRY_ESNEXT */ parser_stack_push_uint8 (context_p, for_type); parser_stack_iterator_init (context_p, &context_p->last_statement); @@ -1508,13 +1411,10 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ if (context_p->token.type != LEXER_SEMICOLON) { -#if JERRY_ESNEXT const uint8_t *source_p = context_p->source_p; -#endif /* JERRY_ESNEXT */ switch (context_p->token.type) { -#if JERRY_ESNEXT case LEXER_LITERAL: { if (!lexer_token_is_let (context_p)) @@ -1551,7 +1451,6 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ } /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case LEXER_KEYW_VAR: { parser_parse_var_statement (context_p); @@ -1570,12 +1469,10 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */ } } -#if JERRY_ESNEXT if (is_for_await) { parser_raise_error (context_p, PARSER_ERR_FOR_AWAIT_NO_OF); } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (context_p->next_scanner_info_p->source_p != context_p->source_p || context_p->next_scanner_info_p->type == SCANNER_TYPE_FOR); @@ -1652,7 +1549,6 @@ parser_parse_for_statement_end (parser_context_t *context_p) /**< context */ parser_stack_iterator_skip (&iterator, sizeof (parser_loop_statement_t)); parser_stack_iterator_read (&iterator, &for_statement, sizeof (parser_for_statement_t)); -#if JERRY_ESNEXT bool has_block_context = false; uint8_t next_statement_type; @@ -1663,7 +1559,6 @@ parser_parse_for_statement_end (parser_context_t *context_p) /**< context */ { has_block_context = true; } -#endif /* JERRY_ESNEXT */ scanner_get_location (&location, context_p); current_token = context_p->token; @@ -1674,12 +1569,10 @@ parser_parse_for_statement_end (parser_context_t *context_p) /**< context */ parser_set_continues_to_current_position (context_p, loop.branch_list_p); -#if JERRY_ESNEXT if (has_block_context) { parser_emit_cbc_ext (context_p, CBC_EXT_CLONE_FULL_CONTEXT); } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_RIGHT_PAREN) { @@ -1729,13 +1622,11 @@ parser_parse_for_statement_end (parser_context_t *context_p) /**< context */ parser_emit_cbc_backward_branch (context_p, (uint16_t) opcode, for_statement.start_offset); parser_set_breaks_to_current_position (context_p, loop.branch_list_p); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == PARSER_STATEMENT_PRIVATE_SCOPE || context_p->stack_top_uint8 == PARSER_STATEMENT_PRIVATE_CONTEXT) { parser_pop_block_context (context_p); } -#endif /* JERRY_ESNEXT */ /* Calling scanner_seek is unnecessary because all * info blocks inside the for statement should be processed. */ @@ -1766,12 +1657,10 @@ parser_parse_switch_statement_start (parser_context_t *context_p) /**< context * parser_raise_error (context_p, PARSER_ERR_LEFT_BRACE_EXPECTED); } -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p - 1) { parser_push_block_context (context_p, true); } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (context_p->next_scanner_info_p->source_p == context_p->source_p && context_p->next_scanner_info_p->type == SCANNER_TYPE_SWITCH); @@ -1925,10 +1814,8 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ parser_stack_iterator_skip (&iterator, 1); parser_stack_iterator_read (&iterator, &try_statement, sizeof (parser_try_statement_t)); -#if JERRY_ESNEXT context_p->scope_stack_top = try_statement.scope_stack_top; context_p->scope_stack_reg_top = try_statement.scope_stack_reg_top; -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); @@ -1949,11 +1836,6 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ if (try_statement.type == parser_catch_block) { -#if !JERRY_ESNEXT - context_p->scope_stack_top = try_statement.scope_stack_top; - context_p->scope_stack_reg_top = try_statement.scope_stack_reg_top; -#endif /* !JERRY_ESNEXT */ - if (context_p->token.type != LEXER_KEYW_FINALLY) { parser_flush_cbc (context_p); @@ -2017,7 +1899,6 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ if (context_p->token.type == LEXER_LEFT_PAREN) { -#if JERRY_ESNEXT if (lexer_check_next_characters (context_p, LIT_CHAR_LEFT_SQUARE, LIT_CHAR_LEFT_BRACE)) { parser_pattern_flags_t flags = (PARSER_PATTERN_BINDING | PARSER_PATTERN_TARGET_ON_STACK | PARSER_PATTERN_LET); @@ -2026,28 +1907,21 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ } else { -#endif /* JERRY_ESNEXT */ lexer_expect_identifier (context_p, LEXER_IDENT_LITERAL); JERRY_ASSERT (context_p->token.type == LEXER_LITERAL && context_p->token.lit_location.type == LEXER_IDENT_LITERAL); -#if JERRY_ESNEXT uint16_t literal_index = context_p->lit_object.index; parser_emit_cbc_literal (context_p, (literal_index >= PARSER_REGISTER_START) ? CBC_ASSIGN_SET_IDENT : CBC_ASSIGN_LET_CONST, literal_index); -#else /* !JERRY_ESNEXT */ - parser_emit_cbc_literal (context_p, CBC_ASSIGN_SET_IDENT, context_p->lit_object.index); -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); #ifndef JERRY_NDEBUG JERRY_ASSERT (block_found); #endif /* !JERRY_NDEBUG */ -#if JERRY_ESNEXT } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_RIGHT_PAREN) { @@ -2061,12 +1935,10 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ parser_raise_error (context_p, PARSER_ERR_LEFT_BRACE_EXPECTED); } } -#if JERRY_ESNEXT else if (context_p->token.type == LEXER_LEFT_BRACE) { parser_emit_cbc (context_p, CBC_POP); } -#endif /* JERRY_ESNEXT */ else { parser_raise_error (context_p, PARSER_ERR_LEFT_PAREN_EXPECTED); @@ -2092,7 +1964,6 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ try_statement.type = parser_finally_block; parser_emit_cbc_ext_forward_branch (context_p, CBC_EXT_FINALLY, &try_statement.branch); -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p) { JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_BLOCK); @@ -2104,7 +1975,6 @@ parser_parse_try_statement_end (parser_context_t *context_p) /**< context */ scanner_create_variables (context_p, SCANNER_CREATE_VARS_NO_OPTS); } -#endif /* JERRY_ESNEXT */ } lexer_next_token (context_p); @@ -2326,12 +2196,8 @@ parser_parse_continue_statement (parser_context_t *context_p) /**< context */ opcode = CBC_JUMP_FORWARD_EXIT_CONTEXT; } -#if JERRY_ESNEXT const bool is_private_scope = (type == PARSER_STATEMENT_PRIVATE_SCOPE || type == PARSER_STATEMENT_PRIVATE_CONTEXT); -#else /* !JERRY_ESNEXT */ - const bool is_private_scope = false; -#endif /* !JERRY_ESNEXT */ if (parser_statement_flags[type] & PARSER_STATM_CONTINUE_TARGET) { @@ -2812,12 +2678,10 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ } #endif /* JERRY_PARSER_DUMP_BYTE_CODE */ -#if JERRY_ESNEXT if (strict_mode != PARSER_USE_STRICT_NOT_FOUND && (context_p->status_flags & PARSER_FUNCTION_HAS_COMPLEX_ARGUMENT)) { parser_raise_error (context_p, PARSER_ERR_USE_STRICT_NOT_ALLOWED); } -#endif /* JERRY_ESNEXT */ if (context_p->token.type == LEXER_SEMICOLON) { @@ -2847,10 +2711,8 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ JERRY_ASSERT (context_p->stack_depth == context_p->context_stack_depth); #endif /* !JERRY_NDEBUG */ -#if JERRY_ESNEXT JERRY_ASSERT (context_p->stack_top_uint8 != PARSER_STATEMENT_PRIVATE_SCOPE && context_p->stack_top_uint8 != PARSER_STATEMENT_PRIVATE_CONTEXT); -#endif /* JERRY_ESNEXT */ #if JERRY_DEBUGGER if (JERRY_CONTEXT (debugger_flags) & JERRY_DEBUGGER_CONNECTED @@ -2898,7 +2760,6 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ case LEXER_LEFT_BRACE: { -#if JERRY_ESNEXT if (context_p->next_scanner_info_p->source_p == context_p->source_p) { parser_push_block_context (context_p, false); @@ -2907,9 +2768,6 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ { parser_stack_push_uint8 (context_p, PARSER_STATEMENT_BLOCK); } -#else /* !JERRY_ESNEXT */ - parser_stack_push_uint8 (context_p, PARSER_STATEMENT_BLOCK); -#endif /* JERRY_ESNEXT */ parser_stack_iterator_init (context_p, &context_p->last_statement); lexer_next_token (context_p); @@ -2917,24 +2775,18 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ } case LEXER_KEYW_VAR: -#if JERRY_ESNEXT case LEXER_KEYW_LET: case LEXER_KEYW_CONST: -#endif /* JERRY_ESNEXT */ { parser_parse_var_statement (context_p); break; } - -#if JERRY_ESNEXT case LEXER_KEYW_CLASS: { parser_validate_lexical_context (context_p); parser_parse_class (context_p, true); goto consume_last_statement; } -#endif /* JERRY_ESNEXT */ - #if JERRY_MODULE_SYSTEM case LEXER_KEYW_IMPORT: { @@ -3024,7 +2876,6 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ try_statement.type = parser_try_block; parser_emit_cbc_ext_forward_branch (context_p, CBC_EXT_TRY_CREATE_CONTEXT, &try_statement.branch); -#if JERRY_ESNEXT try_statement.scope_stack_top = context_p->scope_stack_top; try_statement.scope_stack_reg_top = context_p->scope_stack_reg_top; @@ -3039,7 +2890,6 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ scanner_create_variables (context_p, SCANNER_CREATE_VARS_NO_OPTS); } -#endif /* JERRY_ESNEXT */ parser_stack_push (context_p, &try_statement, sizeof (parser_try_statement_t)); parser_stack_push_uint8 (context_p, PARSER_STATEMENT_TRY); @@ -3090,25 +2940,21 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ { parser_raise_error (context_p, PARSER_ERR_INVALID_RETURN); } -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_IS_CLASS_STATIC_BLOCK) { parser_raise_error (context_p, PARSER_ERR_INVALID_RETURN); } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); if ((context_p->token.flags & LEXER_WAS_NEWLINE) || context_p->token.type == LEXER_SEMICOLON || context_p->token.type == LEXER_EOS || context_p->token.type == LEXER_RIGHT_BRACE) { -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_IS_ASYNC_FUNCTION) { parser_emit_cbc_ext (context_p, CBC_EXT_RETURN_UNDEFINED); break; } -#endif /* JERRY_ESNEXT */ parser_emit_cbc (context_p, CBC_RETURN_FUNCTION_END); break; @@ -3151,7 +2997,7 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); continue; } -#if JERRY_ESNEXT + if (JERRY_UNLIKELY (lexer_token_is_let (context_p))) { if (context_p->next_scanner_info_p->source_p == context_p->source_p) @@ -3209,7 +3055,6 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ continue; } } -#endif /* JERRY_ESNEXT */ } /* FALLTHRU */ } @@ -3248,14 +3093,12 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ parser_stack_iterator_init (context_p, &context_p->last_statement); lexer_next_token (context_p); } -#if JERRY_ESNEXT else if (context_p->stack_top_uint8 == PARSER_STATEMENT_BLOCK_SCOPE || context_p->stack_top_uint8 == PARSER_STATEMENT_BLOCK_CONTEXT) { parser_pop_block_context (context_p); lexer_next_token (context_p); } -#endif /* JERRY_ESNEXT */ else if (context_p->stack_top_uint8 == PARSER_STATEMENT_SWITCH || context_p->stack_top_uint8 == PARSER_STATEMENT_SWITCH_NO_DEFAULT) { @@ -3278,13 +3121,11 @@ parser_parse_statements (parser_context_t *context_p) /**< context */ parser_set_breaks_to_current_position (context_p, loop.branch_list_p); lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == PARSER_STATEMENT_PRIVATE_SCOPE || context_p->stack_top_uint8 == PARSER_STATEMENT_PRIVATE_CONTEXT) { parser_pop_block_context (context_p); } -#endif /* JERRY_ESNEXT */ } else if (context_p->stack_top_uint8 == PARSER_STATEMENT_TRY) { @@ -3384,17 +3225,13 @@ consume_last_statement: } case PARSER_STATEMENT_FOR_IN: -#if JERRY_ESNEXT case PARSER_STATEMENT_FOR_OF: case PARSER_STATEMENT_FOR_AWAIT_OF: -#endif /* JERRY_ESNEXT */ { parser_for_in_of_statement_t for_in_of_statement; parser_loop_statement_t loop; -#if JERRY_ESNEXT uint8_t for_type = context_p->stack_top_uint8; -#endif /* JERRY_ESNEXT */ parser_stack_pop_uint8 (context_p); parser_stack_pop (context_p, &loop, sizeof (parser_loop_statement_t)); @@ -3406,13 +3243,11 @@ consume_last_statement: parser_flush_cbc (context_p); uint16_t stack_allocation = PARSER_FOR_IN_CONTEXT_STACK_ALLOCATION; -#if JERRY_ESNEXT if (for_type != PARSER_STATEMENT_FOR_IN) { stack_allocation = (for_type == PARSER_STATEMENT_FOR_OF ? PARSER_FOR_OF_CONTEXT_STACK_ALLOCATION : PARSER_FOR_AWAIT_OF_CONTEXT_STACK_ALLOCATION); } -#endif /* JERRY_ESNEXT */ PARSER_MINUS_EQUAL_U16 (context_p->stack_depth, stack_allocation); #ifndef JERRY_NDEBUG @@ -3421,26 +3256,23 @@ consume_last_statement: cbc_ext_opcode_t opcode = CBC_EXT_BRANCH_IF_FOR_IN_HAS_NEXT; -#if JERRY_ESNEXT if (for_type != PARSER_STATEMENT_FOR_IN) { opcode = (for_type == PARSER_STATEMENT_FOR_OF ? CBC_EXT_BRANCH_IF_FOR_OF_HAS_NEXT : CBC_EXT_BRANCH_IF_FOR_AWAIT_OF_HAS_NEXT); } -#endif /* JERRY_ESNEXT */ parser_emit_cbc_ext_backward_branch (context_p, opcode, for_in_of_statement.start_offset); parser_set_breaks_to_current_position (context_p, loop.branch_list_p); parser_set_branch_to_current_position (context_p, &for_in_of_statement.branch); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == PARSER_STATEMENT_PRIVATE_SCOPE || context_p->stack_top_uint8 == PARSER_STATEMENT_PRIVATE_CONTEXT) { parser_pop_block_context (context_p); } -#endif /* JERRY_ESNEXT */ + continue; } @@ -3531,9 +3363,7 @@ parser_free_jumps (parser_stack_iterator_t iterator) /**< iterator position */ case PARSER_STATEMENT_WHILE: case PARSER_STATEMENT_FOR: case PARSER_STATEMENT_FOR_IN: -#if JERRY_ESNEXT case PARSER_STATEMENT_FOR_OF: -#endif /* JERRY_ESNEXT */ { parser_loop_statement_t loop; diff --git a/jerry-core/parser/js/js-parser-tagged-template-literal.c b/jerry-core/parser/js/js-parser-tagged-template-literal.c index 24c4aa2ff..f140526b9 100644 --- a/jerry-core/parser/js/js-parser-tagged-template-literal.c +++ b/jerry-core/parser/js/js-parser-tagged-template-literal.c @@ -33,7 +33,6 @@ * @{ */ -#if JERRY_ESNEXT /** * Append the cooked and raw string to the corresponding array */ @@ -154,7 +153,6 @@ parser_tagged_template_literal_finalize (ecma_object_t *template_obj_p, /**< tem parser_tagged_template_literal_freeze_array (template_obj_p); parser_tagged_template_literal_freeze_array (raw_strings_p); } /* parser_tagged_template_literal_finalize */ -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/parser/js/js-parser-tagged-template-literal.h b/jerry-core/parser/js/js-parser-tagged-template-literal.h index 338c209bf..9bc94938d 100644 --- a/jerry-core/parser/js/js-parser-tagged-template-literal.h +++ b/jerry-core/parser/js/js-parser-tagged-template-literal.h @@ -31,7 +31,6 @@ #include "common.h" #include "js-parser-internal.h" -#if JERRY_ESNEXT ecma_object_t *parser_new_tagged_template_literal (ecma_object_t **raw_strings_p); void parser_tagged_template_literal_append_strings (parser_context_t *context_p, @@ -40,7 +39,6 @@ void parser_tagged_template_literal_append_strings (parser_context_t *context_p, uint32_t prop_index); void parser_tagged_template_literal_finalize (ecma_object_t *template_obj_p, ecma_object_t *raw_strings_p); -#endif /* JERRY_ESNEXT */ #endif /* ECMA_TAGGED_TEMPLATE_LITERAL_H */ diff --git a/jerry-core/parser/js/js-parser-util.c b/jerry-core/parser/js/js-parser-util.c index 95aaf36b4..c3ba131d6 100644 --- a/jerry-core/parser/js/js-parser-util.c +++ b/jerry-core/parser/js/js-parser-util.c @@ -752,8 +752,6 @@ parser_set_continues_to_current_position (parser_context_t *context_p, /**< cont } } /* parser_set_continues_to_current_position */ -#if JERRY_ESNEXT - /** * Return the size of internal record corresponding to a class field * @@ -867,8 +865,6 @@ parser_reverse_class_fields (parser_context_t *context_p, /**< context */ parser_free (data_p, fields_size); } /* parser_reverse_class_fields */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/parser/js/js-parser.c b/jerry-core/parser/js/js-parser.c index c9b6fa584..17a2b1c4b 100644 --- a/jerry-core/parser/js/js-parser.c +++ b/jerry-core/parser/js/js-parser.c @@ -29,14 +29,12 @@ JERRY_STATIC_ASSERT ((int) ECMA_PARSE_STRICT_MODE == (int) PARSER_IS_STRICT, ecma_parse_strict_mode_must_be_equal_to_parser_is_strict); -#if JERRY_ESNEXT JERRY_STATIC_ASSERT (PARSER_SAVE_STATUS_FLAGS (PARSER_ALLOW_SUPER) == 0x1, incorrect_saving_of_ecma_parse_allow_super); JERRY_STATIC_ASSERT (PARSER_RESTORE_STATUS_FLAGS (ECMA_PARSE_ALLOW_SUPER) == PARSER_ALLOW_SUPER, incorrect_restoring_of_ecma_parse_allow_super); JERRY_STATIC_ASSERT (PARSER_RESTORE_STATUS_FLAGS (ECMA_PARSE_FUNCTION_CONTEXT) == 0, ecma_parse_function_context_must_not_be_transformed); -#endif /* JERRY_ESNEXT */ /** \addtogroup parser Parser * @{ @@ -590,7 +588,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ ecma_value_t *literal_pool_p; uint8_t *dst_p; -#if JERRY_ESNEXT if ((context_p->status_flags & (PARSER_IS_FUNCTION | PARSER_LEXICAL_BLOCK_NEEDED)) == (PARSER_IS_FUNCTION | PARSER_LEXICAL_BLOCK_NEEDED)) { @@ -629,7 +626,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ JERRY_ASSERT (!(context_p->status_flags & PARSER_NO_END_LABEL)); } -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO JERRY_ASSERT (context_p->line_info_p != NULL); @@ -867,12 +863,10 @@ parser_post_processing (parser_context_t *context_p) /**< context */ { context_p->status_flags &= (uint32_t) ~PARSER_NO_END_LABEL; -#if JERRY_ESNEXT if (PARSER_IS_NORMAL_ASYNC_FUNCTION (context_p->status_flags)) { length++; } -#endif /* JERRY_ESNEXT */ length++; } @@ -896,7 +890,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ total_size += context_p->argument_count * sizeof (ecma_value_t); } -#if JERRY_ESNEXT /* function.name */ if (!(context_p->status_flags & PARSER_CLASS_CONSTRUCTOR)) { @@ -907,24 +900,17 @@ parser_post_processing (parser_context_t *context_p) /**< context */ { total_size += sizeof (ecma_value_t); } -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO total_size += sizeof (ecma_value_t); #endif /* JERRY_LINE_INFO */ - -#if JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING uint8_t extended_info = 0; -#endif /* JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING */ -#if JERRY_ESNEXT if (context_p->argument_length != UINT16_MAX) { extended_info |= CBC_EXTENDED_CODE_FLAGS_HAS_ARGUMENT_LENGTH; total_size += ecma_extended_info_get_encoded_length (context_p->argument_length); } -#endif /* JERRY_ESNEXT */ - #if JERRY_FUNCTION_TO_STRING if (context_p->last_context_p != NULL) { @@ -946,16 +932,12 @@ parser_post_processing (parser_context_t *context_p) /**< context */ total_size += ecma_extended_info_get_encoded_length ((uint32_t) (context_p->function_end_p - function_start_p)); } #endif /* JERRY_FUNCTION_TO_STRING */ - -#if JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING if (extended_info != 0) { total_size += sizeof (uint8_t); } -#endif /* JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING */ total_size = JERRY_ALIGNUP (total_size, JMEM_ALIGNMENT); - compiled_code_p = (ecma_compiled_code_t *) parser_malloc (context_p, total_size); #if JERRY_SNAPSHOT_SAVE || JERRY_PARSER_DUMP_BYTE_CODE @@ -972,13 +954,11 @@ parser_post_processing (parser_context_t *context_p) /**< context */ compiled_code_p->refs = 1; compiled_code_p->status_flags = 0; -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_FUNCTION_HAS_REST_PARAM) { JERRY_ASSERT (context_p->argument_count > 0); context_p->argument_count--; } -#endif /* JERRY_ESNEXT */ if (needs_uint16_arguments) { @@ -1050,7 +1030,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ { function_type = CBC_FUNCTION_TO_TYPE_BITS (CBC_FUNCTION_SCRIPT); } -#if JERRY_ESNEXT else if (context_p->status_flags & PARSER_IS_ARROW_FUNCTION) { if (context_p->status_flags & PARSER_IS_ASYNC_FUNCTION) @@ -1091,7 +1070,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ JERRY_ASSERT (!(context_p->status_flags & PARSER_IS_FUNCTION)); compiled_code_p->status_flags |= CBC_CODE_FLAGS_LEXICAL_BLOCK_NEEDED; } -#endif /* JERRY_ESNEXT */ compiled_code_p->status_flags |= function_type; @@ -1266,14 +1244,12 @@ parser_post_processing (parser_context_t *context_p) /**< context */ { *dst_p++ = CBC_RETURN_FUNCTION_END; -#if JERRY_ESNEXT if (PARSER_IS_NORMAL_ASYNC_FUNCTION (context_p->status_flags)) { dst_p[-1] = CBC_EXT_OPCODE; dst_p[0] = CBC_EXT_ASYNC_EXIT; dst_p++; } -#endif /* JERRY_ESNEXT */ } JERRY_ASSERT (dst_p == byte_code_p + length); @@ -1345,7 +1321,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ } } -#if JERRY_ESNEXT if (!(context_p->status_flags & PARSER_CLASS_CONSTRUCTOR)) { *(--base_p) = ecma_make_magic_string_value (LIT_MAGIC_STRING__EMPTY); @@ -1356,13 +1331,11 @@ parser_post_processing (parser_context_t *context_p) /**< context */ compiled_code_p->status_flags |= CBC_CODE_FLAGS_HAS_TAGGED_LITERALS; *(--base_p) = (ecma_value_t) context_p->tagged_template_literal_cp; } -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO ECMA_SET_INTERNAL_VALUE_POINTER (base_p[-1], line_info_p); #endif /* JERRY_LINE_INFO */ -#if JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING if (extended_info != 0) { #if JERRY_LINE_INFO @@ -1374,12 +1347,10 @@ parser_post_processing (parser_context_t *context_p) /**< context */ compiled_code_p->status_flags |= CBC_CODE_FLAGS_HAS_EXTENDED_INFO; *extended_info_p = extended_info; -#if JERRY_ESNEXT if (context_p->argument_length != UINT16_MAX) { ecma_extended_info_encode_vlq (&extended_info_p, context_p->argument_length); } -#endif /* JERRY_ESNEXT */ #if JERRY_FUNCTION_TO_STRING if (context_p->last_context_p != NULL) @@ -1398,7 +1369,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ } #endif /* JERRY_FUNCTION_TO_STRING */ } -#endif /* JERRY_ESNEXT || JERRY_FUNCTION_TO_STRING */ #if JERRY_PARSER_DUMP_BYTE_CODE if (context_p->is_show_opcodes) @@ -1422,7 +1392,6 @@ parser_post_processing (parser_context_t *context_p) /**< context */ #undef PARSER_NEXT_BYTE #undef PARSER_NEXT_BYTE_UPDATE -#if JERRY_ESNEXT /** * Resolve private identifier in direct eval context */ @@ -1589,7 +1558,6 @@ parser_restore_private_context (parser_context_t *context_p, /**< context */ scanner_release_private_fields (context_p->private_context_p->members_p); context_p->private_context_p = private_ctx_p->prev_p; } /* parser_restore_private_context */ -#endif /* JERRY_ESNEXT */ /** * Free identifiers and literals. @@ -1618,7 +1586,6 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ { JERRY_ASSERT (context_p->next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); -#if JERRY_ESNEXT JERRY_ASSERT (context_p->status_flags & PARSER_IS_FUNCTION); JERRY_ASSERT (!(context_p->status_flags & PARSER_LEXICAL_BLOCK_NEEDED)); @@ -1634,11 +1601,9 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ context_p->context_stack_depth = PARSER_TRY_CONTEXT_STACK_ALLOCATION; #endif /* !JERRY_NDEBUG */ } -#endif /* JERRY_ESNEXT */ if (context_p->token.type == end_type) { -#if JERRY_ESNEXT context_p->status_flags &= (uint32_t) ~PARSER_DISALLOW_AWAIT_YIELD; if (context_p->status_flags & PARSER_IS_GENERATOR_FUNCTION) @@ -1649,26 +1614,21 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ scanner_create_variables (context_p, SCANNER_CREATE_VARS_IS_FUNCTION_BODY); return; } -#endif /* JERRY_ESNEXT */ + scanner_create_variables (context_p, SCANNER_CREATE_VARS_NO_OPTS); return; } -#if JERRY_ESNEXT bool has_complex_argument = (context_p->next_scanner_info_p->u8_arg & SCANNER_FUNCTION_HAS_COMPLEX_ARGUMENT) != 0; -#endif /* JERRY_ESNEXT */ bool is_strict = (context_p->next_scanner_info_p->u8_arg & SCANNER_FUNCTION_IS_STRICT) != 0; scanner_create_variables (context_p, SCANNER_CREATE_VARS_IS_FUNCTION_ARGS); scanner_set_active (context_p); -#if JERRY_ESNEXT context_p->status_flags |= PARSER_FUNCTION_IS_PARSING_ARGS; -#endif /* JERRY_ESNEXT */ while (true) { -#if JERRY_ESNEXT if (context_p->token.type == LEXER_THREE_DOTS) { if (context_p->status_flags & PARSER_IS_PROPERTY_SETTER) @@ -1771,7 +1731,6 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ } continue; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { @@ -1787,14 +1746,12 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ if (JERRY_UNLIKELY (context_p->lit_object.literal_p->status_flags & LEXER_FLAG_FUNCTION_ARGUMENT)) { -#if JERRY_ESNEXT if ((context_p->status_flags & PARSER_FUNCTION_HAS_COMPLEX_ARGUMENT) || (context_p->status_flags & PARSER_IS_ARROW_FUNCTION)) { parser_raise_error (context_p, PARSER_ERR_DUPLICATED_ARGUMENT_NAMES); } has_duplicated_arg_names = true; -#endif /* JERRY_ESNEXT */ context_p->status_flags |= PARSER_HAS_NON_STRICT_ARG; } @@ -1805,7 +1762,6 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); -#if JERRY_ESNEXT uint16_t literal_index = context_p->lit_object.index; if (context_p->token.type == LEXER_ASSIGN) @@ -1887,7 +1843,6 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ (uint16_t) (PARSER_REGISTER_START + context_p->argument_count), literal_index); } -#endif /* JERRY_ESNEXT */ context_p->argument_count++; if (context_p->argument_count >= PARSER_MAXIMUM_NUMBER_OF_REGISTERS) @@ -1907,26 +1862,21 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ break; } -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_FUNCTION_HAS_REST_PARAM) { parser_raise_error (context_p, PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER); } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->token.type == end_type) { break; } -#endif /* JERRY_ESNEXT */ } scanner_revert_active (context_p); -#if JERRY_ESNEXT JERRY_ASSERT (has_complex_argument || !(context_p->status_flags & PARSER_FUNCTION_HAS_COMPLEX_ARGUMENT)); if (context_p->status_flags & PARSER_IS_GENERATOR_FUNCTION) @@ -1957,8 +1907,6 @@ parser_parse_function_arguments (parser_context_t *context_p, /**< context */ } context_p->status_flags &= (uint32_t) ~(PARSER_DISALLOW_AWAIT_YIELD | PARSER_FUNCTION_IS_PARSING_ARGS); -#endif /* JERRY_ESNEXT */ - scanner_create_variables (context_p, SCANNER_CREATE_VARS_IS_FUNCTION_BODY); if (is_strict) @@ -2044,10 +1992,8 @@ parser_parse_source (void *source_p, /**< source code */ context.status_flags = parse_opts & PARSER_STRICT_MODE_MASK; context.global_status_flags = parse_opts; -#if JERRY_ESNEXT context.status_flags |= PARSER_RESTORE_STATUS_FLAGS (parse_opts); context.tagged_template_literal_cp = JMEM_CP_NULL; -#endif /* JERRY_ESNEXT */ context.stack_depth = 0; context.stack_limit = 0; @@ -2081,7 +2027,7 @@ parser_parse_source (void *source_p, /**< source code */ JERRY_ASSERT (ecma_is_value_string (context.argument_list)); context.status_flags |= PARSER_IS_FUNCTION; -#if JERRY_ESNEXT + if (parse_opts & ECMA_PARSE_GENERATOR_FUNCTION) { context.status_flags |= PARSER_IS_GENERATOR_FUNCTION; @@ -2090,7 +2036,6 @@ parser_parse_source (void *source_p, /**< source code */ { context.status_flags |= PARSER_IS_ASYNC_FUNCTION; } -#endif /* JERRY_ESNEXT */ ecma_string_t *string_p = ecma_get_string_from_value (context.argument_list); uint8_t flags = ECMA_STRING_FLAG_EMPTY; @@ -2179,9 +2124,7 @@ parser_parse_source (void *source_p, /**< source code */ context.last_cbc_opcode = PARSER_CBC_UNAVAILABLE; context.argument_count = 0; -#if JERRY_ESNEXT context.argument_length = UINT16_MAX; -#endif /* JERRY_ESNEXT */ context.register_count = 0; context.literal_count = 0; @@ -2194,11 +2137,9 @@ parser_parse_source (void *source_p, /**< source code */ context.scope_stack_size = 0; context.scope_stack_top = 0; context.scope_stack_reg_top = 0; -#if JERRY_ESNEXT context.scope_stack_global_end = 0; context.tagged_template_literal_cp = JMEM_CP_NULL; context.private_context_p = NULL; -#endif /* JERRY_ESNEXT */ #ifndef JERRY_NDEBUG context.context_stack_depth = 0; @@ -2323,7 +2264,6 @@ parser_parse_source (void *source_p, /**< source code */ JERRY_ASSERT (context.next_scanner_info_p->source_p == context.source_start_p && context.next_scanner_info_p->type == SCANNER_TYPE_FUNCTION); -#if JERRY_ESNEXT if (scanner_is_context_needed (&context, PARSER_CHECK_GLOBAL_CONTEXT)) { context.status_flags |= PARSER_LEXICAL_BLOCK_NEEDED; @@ -2333,7 +2273,6 @@ parser_parse_source (void *source_p, /**< source code */ { scanner_check_variables (&context); } -#endif /* JERRY_ESNEXT */ scanner_create_variables (&context, SCANNER_CREATE_VARS_IS_SCRIPT); } @@ -2578,12 +2517,10 @@ parser_save_context (parser_context_t *context_p, /**< context */ } #endif /* JERRY_DEBUGGER */ -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_FUNCTION_IS_PARSING_ARGS) { context_p->status_flags |= PARSER_LEXICAL_BLOCK_NEEDED; } -#endif /* JERRY_ESNEXT */ /* Save private part of the context. */ @@ -2594,9 +2531,7 @@ parser_save_context (parser_context_t *context_p, /**< context */ saved_context_p->last_statement = context_p->last_statement; saved_context_p->argument_count = context_p->argument_count; -#if JERRY_ESNEXT saved_context_p->argument_length = context_p->argument_length; -#endif /* JERRY_ESNEXT */ saved_context_p->register_count = context_p->register_count; saved_context_p->literal_count = context_p->literal_count; @@ -2607,10 +2542,8 @@ parser_save_context (parser_context_t *context_p, /**< context */ saved_context_p->scope_stack_size = context_p->scope_stack_size; saved_context_p->scope_stack_top = context_p->scope_stack_top; saved_context_p->scope_stack_reg_top = context_p->scope_stack_reg_top; -#if JERRY_ESNEXT saved_context_p->scope_stack_global_end = context_p->scope_stack_global_end; saved_context_p->tagged_template_literal_cp = context_p->tagged_template_literal_cp; -#endif /* JERRY_ESNEXT */ #ifndef JERRY_NDEBUG saved_context_p->context_stack_depth = context_p->context_stack_depth; @@ -2633,9 +2566,7 @@ parser_save_context (parser_context_t *context_p, /**< context */ context_p->last_statement.current_p = NULL; context_p->argument_count = 0; -#if JERRY_ESNEXT context_p->argument_length = UINT16_MAX; -#endif /* JERRY_ESNEXT */ context_p->register_count = 0; context_p->literal_count = 0; @@ -2646,10 +2577,8 @@ parser_save_context (parser_context_t *context_p, /**< context */ context_p->scope_stack_size = 0; context_p->scope_stack_top = 0; context_p->scope_stack_reg_top = 0; -#if JERRY_ESNEXT context_p->scope_stack_global_end = 0; context_p->tagged_template_literal_cp = JMEM_CP_NULL; -#endif /* JERRY_ESNEXT */ #ifndef JERRY_NDEBUG context_p->context_stack_depth = 0; @@ -2689,9 +2618,7 @@ parser_restore_context (parser_context_t *context_p, /**< context */ context_p->last_statement = saved_context_p->last_statement; context_p->argument_count = saved_context_p->argument_count; -#if JERRY_ESNEXT context_p->argument_length = saved_context_p->argument_length; -#endif /* JERRY_ESNEXT */ context_p->register_count = saved_context_p->register_count; context_p->literal_count = saved_context_p->literal_count; @@ -2702,10 +2629,8 @@ parser_restore_context (parser_context_t *context_p, /**< context */ context_p->scope_stack_size = saved_context_p->scope_stack_size; context_p->scope_stack_top = saved_context_p->scope_stack_top; context_p->scope_stack_reg_top = saved_context_p->scope_stack_reg_top; -#if JERRY_ESNEXT context_p->scope_stack_global_end = saved_context_p->scope_stack_global_end; context_p->tagged_template_literal_cp = saved_context_p->tagged_template_literal_cp; -#endif /* JERRY_ESNEXT */ #ifndef JERRY_NDEBUG context_p->context_stack_depth = saved_context_p->context_stack_depth; @@ -2731,19 +2656,13 @@ parser_parse_function (parser_context_t *context_p, /**< context */ JERRY_ASSERT (status_flags & PARSER_IS_FUNCTION); parser_save_context (context_p, &saved_context); context_p->status_flags |= status_flags; -#if JERRY_ESNEXT context_p->status_flags |= PARSER_ALLOW_NEW_TARGET; -#endif /* JERRY_ESNEXT */ #if JERRY_PARSER_DUMP_BYTE_CODE if (context_p->is_show_opcodes) { -#if JERRY_ESNEXT JERRY_DEBUG_MSG ("\n--- %s parsing start ---\n\n", (context_p->status_flags & PARSER_CLASS_CONSTRUCTOR) ? "Class constructor" : "Function"); -#else /* !JERRY_ESNEXT */ - JERRY_DEBUG_MSG ("\n--- Function parsing start ---\n\n"); -#endif /* JERRY_ESNEXT */ } #endif /* JERRY_PARSER_DUMP_BYTE_CODE */ @@ -2776,13 +2695,11 @@ parser_parse_function (parser_context_t *context_p, /**< context */ parser_raise_error (context_p, PARSER_ERR_ONE_ARGUMENT_EXPECTED); } -#if JERRY_ESNEXT if ((context_p->status_flags & (PARSER_CLASS_CONSTRUCTOR | PARSER_ALLOW_SUPER_CALL)) == PARSER_CLASS_CONSTRUCTOR) { parser_emit_cbc_ext (context_p, CBC_EXT_RUN_FIELD_INIT); parser_flush_cbc (context_p); } -#endif /* JERRY_ESNEXT */ #if JERRY_PARSER_DUMP_BYTE_CODE if (context_p->is_show_opcodes && (context_p->status_flags & PARSER_HAS_NON_STRICT_ARG)) @@ -2803,12 +2720,8 @@ parser_parse_function (parser_context_t *context_p, /**< context */ #if JERRY_PARSER_DUMP_BYTE_CODE if (context_p->is_show_opcodes) { -#if JERRY_ESNEXT JERRY_DEBUG_MSG ("\n--- %s parsing end ---\n\n", (context_p->status_flags & PARSER_CLASS_CONSTRUCTOR) ? "Class constructor" : "Function"); -#else /* !JERRY_ESNEXT */ - JERRY_DEBUG_MSG ("\n--- Function parsing end ---\n\n"); -#endif /* JERRY_ESNEXT */ } #endif /* JERRY_PARSER_DUMP_BYTE_CODE */ @@ -2817,8 +2730,6 @@ parser_parse_function (parser_context_t *context_p, /**< context */ return compiled_code_p; } /* parser_parse_function */ -#if JERRY_ESNEXT - /** * Parse static class block code * @@ -3330,8 +3241,6 @@ parser_compiled_code_set_function_name (parser_context_t *context_p, /**< contex } } /* parser_compiled_code_set_function_name */ -#endif /* JERRY_ESNEXT */ - /** * Raise a parse error. */ @@ -3367,14 +3276,12 @@ parser_raise_error (parser_context_t *context_p, /**< context */ parser_free_jumps (saved_context_p->last_statement); } -#if JERRY_ESNEXT if (saved_context_p->tagged_template_literal_cp != JMEM_CP_NULL) { ecma_collection_t *collection = ECMA_GET_INTERNAL_VALUE_POINTER (ecma_collection_t, saved_context_p->tagged_template_literal_cp); ecma_collection_free_template_literal (collection); } -#endif /* JERRY_ESNEXT */ #if JERRY_LINE_INFO parser_line_info_free (saved_context_p->line_info_p); @@ -3383,7 +3290,6 @@ parser_raise_error (parser_context_t *context_p, /**< context */ saved_context_p = saved_context_p->prev_context_p; } -#if JERRY_ESNEXT parser_free_private_fields (context_p); if (context_p->tagged_template_literal_cp != JMEM_CP_NULL) @@ -3392,7 +3298,6 @@ parser_raise_error (parser_context_t *context_p, /**< context */ ECMA_GET_INTERNAL_VALUE_POINTER (ecma_collection_t, context_p->tagged_template_literal_cp); ecma_collection_free_template_literal (collection); } -#endif /* JERRY_ESNEXT */ context_p->error = error; PARSER_THROW (context_p->try_buffer); diff --git a/jerry-core/parser/js/js-scanner-internal.h b/jerry-core/parser/js/js-scanner-internal.h index 169aa25f0..800399dca 100644 --- a/jerry-core/parser/js/js-scanner-internal.h +++ b/jerry-core/parser/js/js-scanner-internal.h @@ -41,13 +41,11 @@ typedef enum SCAN_MODE_VAR_STATEMENT, /**< scanning var statement */ SCAN_MODE_PROPERTY_NAME, /**< scanning property name */ SCAN_MODE_FUNCTION_ARGUMENTS, /**< scanning function arguments */ -#if JERRY_ESNEXT SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS, /**< continue scanning function arguments */ SCAN_MODE_BINDING, /**< array or object binding */ SCAN_MODE_CLASS_DECLARATION, /**< scanning class declaration */ SCAN_MODE_CLASS_BODY, /**< scanning class body */ SCAN_MODE_CLASS_BODY_NO_SCAN, /**< scanning class body without calling lexer_scan_identifier */ -#endif /* JERRY_ESNEXT */ } scan_modes_t; /** @@ -61,9 +59,7 @@ typedef enum SCAN_STACK_FUNCTION_STATEMENT, /**< function statement */ SCAN_STACK_FUNCTION_EXPRESSION, /**< function expression */ SCAN_STACK_FUNCTION_PROPERTY, /**< function expression in an object literal */ -#if JERRY_ESNEXT SCAN_STACK_FUNCTION_ARROW, /**< arrow function expression */ -#endif /* JERRY_ESNEXT */ SCAN_STACK_SWITCH_BLOCK, /**< block part of "switch" statement */ SCAN_STACK_IF_STATEMENT, /**< statement part of "if" statements */ SCAN_STACK_WITH_STATEMENT, /**< statement part of "with" statements */ @@ -73,19 +69,15 @@ typedef enum SCAN_STACK_WHILE_EXPRESSION, /**< expression part of "while" iterator */ SCAN_STACK_PAREN_EXPRESSION, /**< expression in brackets */ SCAN_STACK_STATEMENT_WITH_EXPR, /**< statement which starts with expression enclosed in brackets */ -#if JERRY_ESNEXT SCAN_STACK_BINDING_INIT, /**< post processing after a single initializer */ SCAN_STACK_BINDING_LIST_INIT, /**< post processing after an initializer list */ SCAN_STACK_LET, /**< let statement */ SCAN_STACK_CONST, /**< const statement */ -#endif /* JERRY_ESNEXT */ /* The SCANNER_IS_FOR_START macro needs to be updated when the following constants are reordered. */ SCAN_STACK_VAR, /**< var statement */ SCAN_STACK_FOR_VAR_START, /**< start of "for" iterator with var statement */ -#if JERRY_ESNEXT SCAN_STACK_FOR_LET_START, /**< start of "for" iterator with let statement */ SCAN_STACK_FOR_CONST_START, /**< start of "for" iterator with const statement */ -#endif /* JERRY_ESNEXT */ SCAN_STACK_FOR_START, /**< start of "for" iterator */ SCAN_STACK_FOR_CONDITION, /**< condition part of "for" iterator */ SCAN_STACK_FOR_EXPRESSION, /**< expression part of "for" iterator */ @@ -97,7 +89,6 @@ typedef enum SCAN_STACK_ARRAY_LITERAL, /**< array literal or destructuring assignment or binding */ SCAN_STACK_OBJECT_LITERAL, /**< object literal group */ SCAN_STACK_PROPERTY_ACCESSOR, /**< property accessor in square brackets */ -#if JERRY_ESNEXT /* These four must be in this order. */ SCAN_STACK_COMPUTED_PROPERTY, /**< computed property name */ SCAN_STACK_COMPUTED_GENERATOR, /**< computed generator function */ @@ -119,7 +110,6 @@ typedef enum SCAN_STACK_FOR_START_PATTERN, /**< possible assignment pattern for "for" iterator */ SCAN_STACK_USE_ASYNC, /**< an "async" identifier is used */ SCAN_STACK_CLASS_STATIC_BLOCK, /**< class static block */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM SCAN_STACK_EXPORT_DEFAULT, /**< scan primary expression after export default */ #endif /* JERRY_MODULE_SYSTEM */ @@ -131,9 +121,7 @@ typedef enum typedef enum { SCANNER_CONTEXT_NO_FLAGS = 0, /**< no flags are set */ -#if JERRY_ESNEXT SCANNER_CONTEXT_THROW_ERR_ASYNC_FUNCTION = (1 << 0), /**< throw async function error */ -#endif /* JERRY_ESNEXT */ #if JERRY_DEBUGGER SCANNER_CONTEXT_DEBUGGER_ENABLED = (1 << 1), /**< debugger is enabled */ #endif /* JERRY_DEBUGGER */ @@ -167,24 +155,18 @@ typedef enum { SCANNER_LITERAL_IS_ARG = (1 << 0), /**< literal is argument */ SCANNER_LITERAL_IS_VAR = (1 << 1), /**< literal is var */ -#if JERRY_ESNEXT /** literal is a destructured argument binding of a possible arrow function */ SCANNER_LITERAL_IS_ARROW_DESTRUCTURED_ARG = SCANNER_LITERAL_IS_VAR, -#endif /* JERRY_ESNEXT */ SCANNER_LITERAL_IS_FUNC = (1 << 2), /**< literal is function */ SCANNER_LITERAL_NO_REG = (1 << 3), /**< literal cannot be stored in a register */ SCANNER_LITERAL_IS_LET = (1 << 4), /**< literal is let */ -#if JERRY_ESNEXT /** literal is a function declared in this block (prevents declaring let/const with the same name) */ SCANNER_LITERAL_IS_FUNC_DECLARATION = SCANNER_LITERAL_IS_LET, -#endif /* JERRY_ESNEXT */ SCANNER_LITERAL_IS_CONST = (1 << 5), /**< literal is const */ -#if JERRY_ESNEXT /** literal is a destructured argument binding */ SCANNER_LITERAL_IS_DESTRUCTURED_ARG = SCANNER_LITERAL_IS_CONST, SCANNER_LITERAL_IS_USED = (1 << 6), /**< literal is used */ SCANNER_LITERAL_EARLY_CREATE = (1 << 7), /**< binding should be created early with ECMA_VALUE_UNINITIALIZED */ -#endif /* JERRY_ESNEXT */ } scanner_literal_type_flags_t; /* @@ -233,8 +215,6 @@ typedef struct scanner_case_info_t **last_case_p; /**< last case info */ } scanner_switch_statement_t; -#if JERRY_ESNEXT - /** * Types of scanner destructuring bindings. */ @@ -274,35 +254,27 @@ typedef struct scanner_binding_list_t bool is_nested; /**< is nested binding declaration */ } scanner_binding_list_t; -#endif /* JERRY_ESNEXT */ - /** * Flags for scanner_literal_pool_t structure. */ typedef enum { SCANNER_LITERAL_POOL_FUNCTION = (1 << 0), /**< literal pool represents a function */ -#if JERRY_ESNEXT SCANNER_LITERAL_POOL_CLASS_NAME = (1 << 1), /**< literal pool which contains a class name */ SCANNER_LITERAL_POOL_CLASS_FIELD = (1 << 2), /**< literal pool is created for a class field initializer */ -#endif /* JERRY_ESNEXT */ SCANNER_LITERAL_POOL_IS_STRICT = (1 << 3), /**< literal pool represents a strict mode code block */ SCANNER_LITERAL_POOL_CAN_EVAL = (1 << 4), /**< prepare for executing eval in this block */ SCANNER_LITERAL_POOL_NO_ARGUMENTS = (1 << 5), /**< arguments object must not be constructed, * or arguments cannot be stored in registers if * SCANNER_LITERAL_POOL_ARGUMENTS_IN_ARGS is set */ -#if JERRY_ESNEXT SCANNER_LITERAL_POOL_ARGUMENTS_IN_ARGS = (1 << 6), /**< arguments is referenced in function args */ SCANNER_LITERAL_POOL_HAS_COMPLEX_ARGUMENT = (1 << 7), /**< function has complex (ES2015+) argument definition */ -#endif /* JERRY_ESNEXT */ SCANNER_LITERAL_POOL_IN_WITH = (1 << 8), /**< literal pool is in a with statement */ -#if JERRY_ESNEXT SCANNER_LITERAL_POOL_ARROW = (1 << 9), /**< arrow function */ SCANNER_LITERAL_POOL_GENERATOR = (1 << 10), /**< generator function */ SCANNER_LITERAL_POOL_ASYNC = (1 << 11), /**< async function */ SCANNER_LITERAL_POOL_FUNCTION_STATEMENT = (1 << 12), /**< function statement */ SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE = (1 << 13), /**< function body contains super reference */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM SCANNER_LITERAL_POOL_IN_EXPORT = (1 << 14), /**< the declared variables are exported by the module system */ #endif /* JERRY_MODULE_SYSTEM */ @@ -331,23 +303,12 @@ typedef enum */ #define SCANNER_FROM_COMPUTED_TO_LITERAL_POOL(mode) (((mode) -SCAN_STACK_COMPUTED_PROPERTY) << 10) -#if JERRY_ESNEXT - /** * Literal pool which may contains function argument identifiers */ #define SCANNER_LITERAL_POOL_MAY_HAVE_ARGUMENTS(status_flags) \ (!((status_flags) & (SCANNER_LITERAL_POOL_CLASS_NAME | SCANNER_LITERAL_POOL_CLASS_FIELD))) -#else /* !JERRY_ESNEXT */ - -/** - * Literal pool which may contains function argument identifiers - */ -#define SCANNER_LITERAL_POOL_MAY_HAVE_ARGUMENTS(status_flags) true - -#endif /* JERRY_ESNEXT */ - /** * Local literal pool. */ @@ -367,27 +328,19 @@ struct scanner_context_t { uint32_t context_status_flags; /**< original status flags of the context */ uint8_t mode; /**< scanner mode */ -#if JERRY_ESNEXT uint8_t binding_type; /**< current destructuring binding type */ -#endif /* JERRY_ESNEXT */ uint16_t status_flags; /**< scanner status flags */ -#if JERRY_ESNEXT scanner_binding_list_t *active_binding_list_p; /**< currently active binding list */ -#endif /* JERRY_ESNEXT */ scanner_literal_pool_t *active_literal_pool_p; /**< currently active literal pool */ scanner_switch_statement_t active_switch_statement; /**< currently active switch statement */ scanner_info_t *end_arguments_p; /**< position of end arguments */ -#if JERRY_ESNEXT const uint8_t *async_source_p; /**< source position for async functions */ -#endif /* JERRY_ESNEXT */ }; /* Scanner utils. */ void scanner_raise_error (parser_context_t *context_p); -#if JERRY_ESNEXT void scanner_raise_redeclaration_error (parser_context_t *context_p); -#endif /* JERRY_ESNEXT */ void *scanner_malloc (parser_context_t *context_p, size_t size); void scanner_free (void *ptr, size_t size); @@ -401,10 +354,8 @@ scanner_info_t *scanner_insert_info_before (parser_context_t *context_p, scanner_literal_pool_t * scanner_push_literal_pool (parser_context_t *context_p, scanner_context_t *scanner_context_p, uint16_t status_flags); void scanner_pop_literal_pool (parser_context_t *context_p, scanner_context_t *scanner_context_p); -#if JERRY_ESNEXT void scanner_filter_arguments (parser_context_t *context_p, scanner_context_t *scanner_context_p); void scanner_construct_global_block (parser_context_t *context_p, scanner_context_t *scanner_context_p); -#endif /* JERRY_ESNEXT */ lexer_lit_location_t *scanner_add_custom_literal (parser_context_t *context_p, scanner_literal_pool_t *literal_pool_p, const lexer_lit_location_t *literal_location_p); @@ -412,15 +363,12 @@ lexer_lit_location_t *scanner_add_literal (parser_context_t *context_p, scanner_ void scanner_add_reference (parser_context_t *context_p, scanner_context_t *scanner_context_p); lexer_lit_location_t *scanner_append_argument (parser_context_t *context_p, scanner_context_t *scanner_context_p); void scanner_add_private_identifier (parser_context_t *context_p, scanner_private_field_flags_t opts); -#if JERRY_ESNEXT void scanner_detect_invalid_var (parser_context_t *context_p, scanner_context_t *scanner_context_p, lexer_lit_location_t *var_literal_p); void scanner_detect_invalid_let (parser_context_t *context_p, lexer_lit_location_t *let_literal_p); -#endif /* JERRY_ESNEXT */ void scanner_detect_eval_call (parser_context_t *context_p, scanner_context_t *scanner_context_p); -#if JERRY_ESNEXT lexer_lit_location_t * scanner_push_class_declaration (parser_context_t *context_p, scanner_context_t *scanner_context_p, uint8_t stack_mode); void scanner_push_class_field_initializer (parser_context_t *context_p, scanner_context_t *scanner_context_p); @@ -430,11 +378,9 @@ void scanner_push_destructuring_pattern (parser_context_t *context_p, bool is_nested); void scanner_pop_binding_list (scanner_context_t *scanner_context_p); void scanner_append_hole (parser_context_t *context_p, scanner_context_t *scanner_context_p); -#endif /* JERRY_ESNEXT */ /* Scanner operations. */ -#if JERRY_ESNEXT void scanner_add_async_literal (parser_context_t *context_p, scanner_context_t *scanner_context_p); void scanner_check_arrow (parser_context_t *context_p, scanner_context_t *scanner_context_p); void @@ -442,7 +388,6 @@ scanner_scan_simple_arrow (parser_context_t *context_p, scanner_context_t *scann void scanner_check_arrow_arg (parser_context_t *context_p, scanner_context_t *scanner_context_p); bool scanner_check_async_function (parser_context_t *context_p, scanner_context_t *scanner_context_p); void scanner_check_function_after_if (parser_context_t *context_p, scanner_context_t *scanner_context_p); -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM void scanner_check_import_meta (parser_context_t *context_p); #endif /* JERRY_MODULE_SYSTEM */ diff --git a/jerry-core/parser/js/js-scanner-ops.c b/jerry-core/parser/js/js-scanner-ops.c index 1bb1bd921..98dadc0f5 100644 --- a/jerry-core/parser/js/js-scanner-ops.c +++ b/jerry-core/parser/js/js-scanner-ops.c @@ -29,8 +29,6 @@ * @{ */ -#if JERRY_ESNEXT - /** * Add the "async" literal to the literal pool. */ @@ -242,9 +240,7 @@ scanner_check_arrow_arg (parser_context_t *context_p, /**< context */ if (context_p->token.type == LEXER_LEFT_BRACE) { -#if JERRY_ESNEXT parser_stack_push_uint8 (context_p, 0); -#endif /* JERRY_ESNEXT */ parser_stack_push_uint8 (context_p, SCAN_STACK_OBJECT_LITERAL); scanner_context_p->mode = SCAN_MODE_PROPERTY_NAME; return; @@ -352,8 +348,6 @@ scanner_check_function_after_if (parser_context_t *context_p, /**< context */ } } /* scanner_check_function_after_if */ -#endif /* JERRY_ESNEXT */ - #if JERRY_MODULE_SYSTEM /** @@ -378,8 +372,6 @@ scanner_check_import_meta (parser_context_t *context_p) /**< context */ #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT - /** * Arrow types for scanner_scan_bracket() function. */ @@ -390,8 +382,6 @@ typedef enum SCANNER_SCAN_BRACKET_ARROW_WITH_ONE_ARG, /**< arrow function with one argument */ } scanner_scan_bracket_arrow_type_t; -#endif /* JERRY_ESNEXT */ - /** * Scan bracketed expressions. */ @@ -400,19 +390,15 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ scanner_context_t *scanner_context_p) /**< scanner context */ { size_t depth = 0; -#if JERRY_ESNEXT const uint8_t *arrow_source_p; const uint8_t *async_source_p = NULL; scanner_scan_bracket_arrow_type_t arrow_type = SCANNER_SCAN_BRACKET_NO_ARROW; -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (context_p->token.type == LEXER_LEFT_PAREN); do { -#if JERRY_ESNEXT arrow_source_p = context_p->source_p; -#endif /* JERRY_ESNEXT */ depth++; lexer_next_token (context_p); } while (context_p->token.type == LEXER_LEFT_PAREN); @@ -425,13 +411,10 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ { if (context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { -#if JERRY_ESNEXT arrow_source_p = NULL; -#endif /* JERRY_ESNEXT */ break; } -#if JERRY_ESNEXT const uint8_t *source_p = context_p->source_p; if (lexer_check_arrow (context_p)) @@ -442,7 +425,6 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ } size_t total_depth = depth; -#endif /* JERRY_ESNEXT */ while (depth > 0 && lexer_check_next_character (context_p, LIT_CHAR_RIGHT_PAREN)) { @@ -453,19 +435,14 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ if (context_p->token.keyword_type == LEXER_KEYW_EVAL && lexer_check_next_character (context_p, LIT_CHAR_LEFT_PAREN)) { -#if JERRY_ESNEXT /* A function call cannot be an eval function. */ arrow_source_p = NULL; const uint16_t flags = (uint16_t) (SCANNER_LITERAL_POOL_CAN_EVAL | SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE); -#else /* !JERRY_ESNEXT */ - const uint16_t flags = SCANNER_LITERAL_POOL_CAN_EVAL; -#endif /* JERRY_ESNEXT */ scanner_context_p->active_literal_pool_p->status_flags |= flags; break; } -#if JERRY_ESNEXT if (total_depth == depth) { if (lexer_check_arrow_param (context_p)) @@ -493,10 +470,8 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ } arrow_source_p = NULL; -#endif /* JERRY_ESNEXT */ break; } -#if JERRY_ESNEXT case LEXER_THREE_DOTS: case LEXER_LEFT_SQUARE: case LEXER_LEFT_BRACE: @@ -506,22 +481,17 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ depth--; break; } -#endif /* JERRY_ESNEXT */ default: { -#if JERRY_ESNEXT arrow_source_p = NULL; -#endif /* JERRY_ESNEXT */ break; } } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (scanner_context_p->async_source_p != NULL) && (arrow_source_p == NULL || depth > 0)) { scanner_context_p->async_source_p = NULL; } -#endif /* JERRY_ESNEXT */ while (depth > 0) { @@ -529,7 +499,6 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ depth--; } -#if JERRY_ESNEXT if (arrow_source_p != NULL) { JERRY_ASSERT (async_source_p == NULL); @@ -577,7 +546,6 @@ scanner_scan_bracket (parser_context_t *context_p, /**< context */ scanner_context_p->async_source_p = async_source_p; scanner_check_async_function (context_p, scanner_context_p); } -#endif /* JERRY_ESNEXT */ } /* scanner_scan_bracket */ /** diff --git a/jerry-core/parser/js/js-scanner-util.c b/jerry-core/parser/js/js-scanner-util.c index a6578daa3..3d58a779c 100644 --- a/jerry-core/parser/js/js-scanner-util.c +++ b/jerry-core/parser/js/js-scanner-util.c @@ -36,8 +36,6 @@ JERRY_STATIC_ASSERT (PARSER_MAXIMUM_NUMBER_OF_LITERALS + PARSER_MAXIMUM_NUMBER_OF_REGISTERS < PARSER_REGISTER_START, maximum_number_of_literals_plus_registers_must_be_less_than_register_start); -#if JERRY_ESNEXT - JERRY_STATIC_ASSERT ((SCANNER_LITERAL_IS_ARROW_DESTRUCTURED_ARG & SCANNER_LITERAL_IS_LOCAL) == 0, is_arrow_arg_binding_flag_must_not_use_local_flags); @@ -57,8 +55,6 @@ JERRY_STATIC_ASSERT (SCANNER_LITERAL_IS_FUNC_DECLARATION != SCANNER_LITERAL_IS_D JERRY_STATIC_ASSERT (PARSER_SCOPE_STACK_IS_CONST_REG == PARSER_SCOPE_STACK_IS_LOCAL_CREATED, scope_stack_is_const_reg_and_scope_stack_is_local_created_must_be_the_same); -#endif /* JERRY_ESNEXT */ - /** * Raise a scanner error. */ @@ -70,8 +66,6 @@ scanner_raise_error (parser_context_t *context_p) /**< context */ JERRY_ASSERT (0); } /* scanner_raise_error */ -#if JERRY_ESNEXT - /** * Raise a variable redeclaration error. */ @@ -84,8 +78,6 @@ scanner_raise_redeclaration_error (parser_context_t *context_p) /**< context */ scanner_raise_error (context_p); } /* scanner_raise_redeclaration_error */ -#endif /* JERRY_ESNEXT */ - /** * Allocate memory for scanner. * @@ -138,24 +130,18 @@ scanner_get_stream_size (scanner_info_t *info_p, /**< scanner info block */ switch (data_p[0] & SCANNER_STREAM_TYPE_MASK) { case SCANNER_STREAM_TYPE_VAR: -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_LET: case SCANNER_STREAM_TYPE_CONST: case SCANNER_STREAM_TYPE_LOCAL: -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case SCANNER_STREAM_TYPE_IMPORT: #endif /* JERRY_MODULE_SYSTEM */ case SCANNER_STREAM_TYPE_ARG: -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_ARG_VAR: case SCANNER_STREAM_TYPE_DESTRUCTURED_ARG: case SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_VAR: -#endif /* JERRY_MODULE_SYSTEM */ case SCANNER_STREAM_TYPE_ARG_FUNC: -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_FUNC: -#endif /* JERRY_ESNEXT */ case SCANNER_STREAM_TYPE_FUNC: { break; @@ -409,8 +395,6 @@ scanner_literal_is_arguments (lexer_lit_location_t *literal_p) /**< literal */ return lexer_compare_identifier_to_string (literal_p, (const uint8_t *) "arguments", 9); } /* scanner_literal_is_arguments */ -#if JERRY_ESNEXT - /** * Find if there is a duplicated argument in the given context * @@ -577,8 +561,6 @@ scanner_scope_find_lexical_declaration (parser_context_t *context_p, /**< contex return false; } /* scanner_scope_find_lexical_declaration */ -#endif /* JERRY_ESNEXT */ - /** * Push a new literal pool. * @@ -599,16 +581,11 @@ scanner_push_literal_pool (parser_context_t *context_p, /**< context */ JERRY_ASSERT (prev_literal_pool_p != NULL); status_flags |= SCANNER_LITERAL_POOL_NO_ARGUMENTS; -#if JERRY_ESNEXT const uint16_t copied_flags = (SCANNER_LITERAL_POOL_IN_WITH | SCANNER_LITERAL_POOL_GENERATOR | SCANNER_LITERAL_POOL_ASYNC); -#else /* !JERRY_ESNEXT */ - const uint16_t copied_flags = SCANNER_LITERAL_POOL_IN_WITH; -#endif /* JERRY_ESNEXT */ status_flags |= (uint16_t) (prev_literal_pool_p->status_flags & copied_flags); } -#if JERRY_ESNEXT else { context_p->status_flags &= (uint32_t) ~(PARSER_IS_GENERATOR_FUNCTION | PARSER_IS_ASYNC_FUNCTION); @@ -623,7 +600,6 @@ scanner_push_literal_pool (parser_context_t *context_p, /**< context */ context_p->status_flags |= PARSER_IS_ASYNC_FUNCTION; } } -#endif /* JERRY_ESNEXT */ if (prev_literal_pool_p != NULL) { @@ -671,13 +647,11 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ scanner_literal_pool_t *literal_pool_p = scanner_context_p->active_literal_pool_p; scanner_literal_pool_t *prev_literal_pool_p = literal_pool_p->prev_p; -#if JERRY_ESNEXT const uint32_t arrow_super_flags = (SCANNER_LITERAL_POOL_ARROW | SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE); if ((literal_pool_p->status_flags & arrow_super_flags) == arrow_super_flags) { prev_literal_pool_p->status_flags |= SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE; } -#endif /* JERRY_ESNEXT */ if (JERRY_UNLIKELY (literal_pool_p->source_p == NULL)) { @@ -702,7 +676,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ arguments_type = SCANNER_ARGUMENTS_MAY_PRESENT_IN_EVAL; } -#if JERRY_ESNEXT if (status_flags & SCANNER_LITERAL_POOL_ARGUMENTS_IN_ARGS) { arguments_type = SCANNER_ARGUMENTS_PRESENT; @@ -713,15 +686,13 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ status_flags &= (uint16_t) ~SCANNER_LITERAL_POOL_NO_ARGUMENTS; } } -#endif /* JERRY_ESNEXT */ uint8_t can_eval_types = 0; -#if JERRY_ESNEXT + if (prev_literal_pool_p == NULL && !(context_p->global_status_flags & ECMA_PARSE_DIRECT_EVAL)) { can_eval_types |= SCANNER_LITERAL_IS_FUNC; } -#endif /* JERRY_ESNEXT */ if ((status_flags & SCANNER_LITERAL_POOL_CAN_EVAL) && prev_literal_pool_p != NULL) { @@ -759,13 +730,7 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ if (!(status_flags & SCANNER_LITERAL_POOL_NO_ARGUMENTS) && scanner_literal_is_arguments (literal_p)) { -#if JERRY_ESNEXT JERRY_ASSERT (arguments_type != SCANNER_ARGUMENTS_NOT_PRESENT); -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (arguments_type == SCANNER_ARGUMENTS_MAY_PRESENT - || arguments_type == SCANNER_ARGUMENTS_MAY_PRESENT_IN_EVAL); -#endif /* JERRY_ESNEXT */ - status_flags |= SCANNER_LITERAL_POOL_NO_ARGUMENTS; if (type & SCANNER_LITERAL_IS_ARG) @@ -775,7 +740,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ arguments_type = SCANNER_ARGUMENTS_NOT_PRESENT; last_argument_p = literal_p; } -#if JERRY_ESNEXT else if (type & SCANNER_LITERAL_IS_LOCAL) { if (arguments_type == SCANNER_ARGUMENTS_MAY_PRESENT || arguments_type == SCANNER_ARGUMENTS_MAY_PRESENT_IN_EVAL) @@ -806,15 +770,8 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ } } } -#else /* !JERRY_ESNEXT */ - else if (type & SCANNER_LITERAL_IS_FUNC) - { - arguments_type = SCANNER_ARGUMENTS_NOT_PRESENT; - } -#endif /* JERRY_ESNEXT */ else { -#if JERRY_ESNEXT if ((type & SCANNER_LITERAL_IS_VAR) && (arguments_type == SCANNER_ARGUMENTS_PRESENT || arguments_type == SCANNER_ARGUMENTS_PRESENT_NO_REG)) { @@ -831,7 +788,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ literal_p->type = type; no_declarations--; } -#endif /* JERRY_ESNEXT */ if ((type & SCANNER_LITERAL_NO_REG) || arguments_type == SCANNER_ARGUMENTS_MAY_PRESENT_IN_EVAL) { @@ -842,17 +798,12 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ arguments_type = SCANNER_ARGUMENTS_PRESENT; } -#if JERRY_ESNEXT /* The SCANNER_LITERAL_IS_ARG may be set above. */ if (!(type & SCANNER_LITERAL_IS_ARG)) { literal_p->type = 0; continue; } -#else /* !JERRY_ESNEXT */ - literal_p->type = 0; - continue; -#endif /* JERRY_ESNEXT */ } } else if (type & SCANNER_LITERAL_IS_ARG) @@ -860,7 +811,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ last_argument_p = literal_p; } -#if JERRY_ESNEXT if ((status_flags & SCANNER_LITERAL_POOL_FUNCTION) && (type & SCANNER_LITERAL_IS_LOCAL_FUNC) == SCANNER_LITERAL_IS_FUNC) { @@ -878,7 +828,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ type &= (uint8_t) ~SCANNER_LITERAL_IS_FUNC; literal_p->type = type; } -#endif /* JERRY_ESNEXT */ if ((type & SCANNER_LITERAL_IS_LOCAL) || ((type & (SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_ARG)) @@ -904,7 +853,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ { no_declarations++; -#if JERRY_ESNEXT if ((type & (SCANNER_LITERAL_IS_CONST | SCANNER_LITERAL_IS_ARG)) == SCANNER_LITERAL_IS_CONST) { JERRY_ASSERT (type & SCANNER_LITERAL_IS_LET); @@ -913,14 +861,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ literal_p->type = (uint8_t) (type & ~SCANNER_LITERAL_IS_FUNC); no_declarations--; } -#else /* !JERRY_ESNEXT */ - if (type & SCANNER_LITERAL_IS_LOCAL) - { - /* Catch parameters cannot be functions. */ - literal_p->type = (uint8_t) (type & ~SCANNER_LITERAL_IS_FUNC); - no_declarations--; - } -#endif /* JERRY_ESNEXT */ } intptr_t diff = (intptr_t) (literal_p->char_p - prev_source_p); @@ -941,9 +881,7 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ prev_source_p = literal_p->char_p + literal_p->length; if ((status_flags & SCANNER_LITERAL_POOL_FUNCTION) -#if JERRY_ESNEXT || ((type & SCANNER_LITERAL_IS_FUNC) && (status_flags & SCANNER_LITERAL_POOL_IS_STRICT)) -#endif /* JERRY_ESNEXT */ || !(type & (SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_FUNC))) { continue; @@ -956,18 +894,12 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ lexer_lit_location_t *literal_location_p = scanner_add_custom_literal (context_p, prev_literal_pool_p, literal_p); uint8_t extended_type = literal_location_p->type; -#if JERRY_ESNEXT - const uint16_t no_reg_flags = (SCANNER_LITERAL_POOL_FUNCTION | SCANNER_LITERAL_POOL_CLASS_FIELD); -#else /* !JERRY_ESNEXT */ - const uint16_t no_reg_flags = SCANNER_LITERAL_POOL_FUNCTION; -#endif /* JERRY_ESNEXT */ - - if ((status_flags & no_reg_flags) || (type & SCANNER_LITERAL_NO_REG)) + if ((status_flags & (SCANNER_LITERAL_POOL_FUNCTION | SCANNER_LITERAL_POOL_CLASS_FIELD)) + || (type & SCANNER_LITERAL_NO_REG)) { extended_type |= SCANNER_LITERAL_NO_REG; } -#if JERRY_ESNEXT extended_type |= SCANNER_LITERAL_IS_USED; if (status_flags & SCANNER_LITERAL_POOL_FUNCTION_STATEMENT) @@ -984,7 +916,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ * for speculative arrow parameters and local (non-var) functions. */ type = 0; } -#endif /* JERRY_ESNEXT */ type = (uint8_t) (type & (SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_FUNC)); JERRY_ASSERT (type == 0 || !(status_flags & SCANNER_LITERAL_POOL_FUNCTION)); @@ -1046,13 +977,7 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ no_declarations++; } -#if JERRY_ESNEXT - const uint16_t is_unmapped = SCANNER_LITERAL_POOL_IS_STRICT | SCANNER_LITERAL_POOL_HAS_COMPLEX_ARGUMENT; -#else /* !JERRY_ESNEXT */ - const uint16_t is_unmapped = SCANNER_LITERAL_POOL_IS_STRICT; -#endif /* JERRY_ESNEXT */ - - if (!(status_flags & is_unmapped)) + if (!(status_flags & (SCANNER_LITERAL_POOL_IS_STRICT | SCANNER_LITERAL_POOL_HAS_COMPLEX_ARGUMENT))) { mapped_arguments = true; } @@ -1072,7 +997,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ last_argument_p = NULL; } -#if JERRY_ESNEXT if (status_flags & (SCANNER_LITERAL_POOL_HAS_COMPLEX_ARGUMENT | SCANNER_LITERAL_POOL_ARROW)) { u8_arg |= SCANNER_FUNCTION_HAS_COMPLEX_ARGUMENT; @@ -1097,7 +1021,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ { u8_arg |= SCANNER_FUNCTION_IS_STRICT; } -#endif /* JERRY_ESNEXT */ info_p->u8_arg = u8_arg; info_p->u16_arg = (uint16_t) no_declarations; @@ -1147,19 +1070,16 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ { type = SCANNER_STREAM_TYPE_ARG_FUNC; -#if JERRY_ESNEXT if (literal_p->type & SCANNER_LITERAL_IS_DESTRUCTURED_ARG) { type = SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_FUNC; } -#endif /* JERRY_ESNEXT */ } } else if (literal_p->type & SCANNER_LITERAL_IS_ARG) { type = SCANNER_STREAM_TYPE_ARG; -#if JERRY_ESNEXT if (literal_p->type & SCANNER_LITERAL_IS_DESTRUCTURED_ARG) { type = SCANNER_STREAM_TYPE_DESTRUCTURED_ARG; @@ -1171,9 +1091,7 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ JERRY_ASSERT (type == SCANNER_STREAM_TYPE_ARG_VAR || type == SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_VAR); } -#endif /* JERRY_ESNEXT */ } -#if JERRY_ESNEXT else if (literal_p->type & SCANNER_LITERAL_IS_LET) { if (!(literal_p->type & SCANNER_LITERAL_IS_CONST)) @@ -1210,7 +1128,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ { type |= SCANNER_STREAM_NO_REG | SCANNER_STREAM_EARLY_CREATE; } -#endif /* JERRY_ESNEXT */ if (literal_p->status_flags & LEXER_LIT_LOCATION_HAS_ESCAPE) { @@ -1282,7 +1199,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ context_p->status_flags &= (uint32_t) ~PARSER_IS_STRICT; } -#if JERRY_ESNEXT if (prev_literal_pool_p->status_flags & SCANNER_LITERAL_POOL_GENERATOR) { context_p->status_flags |= PARSER_IS_GENERATOR_FUNCTION; @@ -1300,7 +1216,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ { context_p->status_flags &= (uint32_t) ~PARSER_IS_ASYNC_FUNCTION; } -#endif /* JERRY_ESNEXT */ } scanner_context_p->active_literal_pool_p = literal_pool_p->prev_p; @@ -1309,8 +1224,6 @@ scanner_pop_literal_pool (parser_context_t *context_p, /**< context */ scanner_free (literal_pool_p, sizeof (scanner_literal_pool_t)); } /* scanner_pop_literal_pool */ -#if JERRY_ESNEXT - /** * Filter out the arguments from a literal pool. */ @@ -1467,8 +1380,6 @@ scanner_filter_arguments (parser_context_t *context_p, /**< context */ scanner_free (literal_pool_p, sizeof (scanner_literal_pool_t)); } /* scanner_filter_arguments */ -#endif /* JERRY_ESNEXT */ - /** * Add any literal to the specified literal pool. * @@ -1522,13 +1433,11 @@ scanner_add_custom_literal (parser_context_t *context_p, /**< context */ } } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (literal_pool_p->status_flags & SCANNER_LITERAL_POOL_CLASS_NAME)) { literal_pool_p = literal_pool_p->prev_p; continue; } -#endif /* JERRY_ESNEXT */ literal_p = (lexer_lit_location_t *) parser_list_append (context_p, &literal_pool_p->literal_pool); *literal_p = *literal_location_p; @@ -1565,9 +1474,7 @@ scanner_add_reference (parser_context_t *context_p, /**< context */ { lexer_lit_location_t *lit_location_p = scanner_add_custom_literal (context_p, scanner_context_p->active_literal_pool_p, &context_p->token.lit_location); -#if JERRY_ESNEXT lit_location_p->type |= SCANNER_LITERAL_IS_USED; -#endif /* JERRY_ESNEXT */ if (scanner_context_p->active_literal_pool_p->status_flags & SCANNER_LITERAL_POOL_IN_WITH) { @@ -1634,12 +1541,10 @@ scanner_append_argument (parser_context_t *context_p, /**< context */ { literal_p->length = 0; -#if JERRY_ESNEXT if (literal_p->type & SCANNER_LITERAL_IS_USED) { literal_type = SCANNER_LITERAL_IS_ARG | SCANNER_LITERAL_EARLY_CREATE; } -#endif /* JERRY_ESNEXT */ } literal_p = (lexer_lit_location_t *) parser_list_append (context_p, &literal_pool_p->literal_pool); @@ -1699,18 +1604,11 @@ scanner_detect_eval_call (parser_context_t *context_p, /**< context */ { if (context_p->token.keyword_type == LEXER_KEYW_EVAL && lexer_check_next_character (context_p, LIT_CHAR_LEFT_PAREN)) { -#if JERRY_ESNEXT - const uint16_t flags = (uint16_t) (SCANNER_LITERAL_POOL_CAN_EVAL | SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE); -#else /* !JERRY_ESNEXT */ - const uint16_t flags = SCANNER_LITERAL_POOL_CAN_EVAL; -#endif /* JERRY_ESNEXT */ - - scanner_context_p->active_literal_pool_p->status_flags |= flags; + scanner_context_p->active_literal_pool_p->status_flags |= + (SCANNER_LITERAL_POOL_CAN_EVAL | SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE); } } /* scanner_detect_eval_call */ -#if JERRY_ESNEXT - /** * Throws an error for invalid var statements. */ @@ -2005,8 +1903,6 @@ scanner_append_hole (parser_context_t *context_p, scanner_context_t *scanner_con literal_p->status_flags = LEXER_LIT_LOCATION_NO_OPTS; } /* scanner_append_hole */ -#endif /* JERRY_ESNEXT */ - /** * Reverse the scanner info chain after the scanning is completed. */ @@ -2071,15 +1967,11 @@ scanner_cleanup (parser_context_t *context_p) /**< context */ } case SCANNER_TYPE_WHILE: case SCANNER_TYPE_FOR_IN: -#if JERRY_ESNEXT case SCANNER_TYPE_FOR_OF: -#endif /* JERRY_ESNEXT */ case SCANNER_TYPE_CASE: -#if JERRY_ESNEXT case SCANNER_TYPE_INITIALIZER: case SCANNER_TYPE_CLASS_FIELD_INITIALIZER_END: case SCANNER_TYPE_CLASS_STATIC_BLOCK_END: -#endif /* JERRY_ESNEXT */ { size = sizeof (scanner_location_info_t); break; @@ -2095,25 +1987,19 @@ scanner_cleanup (parser_context_t *context_p) /**< context */ size = sizeof (scanner_switch_info_t); break; } -#if JERRY_ESNEXT case SCANNER_TYPE_CLASS_CONSTRUCTOR: { scanner_release_private_fields (((scanner_class_info_t *) scanner_info_p)->members); size = sizeof (scanner_class_info_t); break; } -#endif /* JERRY_ESNEXT */ default: { -#if JERRY_ESNEXT JERRY_ASSERT ( scanner_info_p->type == SCANNER_TYPE_END_ARGUMENTS || scanner_info_p->type == SCANNER_TYPE_LITERAL_FLAGS || scanner_info_p->type == SCANNER_TYPE_LET_EXPRESSION || scanner_info_p->type == SCANNER_TYPE_ERR_REDECLARED || scanner_info_p->type == SCANNER_TYPE_ERR_ASYNC_FUNCTION || scanner_info_p->type == SCANNER_TYPE_EXPORT_MODULE_SPECIFIER); -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (scanner_info_p->type == SCANNER_TYPE_END_ARGUMENTS); -#endif /* JERRY_ESNEXT */ break; } } @@ -2141,24 +2027,15 @@ scanner_is_context_needed (parser_context_t *context_p, /**< context */ JERRY_UNUSED (check_type); -#if JERRY_ESNEXT JERRY_ASSERT ((check_type == PARSER_CHECK_BLOCK_CONTEXT ? info_p->type == SCANNER_TYPE_BLOCK : info_p->type == SCANNER_TYPE_FUNCTION)); uint32_t scope_stack_reg_top = (check_type != PARSER_CHECK_GLOBAL_CONTEXT ? context_p->scope_stack_reg_top : 1); /* block result */ -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (check_type == PARSER_CHECK_BLOCK_CONTEXT); - JERRY_ASSERT (info_p->type == SCANNER_TYPE_BLOCK); - - uint32_t scope_stack_reg_top = context_p->scope_stack_reg_top; -#endif /* !JERRY_NDEBUG */ while (data_p[0] != SCANNER_STREAM_TYPE_END) { uint8_t data = data_p[0]; - -#if JERRY_ESNEXT uint32_t type = data & SCANNER_STREAM_TYPE_MASK; if (JERRY_UNLIKELY (check_type == PARSER_CHECK_FUNCTION_CONTEXT)) @@ -2219,11 +2096,6 @@ scanner_is_context_needed (parser_context_t *context_p, /**< context */ || type == SCANNER_STREAM_TYPE_FUNC); } #endif /* !JERRY_NDEBUG */ - -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT ((data & SCANNER_STREAM_TYPE_MASK) == SCANNER_STREAM_TYPE_VAR); -#endif /* JERRY_ESNEXT */ - if (!(data & SCANNER_STREAM_UINT16_DIFF)) { if (data_p[2] != 0) @@ -2240,7 +2112,6 @@ scanner_is_context_needed (parser_context_t *context_p, /**< context */ data_p += 2 + 2; } -#if JERRY_ESNEXT #if JERRY_MODULE_SYSTEM const bool is_import = (type == SCANNER_STREAM_TYPE_IMPORT); #else /* !JERRY_MODULE_SYSTEM */ @@ -2275,7 +2146,6 @@ scanner_is_context_needed (parser_context_t *context_p, /**< context */ continue; } } -#endif /* JERRY_ESNEXT */ if ((data & SCANNER_STREAM_NO_REG) || scope_stack_reg_top >= PARSER_MAXIMUM_NUMBER_OF_REGISTERS) { @@ -2288,8 +2158,6 @@ scanner_is_context_needed (parser_context_t *context_p, /**< context */ return false; } /* scanner_is_context_needed */ -#if JERRY_ESNEXT - /** * Try to scan/parse the ".target" part in the "new.target" expression. * @@ -2326,8 +2194,6 @@ scanner_try_scan_new_target (parser_context_t *context_p) /**< parser/scanner co return false; } /* scanner_try_scan_new_target */ -#endif /* JERRY_ESNEXT */ - /** * Description of "arguments" literal string. */ @@ -2356,7 +2222,6 @@ scanner_create_unused_literal (parser_context_t *context_p, /**< context */ context_p->literal_count++; } /* scanner_create_unused_literal */ -#if JERRY_ESNEXT /** * Emit checks for redeclared bindings in the global lexical scope. */ @@ -2438,7 +2303,6 @@ scanner_check_variables (parser_context_t *context_p) /**< context */ parser_flush_cbc (context_p); } /* scanner_check_variables */ -#endif /* JERRY_ESNEXT */ /** * Create and/or initialize var/let/const/function/etc. variables. @@ -2560,10 +2424,7 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ { map_to = (uint16_t) (PARSER_REGISTER_START + scope_stack_reg_top); -#if JERRY_ESNEXT scope_stack_p->map_to = (uint16_t) (scope_stack_reg_top + 1); -#endif /* JERRY_ESNEXT */ - scope_stack_reg_top++; } else @@ -2573,19 +2434,14 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ context_p->status_flags |= PARSER_LEXICAL_ENV_NEEDED; -#if JERRY_ESNEXT if (data_p[0] & SCANNER_STREAM_LOCAL_ARGUMENTS) { context_p->status_flags |= PARSER_LEXICAL_BLOCK_NEEDED; } scope_stack_p->map_to = 0; -#endif /* JERRY_ESNEXT */ } -#if !JERRY_ESNEXT - scope_stack_p->map_to = map_to; -#endif /* !JERRY_ESNEXT */ scope_stack_p++; #if JERRY_PARSER_DUMP_BYTE_CODE @@ -2594,7 +2450,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ parser_emit_cbc_ext_literal (context_p, CBC_EXT_CREATE_ARGUMENTS, map_to); -#if JERRY_ESNEXT if (type == SCANNER_STREAM_TYPE_ARGUMENTS_FUNC) { if (JERRY_UNLIKELY (scope_stack_p >= scope_stack_end_p)) @@ -2609,7 +2464,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ scanner_create_unused_literal (context_p, 0); } -#endif /* JERRY_ESNEXT */ if (option_flags & SCANNER_CREATE_VARS_IS_FUNCTION_ARGS) { @@ -2650,7 +2504,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ { if (option_flags & SCANNER_CREATE_VARS_IS_FUNCTION_BODY) { -#if JERRY_ESNEXT if ((context_p->status_flags & PARSER_LEXICAL_BLOCK_NEEDED) && (type == SCANNER_STREAM_TYPE_ARG_VAR || type == SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_VAR)) { @@ -2667,7 +2520,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ parser_emit_cbc_ext_literal_from_token (context_p, CBC_EXT_COPY_FROM_ARG); } } -#endif /* JERRY_ESNEXT */ literal.char_p += data_p[1]; continue; @@ -2691,9 +2543,7 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ { JERRY_ASSERT (scope_stack_p >= context_p->scope_stack_p + 2); JERRY_ASSERT (context_p->status_flags & PARSER_IS_FUNCTION); -#if JERRY_ESNEXT JERRY_ASSERT (!(context_p->status_flags & PARSER_FUNCTION_IS_PARSING_ARGS)); -#endif /* JERRY_ESNEXT */ parser_scope_stack_t *function_map_p = scope_stack_p - 2; uint16_t literal_index = context_p->lit_object.index; @@ -2709,13 +2559,11 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ cbc_opcode_t opcode = CBC_SET_VAR_FUNC; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (context_p->status_flags & PARSER_LEXICAL_BLOCK_NEEDED) && (function_map_p[0].map_to & PARSER_SCOPE_STACK_REGISTER_MASK) == 0) { opcode = CBC_INIT_ARG_OR_FUNC; } -#endif /* JERRY_ESNEXT */ parser_emit_cbc_literal_value (context_p, (uint16_t) opcode, @@ -2732,7 +2580,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ scope_stack_p->map_from = context_p->lit_object.index; -#if JERRY_ESNEXT if (info_type == SCANNER_TYPE_FUNCTION) { if (type != SCANNER_STREAM_TYPE_LET @@ -2744,7 +2591,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ context_p->lit_object.literal_p->status_flags |= LEXER_FLAG_GLOBAL; } } -#endif /* JERRY_ESNEXT */ uint16_t map_to; uint16_t func_init_opcode = CBC_INIT_ARG_OR_FUNC; @@ -2752,15 +2598,9 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ if (!(data_p[0] & SCANNER_STREAM_NO_REG) && scope_stack_reg_top < PARSER_MAXIMUM_NUMBER_OF_REGISTERS) { map_to = (uint16_t) (PARSER_REGISTER_START + scope_stack_reg_top); - -#if JERRY_ESNEXT scope_stack_p->map_to = (uint16_t) (scope_stack_reg_top + 1); -#else /* !JERRY_ESNEXT */ - scope_stack_p->map_to = map_to; -#endif /* JERRY_ESNEXT */ - scope_stack_reg_top++; -#if JERRY_ESNEXT + switch (type) { case SCANNER_STREAM_TYPE_CONST: @@ -2782,18 +2622,13 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ } func_init_opcode = CBC_SET_VAR_FUNC; -#endif /* JERRY_ESNEXT */ } else { context_p->lit_object.literal_p->status_flags |= LEXER_FLAG_USED; map_to = context_p->lit_object.index; -#if JERRY_ESNEXT uint16_t scope_stack_map_to = 0; -#else /* !JERRY_ESNEXT */ - scope_stack_p->map_to = map_to; -#endif /* JERRY_ESNEXT */ if (info_type == SCANNER_TYPE_FUNCTION) { @@ -2802,7 +2637,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ switch (type) { -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_LET: case SCANNER_STREAM_TYPE_CONST: case SCANNER_STREAM_TYPE_DESTRUCTURED_ARG: @@ -2819,14 +2653,11 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ /* FALLTHRU */ } case SCANNER_STREAM_TYPE_LOCAL: -#endif /* JERRY_ESNEXT */ case SCANNER_STREAM_TYPE_VAR: { #if JERRY_PARSER_DUMP_BYTE_CODE context_p->scope_stack_top = (uint16_t) (scope_stack_p - context_p->scope_stack_p); #endif /* JERRY_PARSER_DUMP_BYTE_CODE */ - -#if JERRY_ESNEXT uint16_t opcode; switch (type) @@ -2867,43 +2698,34 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ break; } } -#else /* !JERRY_ESNEXT */ - uint16_t opcode = ((option_flags & SCANNER_CREATE_VARS_IS_SCRIPT) ? CBC_CREATE_VAR_EVAL : CBC_CREATE_VAR); -#endif /* JERRY_ESNEXT */ parser_emit_cbc_literal (context_p, opcode, map_to); break; } case SCANNER_STREAM_TYPE_ARG: -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_ARG_VAR: -#endif /* JERRY_ESNEXT */ case SCANNER_STREAM_TYPE_ARG_FUNC: { #if JERRY_PARSER_DUMP_BYTE_CODE context_p->scope_stack_top = (uint16_t) (scope_stack_p - context_p->scope_stack_p); #endif /* JERRY_PARSER_DUMP_BYTE_CODE */ -#if JERRY_ESNEXT scope_stack_map_to |= PARSER_SCOPE_STACK_NO_FUNCTION_COPY; /* Argument initializers of functions with simple arguments (e.g. function f(a,b,a) {}) are * generated here. The other initializers are handled by parser_parse_function_arguments(). */ if (!(info_u8_arg & SCANNER_FUNCTION_HAS_COMPLEX_ARGUMENT)) { -#endif /* JERRY_ESNEXT */ parser_emit_cbc_literal_value (context_p, CBC_INIT_ARG_OR_FUNC, (uint16_t) (PARSER_REGISTER_START + scope_stack_reg_top), map_to); -#if JERRY_ESNEXT } else if (data_p[0] & SCANNER_STREAM_EARLY_CREATE) { parser_emit_cbc_literal (context_p, CBC_CREATE_LOCAL, map_to); scope_stack_map_to |= PARSER_SCOPE_STACK_IS_LOCAL_CREATED; } -#endif /* JERRY_ESNEXT */ if (scope_stack_reg_top < PARSER_MAXIMUM_NUMBER_OF_REGISTERS) { @@ -2913,9 +2735,7 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ } } -#if JERRY_ESNEXT scope_stack_p->map_to = scope_stack_map_to; -#endif /* JERRY_ESNEXT */ } scope_stack_p++; @@ -2939,7 +2759,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ { if (func_init_opcode == CBC_INIT_ARG_OR_FUNC && (option_flags & SCANNER_CREATE_VARS_IS_SCRIPT)) { -#if JERRY_ESNEXT literal.char_p -= data_p[1]; if (!scanner_scope_find_lexical_declaration (context_p, &literal)) @@ -2952,9 +2771,6 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ } } literal.char_p += data_p[1]; -#else /* !JERRY_ESNEXT */ - func_init_opcode = CBC_CREATE_VAR_FUNC_EVAL; -#endif /* JERRY_ESNEXT */ } parser_emit_cbc_literal_value (context_p, func_init_opcode, context_p->literal_count, map_to); @@ -2970,12 +2786,10 @@ scanner_create_variables (parser_context_t *context_p, /**< context */ context_p->scope_stack_top = (uint16_t) (scope_stack_p - context_p->scope_stack_p); context_p->scope_stack_reg_top = (uint16_t) scope_stack_reg_top; -#if JERRY_ESNEXT if (info_type == SCANNER_TYPE_FUNCTION) { context_p->scope_stack_global_end = context_p->scope_stack_top; } -#endif /* JERRY_ESNEXT */ if (context_p->register_count < scope_stack_reg_top) { @@ -3021,16 +2835,10 @@ scanner_decode_map_to (parser_scope_stack_t *stack_item_p) /**< scope stack item { JERRY_ASSERT (stack_item_p->map_from != PARSER_SCOPE_STACK_FUNC); -#if JERRY_ESNEXT uint16_t value = (stack_item_p->map_to & PARSER_SCOPE_STACK_REGISTER_MASK); return (value == 0) ? stack_item_p->map_from : (uint16_t) (value + (PARSER_REGISTER_START - 1)); -#else /* !JERRY_ESNEXT */ - return stack_item_p->map_to; -#endif /* JERRY_ESNEXT */ } /* scanner_decode_map_to */ -#if JERRY_ESNEXT - /** * Find the given literal index in the scope stack * and save it the constant literal pool if the literal is register stored @@ -3142,8 +2950,6 @@ scanner_literal_exists (parser_context_t *context_p, /**< context */ return false; } /* scanner_literal_exists */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/parser/js/js-scanner.c b/jerry-core/parser/js/js-scanner.c index 54909fb9d..3ed8ef3fb 100644 --- a/jerry-core/parser/js/js-scanner.c +++ b/jerry-core/parser/js/js-scanner.c @@ -42,13 +42,7 @@ typedef enum /** * Checks whether token type is "of". */ -#if JERRY_ESNEXT #define SCANNER_IDENTIFIER_IS_OF() (lexer_token_is_identifier (context_p, "of", 2)) -#else /* !JERRY_ESNEXT */ -#define SCANNER_IDENTIFIER_IS_OF() (false) -#endif /* JERRY_ESNEXT */ - -#if JERRY_ESNEXT JERRY_STATIC_ASSERT (SCANNER_FROM_LITERAL_POOL_TO_COMPUTED (SCANNER_LITERAL_POOL_GENERATOR) == SCAN_STACK_COMPUTED_GENERATOR, @@ -62,8 +56,6 @@ JERRY_STATIC_ASSERT (SCANNER_FROM_COMPUTED_TO_LITERAL_POOL (SCAN_STACK_COMPUTED_ JERRY_STATIC_ASSERT (SCANNER_FROM_COMPUTED_TO_LITERAL_POOL (SCAN_STACK_COMPUTED_ASYNC) == SCANNER_LITERAL_POOL_ASYNC, scanner_invalid_conversion_from_computed_async_to_literal_pool_async); -#endif /* JERRY_ESNEXT */ - /** * Change scanner mode from primary expression to post primary expression. * @@ -75,7 +67,6 @@ scanner_primary_to_post_primary_expression (parser_context_t *context_p, /**< co { scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (context_p->stack_top_uint8 == SCAN_STACK_CLASS_FIELD_INITIALIZER && (context_p->status_flags & PARSER_IS_STRICT))) { @@ -88,9 +79,6 @@ scanner_primary_to_post_primary_expression (parser_context_t *context_p, /**< co return SCAN_KEEP_TOKEN; } -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (context_p); -#endif /* JERRY_ESNEXT */ return SCAN_NEXT_TOKEN; } /* scanner_primary_to_post_primary_expression */ @@ -112,12 +100,11 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ { scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION_AFTER_NEW; -#if JERRY_ESNEXT if (scanner_try_scan_new_target (context_p)) { return scanner_primary_to_post_primary_expression (context_p, scanner_context_p); } -#endif /* JERRY_ESNEXT */ + break; } case LEXER_DIVIDE: @@ -133,7 +120,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ bool is_export_default = stack_top == SCAN_STACK_EXPORT_DEFAULT; #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT if (scanner_context_p->async_source_p != NULL) { status_flags |= SCANNER_LITERAL_POOL_ASYNC; @@ -143,7 +129,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ { status_flags |= SCANNER_LITERAL_POOL_GENERATOR; } -#endif /* JERRY_ESNEXT */ scanner_push_literal_pool (context_p, scanner_context_p, status_flags); @@ -187,9 +172,7 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } case LEXER_LEFT_SQUARE: { -#if JERRY_ESNEXT scanner_push_destructuring_pattern (context_p, scanner_context_p, SCANNER_BINDING_NONE, false); -#endif /* JERRY_ESNEXT */ parser_stack_push_uint8 (context_p, SCAN_STACK_ARRAY_LITERAL); scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; @@ -197,16 +180,13 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } case LEXER_LEFT_BRACE: { -#if JERRY_ESNEXT scanner_push_destructuring_pattern (context_p, scanner_context_p, SCANNER_BINDING_NONE, false); parser_stack_push_uint8 (context_p, 0); -#endif /* JERRY_ESNEXT */ parser_stack_push_uint8 (context_p, SCAN_STACK_OBJECT_LITERAL); scanner_context_p->mode = SCAN_MODE_PROPERTY_NAME; return SCAN_KEEP_TOKEN; } -#if JERRY_ESNEXT case LEXER_HASHMARK: { if (!lexer_scan_private_identifier (context_p)) @@ -228,10 +208,8 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ /* The string is a normal string literal. */ /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case LEXER_LITERAL: { -#if JERRY_ESNEXT const uint8_t *source_p = context_p->source_p; if (context_p->token.lit_location.type == LEXER_IDENT_LITERAL && lexer_check_arrow (context_p)) @@ -246,7 +224,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_check_async_function (context_p, scanner_context_p); return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ if (context_p->token.lit_location.type == LEXER_IDENT_LITERAL) { @@ -271,7 +248,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ { return scanner_primary_to_post_primary_expression (context_p, scanner_context_p); } -#if JERRY_ESNEXT case LEXER_KEYW_SUPER: { scanner_context_p->active_literal_pool_p->status_flags |= SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE; @@ -287,7 +263,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } break; } -#endif /* JERRY_ESNEXT */ case LEXER_RIGHT_SQUARE: { if (stack_top != SCAN_STACK_ARRAY_LITERAL) @@ -298,7 +273,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION_END; return SCAN_KEEP_TOKEN; } -#if JERRY_ESNEXT case LEXER_THREE_DOTS: { /* Elision or spread arguments */ @@ -309,7 +283,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* JERRY_ESNEXT */ case LEXER_COMMA: { if (stack_top != SCAN_STACK_ARRAY_LITERAL) @@ -318,15 +291,13 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; -#if JERRY_ESNEXT if (scanner_context_p->binding_type != SCANNER_BINDING_NONE) { scanner_context_p->mode = SCAN_MODE_BINDING; } -#endif /* JERRY_ESNEXT */ + break; } -#if JERRY_ESNEXT case LEXER_KEYW_YIELD: { lexer_next_token (context_p); @@ -342,7 +313,6 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ } return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case LEXER_KEYW_IMPORT: { @@ -367,12 +337,10 @@ scanner_scan_primary_expression (parser_context_t *context_p, /**< context */ { parser_stack_pop_uint8 (context_p); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == SCAN_STACK_USE_ASYNC) { scanner_add_async_literal (context_p, scanner_context_p); } -#endif /* JERRY_ESNEXT */ return scanner_primary_to_post_primary_expression (context_p, scanner_context_p); } @@ -403,13 +371,11 @@ scanner_scan_post_primary_expression (parser_context_t *context_p, /**< context { lexer_scan_identifier (context_p, LEXER_PARSE_NO_OPTS); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_HASHMARK) { context_p->token.flags |= LEXER_NO_SKIP_SPACES; lexer_next_token (context_p); } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { @@ -424,7 +390,6 @@ scanner_scan_post_primary_expression (parser_context_t *context_p, /**< context scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; return true; } -#if JERRY_ESNEXT case LEXER_TEMPLATE_LITERAL: { if (JERRY_UNLIKELY (context_p->source_p[-1] != LIT_CHAR_GRAVE_ACCENT)) @@ -434,7 +399,6 @@ scanner_scan_post_primary_expression (parser_context_t *context_p, /**< context } return true; } -#endif /* JERRY_ESNEXT */ case LEXER_LEFT_SQUARE: { parser_stack_push_uint8 (context_p, SCAN_STACK_PROPERTY_ACCESSOR); @@ -497,15 +461,11 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * switch (stack_top) { case SCAN_STACK_VAR: -#if JERRY_ESNEXT case SCAN_STACK_LET: case SCAN_STACK_CONST: -#endif /* JERRY_ESNEXT */ case SCAN_STACK_FOR_VAR_START: -#if JERRY_ESNEXT case SCAN_STACK_FOR_LET_START: case SCAN_STACK_FOR_CONST_START: -#endif /* JERRY_ESNEXT */ { scanner_context_p->mode = SCAN_MODE_VAR_STATEMENT; return SCAN_NEXT_TOKEN; @@ -515,7 +475,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_raise_error (context_p); break; } -#if JERRY_ESNEXT case SCAN_STACK_BINDING_INIT: case SCAN_STACK_BINDING_LIST_INIT: { @@ -553,7 +512,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * return SCAN_NEXT_TOKEN; } -#endif /* JERRY_ESNEXT */ case SCAN_STACK_OBJECT_LITERAL: { scanner_context_p->mode = SCAN_MODE_PROPERTY_NAME; @@ -629,12 +587,10 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == SCAN_STACK_USE_ASYNC) { scanner_add_async_literal (context_p, scanner_context_p); } -#endif /* JERRY_ESNEXT */ scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; return SCAN_NEXT_TOKEN; @@ -648,18 +604,15 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == SCAN_STACK_IF_STATEMENT) { scanner_check_function_after_if (context_p, scanner_context_p); return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ scanner_context_p->mode = SCAN_MODE_STATEMENT; return SCAN_NEXT_TOKEN; } -#if JERRY_ESNEXT case SCAN_STACK_BINDING_LIST_INIT: { parser_stack_pop_uint8 (context_p); @@ -713,12 +666,9 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION_END; return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ case SCAN_STACK_VAR: -#if JERRY_ESNEXT case SCAN_STACK_LET: case SCAN_STACK_CONST: -#endif /* JERRY_ESNEXT */ { #if JERRY_MODULE_SYSTEM scanner_context_p->active_literal_pool_p->status_flags &= (uint16_t) ~SCANNER_LITERAL_POOL_IN_EXPORT; @@ -728,10 +678,8 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * return SCAN_KEEP_TOKEN; } case SCAN_STACK_FOR_VAR_START: -#if JERRY_ESNEXT case SCAN_STACK_FOR_LET_START: case SCAN_STACK_FOR_CONST_START: -#endif /* JERRY_ESNEXT */ case SCAN_STACK_FOR_START: { if (type == LEXER_KEYW_IN || SCANNER_IDENTIFIER_IS_OF ()) @@ -745,17 +693,12 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * location_info = (scanner_location_info_t *) scanner_insert_info (context_p, for_statement.u.source_p, sizeof (scanner_location_info_t)); -#if JERRY_ESNEXT location_info->info.type = (type == LEXER_KEYW_IN) ? SCANNER_TYPE_FOR_IN : SCANNER_TYPE_FOR_OF; if (stack_top == SCAN_STACK_FOR_LET_START || stack_top == SCAN_STACK_FOR_CONST_START) { parser_stack_push_uint8 (context_p, SCAN_STACK_PRIVATE_BLOCK_EARLY); } -#else /* !JERRY_ESNEXT */ - location_info->info.type = SCANNER_TYPE_FOR_IN; -#endif /* JERRY_ESNEXT */ - scanner_get_location (&location_info->location, context_p); parser_stack_push_uint8 (context_p, SCAN_STACK_STATEMENT_WITH_EXPR); @@ -773,12 +716,10 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); parser_stack_pop (context_p, NULL, sizeof (scanner_for_statement_t)); -#if JERRY_ESNEXT if (stack_top == SCAN_STACK_FOR_LET_START || stack_top == SCAN_STACK_FOR_CONST_START) { parser_stack_push_uint8 (context_p, SCAN_STACK_PRIVATE_BLOCK); } -#endif /* JERRY_ESNEXT */ for_statement.u.source_p = context_p->source_p; parser_stack_push (context_p, &for_statement, sizeof (scanner_for_statement_t)); @@ -862,11 +803,9 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * break; } -#if JERRY_ESNEXT scanner_literal_pool_t *literal_pool_p; literal_pool_p = scanner_push_literal_pool (context_p, scanner_context_p, 0); literal_pool_p->source_p = context_p->source_p - 1; -#endif /* JERRY_ESNEXT */ parser_stack_pop_uint8 (context_p); @@ -926,7 +865,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); return SCAN_NEXT_TOKEN; } -#if JERRY_ESNEXT case SCAN_STACK_ARRAY_LITERAL: case SCAN_STACK_OBJECT_LITERAL: { @@ -960,14 +898,12 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * { scanner_pop_binding_list (scanner_context_p); -#if JERRY_ESNEXT if (object_literal_flags != 0) { scanner_info_t *info_p = scanner_insert_info (context_p, source_start.source_p, sizeof (scanner_info_t)); info_p->type = SCANNER_TYPE_LITERAL_FLAGS; info_p->u8_arg = object_literal_flags; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_RIGHT_PAREN) { @@ -1007,7 +943,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_pop_binding_list (scanner_context_p); } -#if JERRY_ESNEXT if ((stack_top == SCAN_STACK_ARRAY_LITERAL || stack_top == SCAN_STACK_OBJECT_LITERAL) && (binding_type == SCANNER_BINDING_NONE || binding_type == SCANNER_BINDING_ARROW_ARG) && context_p->token.type != LEXER_EOS && context_p->token.type != LEXER_COMMA @@ -1022,7 +957,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * info_p->type = SCANNER_TYPE_LITERAL_FLAGS; info_p->u8_arg = object_literal_flags; } -#endif /* JERRY_ESNEXT */ scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; return SCAN_KEEP_TOKEN; @@ -1051,20 +985,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * } return SCAN_NEXT_TOKEN; } -#else /* !JERRY_ESNEXT */ - case SCAN_STACK_OBJECT_LITERAL: - { - if (type != LEXER_RIGHT_BRACE) - { - break; - } - - scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; - parser_stack_pop_uint8 (context_p); - return SCAN_NEXT_TOKEN; - } - case SCAN_STACK_ARRAY_LITERAL: -#endif /* JERRY_ESNEXT */ case SCAN_STACK_PROPERTY_ACCESSOR: { if (type != LEXER_RIGHT_SQUARE) @@ -1076,7 +996,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * parser_stack_pop_uint8 (context_p); return SCAN_NEXT_TOKEN; } -#if JERRY_ESNEXT case SCAN_STACK_COMPUTED_PROPERTY: { if (type != LEXER_RIGHT_SQUARE) @@ -1307,7 +1226,6 @@ scanner_scan_primary_expression_end (parser_context_t *context_p, /**< context * scanner_context_p->mode = SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS; return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ default: { scanner_context_p->mode = SCAN_MODE_STATEMENT_END; @@ -1339,11 +1257,9 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ } case LEXER_LEFT_BRACE: { -#if JERRY_ESNEXT scanner_literal_pool_t *literal_pool_p; literal_pool_p = scanner_push_literal_pool (context_p, scanner_context_p, 0); literal_pool_p->source_p = context_p->source_p; -#endif /* JERRY_ESNEXT */ scanner_context_p->mode = SCAN_MODE_STATEMENT_OR_TERMINATOR; parser_stack_push_uint8 (context_p, SCAN_STACK_BLOCK_STATEMENT); @@ -1364,11 +1280,9 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ scanner_raise_error (context_p); } -#if JERRY_ESNEXT scanner_literal_pool_t *literal_pool_p; literal_pool_p = scanner_push_literal_pool (context_p, scanner_context_p, 0); literal_pool_p->source_p = context_p->source_p; -#endif /* JERRY_ESNEXT */ scanner_context_p->mode = SCAN_MODE_STATEMENT_OR_TERMINATOR; parser_stack_push_uint8 (context_p, SCAN_STACK_TRY_STATEMENT); @@ -1430,12 +1344,10 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ { lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_KEYW_AWAIT) { lexer_next_token (context_p); } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LEFT_PAREN) { @@ -1450,9 +1362,7 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; -#if JERRY_ESNEXT const uint8_t *source_p = context_p->source_p; -#endif /* JERRY_ESNEXT */ switch (context_p->token.type) { @@ -1468,7 +1378,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ return_type = SCAN_NEXT_TOKEN; break; } -#if JERRY_ESNEXT case LEXER_LEFT_BRACE: case LEXER_LEFT_SQUARE: { @@ -1528,7 +1437,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ ((context_p->token.type == LEXER_KEYW_CONST) ? SCAN_STACK_FOR_CONST_START : SCAN_STACK_FOR_LET_START); break; } -#endif /* JERRY_ESNEXT */ } parser_stack_push (context_p, &for_statement, sizeof (scanner_for_statement_t)); @@ -1541,7 +1449,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, SCAN_STACK_VAR); return SCAN_NEXT_TOKEN; } -#if JERRY_ESNEXT case LEXER_KEYW_LET: { scanner_context_p->mode = SCAN_MODE_VAR_STATEMENT; @@ -1554,7 +1461,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, SCAN_STACK_CONST); return SCAN_NEXT_TOKEN; } -#endif /* JERRY_ESNEXT */ case LEXER_KEYW_THROW: { scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION; @@ -1628,7 +1534,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ } case LEXER_KEYW_FUNCTION: { -#if JERRY_ESNEXT uint16_t status_flags = SCANNER_LITERAL_POOL_FUNCTION | SCANNER_LITERAL_POOL_FUNCTION_STATEMENT; if (scanner_context_p->async_source_p != NULL) @@ -1636,17 +1541,14 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ scanner_context_p->status_flags |= SCANNER_CONTEXT_THROW_ERR_ASYNC_FUNCTION; status_flags |= SCANNER_LITERAL_POOL_ASYNC; } -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_MULTIPLY) { status_flags |= SCANNER_LITERAL_POOL_GENERATOR; lexer_next_token (context_p); } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { @@ -1655,7 +1557,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ lexer_lit_location_t *literal_p = scanner_add_literal (context_p, scanner_context_p); -#if JERRY_ESNEXT const uint8_t mask = (SCANNER_LITERAL_IS_ARG | SCANNER_LITERAL_IS_FUNC | SCANNER_LITERAL_IS_LOCAL); if ((literal_p->type & SCANNER_LITERAL_IS_LOCAL) @@ -1676,11 +1577,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ literal_p->type |= SCANNER_LITERAL_IS_LOCAL_FUNC; scanner_context_p->status_flags &= (uint16_t) ~SCANNER_CONTEXT_THROW_ERR_ASYNC_FUNCTION; -#else /* !JERRY_ESNEXT */ - literal_p->type |= SCANNER_LITERAL_IS_VAR | SCANNER_LITERAL_IS_FUNC; - - uint16_t status_flags = SCANNER_LITERAL_POOL_FUNCTION; -#endif /* JERRY_ESNEXT */ scanner_push_literal_pool (context_p, scanner_context_p, status_flags); @@ -1688,7 +1584,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ parser_stack_push_uint8 (context_p, SCAN_STACK_FUNCTION_STATEMENT); return SCAN_NEXT_TOKEN; } -#if JERRY_ESNEXT case LEXER_KEYW_CLASS: { lexer_lit_location_t *literal_p; @@ -1717,7 +1612,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ return SCAN_NEXT_TOKEN; } -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case LEXER_KEYW_IMPORT: { @@ -2019,7 +1913,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ JERRY_ASSERT (context_p->token.flags & LEXER_NO_SKIP_SPACES); -#if JERRY_ESNEXT /* The colon needs to be checked first because the parser also checks * it first, and this check skips the spaces which affects source_p. */ if (JERRY_UNLIKELY (lexer_check_arrow (context_p))) @@ -2071,7 +1964,6 @@ scanner_scan_statement (parser_context_t *context_p, /**< context */ } return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ scanner_add_reference (context_p, scanner_context_p); @@ -2116,9 +2008,7 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ break; } case SCAN_STACK_BLOCK_STATEMENT: -#if JERRY_ESNEXT case SCAN_STACK_CLASS_STATEMENT: -#endif /* JERRY_ESNEXT */ case SCAN_STACK_FUNCTION_STATEMENT: { if (type != LEXER_RIGHT_BRACE) @@ -2126,17 +2016,10 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ break; } -#if JERRY_ESNEXT if (context_p->stack_top_uint8 != SCAN_STACK_CLASS_STATEMENT) { scanner_pop_literal_pool (context_p, scanner_context_p); } -#else /* !JERRY_ESNEXT */ - if (context_p->stack_top_uint8 == SCAN_STACK_FUNCTION_STATEMENT) - { - scanner_pop_literal_pool (context_p, scanner_context_p); - } -#endif /* JERRY_ESNEXT */ terminator_found = true; parser_stack_pop_uint8 (context_p); @@ -2147,9 +2030,7 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ continue; } case SCAN_STACK_FUNCTION_EXPRESSION: -#if JERRY_ESNEXT case SCAN_STACK_FUNCTION_ARROW: -#endif /* JERRY_ESNEXT */ { if (type != LEXER_RIGHT_BRACE) { @@ -2157,12 +2038,11 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ } scanner_context_p->mode = SCAN_MODE_POST_PRIMARY_EXPRESSION; -#if JERRY_ESNEXT + if (context_p->stack_top_uint8 == SCAN_STACK_FUNCTION_ARROW) { scanner_context_p->mode = SCAN_MODE_PRIMARY_EXPRESSION_END; } -#endif /* JERRY_ESNEXT */ scanner_pop_literal_pool (context_p, scanner_context_p); parser_stack_pop_uint8 (context_p); @@ -2185,14 +2065,12 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ break; } -#if JERRY_ESNEXT bool has_super_reference = (scanner_context_p->active_literal_pool_p->status_flags & SCANNER_LITERAL_POOL_HAS_SUPER_REFERENCE) != 0; -#endif /* JERRY_ESNEXT */ + scanner_pop_literal_pool (context_p, scanner_context_p); parser_stack_pop_uint8 (context_p); -#if JERRY_ESNEXT if (context_p->stack_top_uint8 == SCAN_STACK_EXPLICIT_CLASS_CONSTRUCTOR || context_p->stack_top_uint8 == SCAN_STACK_IMPLICIT_CLASS_CONSTRUCTOR) { @@ -2204,9 +2082,6 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ { *parser_stack_get_prev_uint8 (context_p) |= SCANNER_LITERAL_OBJECT_HAS_SUPER; } -#else /* JERRY_ESNEXT */ - JERRY_ASSERT (context_p->stack_top_uint8 == SCAN_STACK_OBJECT_LITERAL); -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); @@ -2238,9 +2113,7 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ scanner_context_p->active_switch_statement = switch_statement; -#if JERRY_ESNEXT scanner_pop_literal_pool (context_p, scanner_context_p); -#endif /* JERRY_ESNEXT */ terminator_found = true; lexer_next_token (context_p); @@ -2252,14 +2125,10 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ if (type == LEXER_KEYW_ELSE && (terminator_found || (context_p->token.flags & LEXER_WAS_NEWLINE))) { -#if JERRY_ESNEXT scanner_check_function_after_if (context_p, scanner_context_p); return SCAN_KEEP_TOKEN; -#else /* !JERRY_ESNEXT */ - scanner_context_p->mode = SCAN_MODE_STATEMENT; - return SCAN_NEXT_TOKEN; -#endif /* JERRY_ESNEXT */ } + continue; } case SCAN_STACK_WITH_STATEMENT: @@ -2303,7 +2172,6 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ terminator_found = true; continue; } -#if JERRY_ESNEXT case SCAN_STACK_CLASS_STATIC_BLOCK: { if (type != LEXER_RIGHT_BRACE) @@ -2354,7 +2222,6 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ scanner_pop_literal_pool (context_p, scanner_context_p); continue; } -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case SCAN_STACK_EXPORT_DEFAULT: { @@ -2379,14 +2246,7 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ parser_stack_pop_uint8 (context_p); lexer_next_token (context_p); -#if JERRY_ESNEXT scanner_pop_literal_pool (context_p, scanner_context_p); -#else /* !JERRY_ESNEXT */ - if (stack_top == SCAN_STACK_CATCH_STATEMENT) - { - scanner_pop_literal_pool (context_p, scanner_context_p); - } -#endif /* JERRY_ESNEXT */ /* A finally statement is optional after a try or catch statement. */ if (context_p->token.type == LEXER_KEYW_FINALLY) @@ -2398,11 +2258,9 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ scanner_raise_error (context_p); } -#if JERRY_ESNEXT scanner_literal_pool_t *literal_pool_p; literal_pool_p = scanner_push_literal_pool (context_p, scanner_context_p, 0); literal_pool_p->source_p = context_p->source_p; -#endif /* JERRY_ESNEXT */ parser_stack_push_uint8 (context_p, SCAN_STACK_BLOCK_STATEMENT); scanner_context_p->mode = SCAN_MODE_STATEMENT_OR_TERMINATOR; @@ -2428,13 +2286,11 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ literal_pool_p->source_p = context_p->source_p; parser_stack_push_uint8 (context_p, SCAN_STACK_CATCH_STATEMENT); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_BRACE) { scanner_context_p->mode = SCAN_MODE_STATEMENT_OR_TERMINATOR; return SCAN_NEXT_TOKEN; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LEFT_PAREN) { @@ -2443,7 +2299,6 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_SQUARE || context_p->token.type == LEXER_LEFT_BRACE) { scanner_push_destructuring_pattern (context_p, scanner_context_p, SCANNER_BINDING_CATCH, false); @@ -2460,7 +2315,6 @@ scanner_scan_statement_end (parser_context_t *context_p, /**< context */ scanner_context_p->mode = SCAN_MODE_PROPERTY_NAME; return SCAN_KEEP_TOKEN; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { @@ -2522,22 +2376,16 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_context.status_flags |= SCANNER_CONTEXT_DEBUGGER_ENABLED; } #endif /* JERRY_DEBUGGER */ -#if JERRY_ESNEXT scanner_context.binding_type = SCANNER_BINDING_NONE; scanner_context.active_binding_list_p = NULL; -#endif /* JERRY_ESNEXT */ scanner_context.active_literal_pool_p = NULL; scanner_context.active_switch_statement.last_case_p = NULL; scanner_context.end_arguments_p = NULL; -#if JERRY_ESNEXT scanner_context.async_source_p = NULL; -#endif /* JERRY_ESNEXT */ /* This assignment must be here because of Apple compilers. */ context_p->u.scanner_context_p = &scanner_context; -#if JERRY_ESNEXT context_p->global_status_flags |= ECMA_PARSE_INTERNAL_PRE_SCANNING; -#endif /* JERRY_ESNEXT */ parser_stack_init (context_p); @@ -2576,7 +2424,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ status_flags |= SCANNER_LITERAL_POOL_IS_STRICT; } -#if JERRY_ESNEXT if (context_p->status_flags & PARSER_IS_GENERATOR_FUNCTION) { status_flags |= SCANNER_LITERAL_POOL_GENERATOR; @@ -2585,7 +2432,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ { status_flags |= SCANNER_LITERAL_POOL_ASYNC; } -#endif /* JERRY_ESNEXT */ scanner_push_literal_pool (context_p, &scanner_context, status_flags); scanner_context.mode = SCAN_MODE_FUNCTION_ARGUMENTS; @@ -2618,7 +2464,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ } break; } -#if JERRY_ESNEXT case SCAN_MODE_CLASS_DECLARATION: { if (context_p->token.type == LEXER_KEYW_EXTENDS) @@ -2886,7 +2731,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_context.mode = SCAN_MODE_CLASS_BODY_NO_SCAN; continue; } -#endif /* JERRY_ESNEXT */ case SCAN_MODE_POST_PRIMARY_EXPRESSION: { if (scanner_scan_post_primary_expression (context_p, &scanner_context, type, stack_top)) @@ -2937,7 +2781,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ } case SCAN_MODE_VAR_STATEMENT: { -#if JERRY_ESNEXT if (type == LEXER_LEFT_SQUARE || type == LEXER_LEFT_BRACE) { uint8_t binding_type = SCANNER_BINDING_VAR; @@ -2965,7 +2808,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_context.mode = SCAN_MODE_PROPERTY_NAME; continue; } -#endif /* JERRY_ESNEXT */ if (type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) { @@ -2974,7 +2816,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ lexer_lit_location_t *literal_p = scanner_add_literal (context_p, &scanner_context); -#if JERRY_ESNEXT if (stack_top != SCAN_STACK_VAR && stack_top != SCAN_STACK_FOR_VAR_START) { scanner_detect_invalid_let (context_p, literal_p); @@ -3019,16 +2860,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ lexer_next_token (context_p); } -#else /* !JERRY_ESNEXT */ - literal_p->type |= SCANNER_LITERAL_IS_VAR; - - if (scanner_context.active_literal_pool_p->status_flags & SCANNER_LITERAL_POOL_IN_WITH) - { - literal_p->type |= SCANNER_LITERAL_NO_REG; - } - - lexer_next_token (context_p); -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM if (scanner_context.active_literal_pool_p->status_flags & SCANNER_LITERAL_POOL_IN_EXPORT) @@ -3067,11 +2898,7 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ continue; } -#if JERRY_ESNEXT JERRY_ASSERT (stack_top == SCAN_STACK_VAR || stack_top == SCAN_STACK_LET || stack_top == SCAN_STACK_CONST); -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (stack_top == SCAN_STACK_VAR); -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM scanner_context.active_literal_pool_p->status_flags &= (uint16_t) ~SCANNER_LITERAL_POOL_IN_EXPORT; @@ -3092,14 +2919,12 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ literal_pool_p->source_p = context_p->source_p; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (scanner_context.async_source_p != NULL)) { literal_pool_p->status_flags |= SCANNER_LITERAL_POOL_ASYNC; literal_pool_p->source_p = scanner_context.async_source_p; scanner_context.async_source_p = NULL; } -#endif /* JERRY_ESNEXT */ if (type != LEXER_LEFT_PAREN) { @@ -3107,7 +2932,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ } lexer_next_token (context_p); -#if JERRY_ESNEXT /* FALLTHRU */ } case SCAN_MODE_CONTINUE_FUNCTION_ARGUMENTS: @@ -3188,28 +3012,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ break; } } -#else /* !JERRY_ESNEXT */ - if (context_p->token.type != LEXER_RIGHT_PAREN && context_p->token.type != LEXER_EOS) - { - while (true) - { - if (context_p->token.type != LEXER_LITERAL || context_p->token.lit_location.type != LEXER_IDENT_LITERAL) - { - scanner_raise_error (context_p); - } - - scanner_append_argument (context_p, &scanner_context); - lexer_next_token (context_p); - - if (context_p->token.type != LEXER_COMMA) - { - break; - } - - lexer_next_token (context_p); - } - } -#endif /* JERRY_ESNEXT */ if (context_p->token.type == LEXER_EOS && stack_top == SCAN_STACK_SCRIPT_FUNCTION) { @@ -3225,9 +3027,7 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ context_p->source_end_p = context_p->source_start_p + context_p->source_size; lexer_init_line_info (context_p); -#if JERRY_ESNEXT scanner_filter_arguments (context_p, &scanner_context); -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); scanner_check_directives (context_p, &scanner_context); continue; @@ -3245,9 +3045,7 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_raise_error (context_p); } -#if JERRY_ESNEXT scanner_filter_arguments (context_p, &scanner_context); -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); scanner_check_directives (context_p, &scanner_context); continue; @@ -3261,7 +3059,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ lexer_check_property_modifier (context_p); } -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_SQUARE) { parser_stack_push_uint8 (context_p, SCAN_STACK_COMPUTED_PROPERTY); @@ -3280,7 +3077,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ } break; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type == LEXER_RIGHT_BRACE) { @@ -3288,15 +3084,11 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ continue; } - if (context_p->token.type == LEXER_PROPERTY_GETTER -#if JERRY_ESNEXT - || context_p->token.type == LEXER_KEYW_ASYNC || context_p->token.type == LEXER_MULTIPLY -#endif /* JERRY_ESNEXT */ - || context_p->token.type == LEXER_PROPERTY_SETTER) + if (context_p->token.type == LEXER_PROPERTY_GETTER || context_p->token.type == LEXER_KEYW_ASYNC + || context_p->token.type == LEXER_MULTIPLY || context_p->token.type == LEXER_PROPERTY_SETTER) { uint16_t literal_pool_flags = SCANNER_LITERAL_POOL_FUNCTION; -#if JERRY_ESNEXT if (context_p->token.type == LEXER_MULTIPLY) { literal_pool_flags |= SCANNER_LITERAL_POOL_GENERATOR; @@ -3310,19 +3102,16 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ literal_pool_flags |= SCANNER_LITERAL_POOL_GENERATOR; } } -#endif /* JERRY_ESNEXT */ parser_stack_push_uint8 (context_p, SCAN_STACK_FUNCTION_PROPERTY); lexer_scan_identifier (context_p, LEXER_PARSE_NO_OPTS); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_SQUARE) { parser_stack_push_uint8 (context_p, SCANNER_FROM_LITERAL_POOL_TO_COMPUTED (literal_pool_flags)); scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_LITERAL) { @@ -3339,15 +3128,12 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_raise_error (context_p); } -#if JERRY_ESNEXT parser_line_counter_t start_line = context_p->token.line; parser_line_counter_t start_column = context_p->token.column; bool is_ident = (context_p->token.lit_location.type == LEXER_IDENT_LITERAL); -#endif /* JERRY_ESNEXT */ lexer_next_token (context_p); -#if JERRY_ESNEXT if (context_p->token.type == LEXER_LEFT_PAREN) { scanner_push_literal_pool (context_p, &scanner_context, SCANNER_LITERAL_POOL_FUNCTION); @@ -3394,7 +3180,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION_END; continue; } -#endif /* JERRY_ESNEXT */ if (context_p->token.type != LEXER_COLON) { @@ -3403,15 +3188,12 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; -#if JERRY_ESNEXT if (scanner_context.binding_type != SCANNER_BINDING_NONE) { scanner_context.mode = SCAN_MODE_BINDING; } -#endif /* JERRY_ESNEXT */ break; } -#if JERRY_ESNEXT case SCAN_MODE_BINDING: { JERRY_ASSERT (scanner_context.binding_type == SCANNER_BINDING_VAR @@ -3535,7 +3317,6 @@ scanner_scan_all (parser_context_t *context_p) /**< context */ scanner_context.mode = SCAN_MODE_PRIMARY_EXPRESSION; break; } -#endif /* JERRY_ESNEXT */ } lexer_next_token (context_p); @@ -3549,9 +3330,7 @@ scan_completed: scanner_pop_literal_pool (context_p, &scanner_context); -#if JERRY_ESNEXT JERRY_ASSERT (scanner_context.active_binding_list_p == NULL); -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (scanner_context.active_literal_pool_p == NULL); #ifndef JERRY_NDEBUG @@ -3560,12 +3339,10 @@ scan_completed: } PARSER_CATCH { -#if JERRY_ESNEXT while (scanner_context.active_binding_list_p != NULL) { scanner_pop_binding_list (&scanner_context); } -#endif /* JERRY_ESNEXT */ if (JERRY_UNLIKELY (context_p->error != PARSER_ERR_OUT_OF_MEMORY)) { @@ -3575,7 +3352,6 @@ scan_completed: /* The following code may allocate memory, so it is enclosed in a try/catch. */ PARSER_TRY (context_p->try_buffer) { -#if JERRY_ESNEXT if (scanner_context.status_flags & SCANNER_CONTEXT_THROW_ERR_ASYNC_FUNCTION) { JERRY_ASSERT (scanner_context.async_source_p != NULL); @@ -3584,7 +3360,6 @@ scan_completed: info_p = scanner_insert_info (context_p, scanner_context.async_source_p, sizeof (scanner_info_t)); info_p->type = SCANNER_TYPE_ERR_ASYNC_FUNCTION; } -#endif /* JERRY_ESNEXT */ while (scanner_context.active_literal_pool_p != NULL) { @@ -3619,9 +3394,7 @@ scan_completed: PARSER_TRY_END context_p->status_flags = scanner_context.context_status_flags; -#if JERRY_ESNEXT context_p->global_status_flags &= (uint32_t) ~ECMA_PARSE_INTERNAL_PRE_SCANNING; -#endif /* JERRY_ESNEXT */ scanner_reverse_info_list (context_p); #if JERRY_PARSER_DUMP_BYTE_CODE @@ -3675,7 +3448,6 @@ scan_completed: data_p++; continue; } -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_ARGUMENTS: { JERRY_DEBUG_MSG (" ARGUMENTS%s%s\n", @@ -3692,20 +3464,11 @@ scan_completed: data_p++; continue; } -#else /* !JERRY_ESNEXT */ - case SCANNER_STREAM_TYPE_ARGUMENTS: - { - JERRY_DEBUG_MSG (" ARGUMENTS%s\n", (data_p[0] & SCANNER_STREAM_NO_REG) ? " *" : ""); - data_p++; - continue; - } -#endif /* JERRY_ESNEXT */ case SCANNER_STREAM_TYPE_VAR: { JERRY_DEBUG_MSG (" VAR "); break; } -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_LET: { JERRY_DEBUG_MSG (" LET "); @@ -3721,7 +3484,6 @@ scan_completed: JERRY_DEBUG_MSG (" LOCAL "); break; } -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM case SCANNER_STREAM_TYPE_IMPORT: { @@ -3734,7 +3496,6 @@ scan_completed: JERRY_DEBUG_MSG (" ARG "); break; } -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_ARG_VAR: { JERRY_DEBUG_MSG (" ARG_VAR "); @@ -3750,19 +3511,16 @@ scan_completed: JERRY_DEBUG_MSG (" DESTRUCTURED_ARG_VAR "); break; } -#endif /* JERRY_ESNEXT */ case SCANNER_STREAM_TYPE_ARG_FUNC: { JERRY_DEBUG_MSG (" ARG_FUNC "); break; } -#if JERRY_ESNEXT case SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_FUNC: { JERRY_DEBUG_MSG (" DESTRUCTURED_ARG_FUNC "); break; } -#endif /* JERRY_ESNEXT */ case SCANNER_STREAM_TYPE_FUNC: { JERRY_DEBUG_MSG (" FUNC "); @@ -3804,13 +3562,11 @@ scan_completed: length = 2 + 2; } -#if JERRY_ESNEXT if (data_p[0] & SCANNER_STREAM_EARLY_CREATE) { JERRY_ASSERT (data_p[0] & SCANNER_STREAM_NO_REG); JERRY_DEBUG_MSG ("*"); } -#endif /* JERRY_ESNEXT */ if (data_p[0] & SCANNER_STREAM_NO_REG) { @@ -3848,14 +3604,12 @@ scan_completed: print_location = true; break; } -#if JERRY_ESNEXT case SCANNER_TYPE_FOR_OF: { name_p = "FOR-OF"; print_location = true; break; } -#endif /* JERRY_ESNEXT */ case SCANNER_TYPE_SWITCH: { JERRY_DEBUG_MSG (" SWITCH: source:%d\n", (int) (info_p->source_p - source_start_p)); @@ -3879,7 +3633,6 @@ scan_completed: print_location = true; break; } -#if JERRY_ESNEXT case SCANNER_TYPE_INITIALIZER: { scanner_location_info_t *location_info_p = (scanner_location_info_t *) info_p; @@ -3938,7 +3691,6 @@ scan_completed: print_location = false; break; } -#endif /* JERRY_ESNEXT */ } if (print_location) diff --git a/jerry-core/parser/js/js-scanner.h b/jerry-core/parser/js/js-scanner.h index 64b77e798..78655685a 100644 --- a/jerry-core/parser/js/js-scanner.h +++ b/jerry-core/parser/js/js-scanner.h @@ -39,12 +39,9 @@ typedef enum SCANNER_TYPE_WHILE, /**< while statement */ SCANNER_TYPE_FOR, /**< for statement */ SCANNER_TYPE_FOR_IN, /**< for-in statement */ -#if JERRY_ESNEXT SCANNER_TYPE_FOR_OF, /**< for-of statement */ -#endif /* JERRY_ESNEXT */ SCANNER_TYPE_SWITCH, /**< switch statement */ SCANNER_TYPE_CASE, /**< case statement */ -#if JERRY_ESNEXT SCANNER_TYPE_INITIALIZER, /**< destructuring binding or assignment pattern with initializer */ SCANNER_TYPE_LITERAL_FLAGS, /**< object or array literal with non-zero flags (stored in u8_arg) */ SCANNER_TYPE_CLASS_CONSTRUCTOR, /**< class constructor */ @@ -54,7 +51,6 @@ typedef enum SCANNER_TYPE_ERR_REDECLARED, /**< syntax error: a variable is redeclared */ SCANNER_TYPE_ERR_ASYNC_FUNCTION, /**< an invalid async function follows */ SCANNER_TYPE_EXPORT_MODULE_SPECIFIER, /**< export with module specifier */ -#endif /* JERRY_ESNEXT */ } scanner_info_type_t; /** @@ -167,10 +163,8 @@ typedef enum SCANNER_STREAM_HAS_ESCAPE = (1 << 6), /**< binding has escape */ SCANNER_STREAM_NO_REG = (1 << 5), /**< binding cannot be stored in register */ SCANNER_STREAM_EARLY_CREATE = (1 << 4), /**< binding must be created with ECMA_VALUE_UNINITIALIZED */ -#if JERRY_ESNEXT SCANNER_STREAM_LOCAL_ARGUMENTS = SCANNER_STREAM_EARLY_CREATE, /**< arguments is redeclared * as let/const binding later */ -#endif /* JERRY_ESNEXT */ /* Update SCANNER_STREAM_TYPE_MASK macro if more bits are added. */ } scanner_compressed_stream_flags_t; @@ -182,35 +176,27 @@ typedef enum SCANNER_STREAM_TYPE_END, /**< end of scanner data */ SCANNER_STREAM_TYPE_HOLE, /**< no name is assigned to this argument */ SCANNER_STREAM_TYPE_ARGUMENTS, /**< arguments object should be created */ -#if JERRY_ESNEXT SCANNER_STREAM_TYPE_ARGUMENTS_FUNC, /**< arguments object should be created which * is later initialized with a function */ -#endif /* JERRY_ESNEXT */ SCANNER_STREAM_TYPE_VAR, /**< var declaration */ -#if JERRY_ESNEXT SCANNER_STREAM_TYPE_LET, /**< let declaration */ SCANNER_STREAM_TYPE_CONST, /**< const declaration */ SCANNER_STREAM_TYPE_LOCAL, /**< local declaration (e.g. catch block) */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM SCANNER_STREAM_TYPE_IMPORT, /**< module import */ #endif /* JERRY_MODULE_SYSTEM */ /* The next four types must be in this order (see SCANNER_STREAM_TYPE_IS_ARG). */ SCANNER_STREAM_TYPE_ARG, /**< argument declaration */ -#if JERRY_ESNEXT SCANNER_STREAM_TYPE_ARG_VAR, /**< argument declaration which is later copied * into a variable declared by var statement */ SCANNER_STREAM_TYPE_DESTRUCTURED_ARG, /**< destructuring argument declaration */ SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_VAR, /**< destructuring argument declaration which is later * copied into a variable declared by var statement */ -#endif /* JERRY_ESNEXT */ /* Function types should be at the end. See the SCANNER_STREAM_TYPE_IS_FUNCTION macro. */ SCANNER_STREAM_TYPE_ARG_FUNC, /**< argument declaration which * is later initialized with a function */ -#if JERRY_ESNEXT SCANNER_STREAM_TYPE_DESTRUCTURED_ARG_FUNC, /**< destructuring argument declaration which * is later initialized with a function */ -#endif /* JERRY_ESNEXT */ SCANNER_STREAM_TYPE_FUNC, /**< function declaration */ } scanner_compressed_stream_types_t; @@ -224,8 +210,6 @@ typedef enum */ #define SCANNER_STREAM_TYPE_IS_FUNCTION(type) ((type) >= SCANNER_STREAM_TYPE_ARG_FUNC) -#if JERRY_ESNEXT - /** * Checks whether the decoded type represents a function argument. */ @@ -244,25 +228,6 @@ typedef enum #define SCANNER_STREAM_TYPE_IS_ARGUMENTS(type) \ ((type) == SCANNER_STREAM_TYPE_ARGUMENTS || (type) == SCANNER_STREAM_TYPE_ARGUMENTS_FUNC) -#else /* !JERRY_ESNEXT */ - -/** - * Checks whether the decoded type represents a function argument. - */ -#define SCANNER_STREAM_TYPE_IS_ARG(type) ((type) == SCANNER_STREAM_TYPE_ARG) - -/** - * Checks whether the decoded type represents both a function argument and a function declaration. - */ -#define SCANNER_STREAM_TYPE_IS_ARG_FUNC(type) ((type) == SCANNER_STREAM_TYPE_ARG_FUNC) - -/** - * Checks whether the decoded type represents an arguments declaration - */ -#define SCANNER_STREAM_TYPE_IS_ARGUMENTS(type) ((type) == SCANNER_STREAM_TYPE_ARGUMENTS) - -#endif /* JERRY_ESNEXT */ - /** * Constants for u8_arg flags in scanner_function_info_t. */ @@ -270,12 +235,10 @@ typedef enum { SCANNER_FUNCTION_ARGUMENTS_NEEDED = (1 << 0), /**< arguments object needs to be created */ SCANNER_FUNCTION_HAS_COMPLEX_ARGUMENT = (1 << 1), /**< function has complex (ES2015+) argument definition */ -#if JERRY_ESNEXT SCANNER_FUNCTION_LEXICAL_ENV_NEEDED = (1 << 2), /**< lexical environment is needed for the function body */ SCANNER_FUNCTION_STATEMENT = (1 << 3), /**< function is function statement (not arrow expression) * this flag must be combined with the type of function (e.g. async) */ SCANNER_FUNCTION_ASYNC = (1 << 4), /**< function is async function */ -#endif /* JERRY_ESNEXT */ SCANNER_FUNCTION_IS_STRICT = (1 << 5), /**< function is strict */ } scanner_function_flags_t; @@ -306,8 +269,6 @@ typedef enum SCANNER_PRIVATE_FIELD_PROPERTY_GETTER_SETTER = (SCANNER_PRIVATE_FIELD_PROPERTY | SCANNER_PRIVATE_FIELD_GETTER_SETTER), } scanner_private_field_flags_t; -#if JERRY_ESNEXT - /** * Object or array literal constants for u8_arg flags in scanner_info_t. */ @@ -321,8 +282,6 @@ typedef enum SCANNER_LITERAL_OBJECT_HAS_REST = (1 << 3), /**< the object literal has a member prefixed with three dots */ } scanner_literal_flags_t; -#endif /* JERRY_ESNEXT */ - /** * Option bits for scanner_create_variables function. */ diff --git a/jerry-core/parser/js/parser-error-messages.inc.h b/jerry-core/parser/js/parser-error-messages.inc.h index 45b158ea8..cfb964942 100644 --- a/jerry-core/parser/js/parser-error-messages.inc.h +++ b/jerry-core/parser/js/parser-error-messages.inc.h @@ -16,9 +16,6 @@ /* This file is automatically generated by the gen-strings.py script * from parser-error-messages.ini. Do not edit! */ -#if JERRY_PARSER && !(JERRY_ESNEXT) -PARSER_ERROR_DEF (PARSER_ERR_INVALID_NUMBER, "Invalid number") -#endif /* JERRY_PARSER && !(JERRY_ESNEXT) */ #if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_LABEL, "Duplicated label") PARSER_ERROR_DEF (PARSER_ERR_LEFT_PAREN_EXPECTED, "Expected '(' token") @@ -28,10 +25,10 @@ PARSER_ERROR_DEF (PARSER_ERR_SEMICOLON_EXPECTED, "Expected ';' token") PARSER_ERROR_DEF (PARSER_ERR_RIGHT_SQUARE_EXPECTED, "Expected ']' token") PARSER_ERROR_DEF (PARSER_ERR_LEFT_BRACE_EXPECTED, "Expected '{' token") #endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER || JERRY_MODULE_SYSTEM +#if JERRY_MODULE_SYSTEM || JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_RIGHT_BRACE_EXPECTED, "Expected '}' token") -#endif /* JERRY_ESNEXT && JERRY_PARSER \ -|| JERRY_MODULE_SYSTEM */ +#endif /* JERRY_MODULE_SYSTEM \ +|| JERRY_PARSER */ #if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_NUMBER_TOO_LONG, "Number is too long") #endif /* JERRY_PARSER */ @@ -47,30 +44,22 @@ PARSER_ERROR_DEF (PARSER_ERR_AS_EXPECTED, "Expected 'as' token") #endif /* JERRY_MODULE_SYSTEM && JERRY_PARSER */ #if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_IN_EXPECTED, "Expected 'in' token") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_OF_EXPECTED, "Expected 'of' token") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_EXPRESSION_EXPECTED, "Expression expected") #endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM || JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_IDENTIFIER_EXPECTED, "Identifier expected") #endif /* JERRY_MODULE_SYSTEM \ || JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER -PARSER_ERROR_DEF (PARSER_ERR_INVALID_OCTAL_DIGIT, "Invalid octal digit") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ #if JERRY_PARSER +PARSER_ERROR_DEF (PARSER_ERR_INVALID_OCTAL_DIGIT, "Invalid octal digit") PARSER_ERROR_DEF (PARSER_ERR_INVALID_SWITCH, "Invalid switch body") #endif /* JERRY_PARSER */ #if JERRY_BUILTIN_REGEXP && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_UNKNOWN_REGEXP_FLAG, "Unknown regexp flag") #endif /* JERRY_BUILTIN_REGEXP && JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER -PARSER_ERROR_DEF (PARSER_ERR_INVALID_BIN_DIGIT, "Invalid binary digit") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ #if JERRY_PARSER +PARSER_ERROR_DEF (PARSER_ERR_INVALID_BIN_DIGIT, "Invalid binary digit") PARSER_ERROR_DEF (PARSER_ERR_INVALID_RIGHT_SQUARE, "Unexpected '}' token") #endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM && JERRY_PARSER @@ -91,10 +80,8 @@ PARSER_ERROR_DEF (PARSER_ERR_META_EXPECTED, "Expected 'meta' keyword") #endif /* JERRY_MODULE_SYSTEM && JERRY_PARSER */ #if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_UNEXPECTED_END, "Unexpected end of input") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_UNEXPECTED_PRIVATE_FIELD, "Unexpected private field") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ +#endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_LEFT_BRACE_MULTIPLY_EXPECTED, "Expected '{' or '*' token") #endif /* JERRY_MODULE_SYSTEM && JERRY_PARSER */ @@ -117,10 +104,10 @@ PARSER_ERROR_DEF (PARSER_ERR_FROM_COMMA_EXPECTED, "Expected 'from' or ',' token" #if JERRY_MODULE_SYSTEM PARSER_ERROR_DEF (PARSER_ERR_EXPORT_NOT_DEFINED, "Export not defined in module") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT && JERRY_PARSER || JERRY_MODULE_SYSTEM +#if JERRY_MODULE_SYSTEM || JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_VARIABLE_REDECLARED, "Local variable is redeclared") -#endif /* JERRY_ESNEXT && JERRY_PARSER \ -|| JERRY_MODULE_SYSTEM */ +#endif /* JERRY_MODULE_SYSTEM \ +|| JERRY_PARSER */ #if JERRY_BUILTIN_BIGINT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_INVALID_BIGINT, "Number is not a valid BigInt") #endif /* JERRY_BUILTIN_BIGINT && JERRY_PARSER */ @@ -130,10 +117,8 @@ PARSER_ERROR_DEF (PARSER_ERR_PROPERTY_IDENTIFIER_EXPECTED, "Property identifier #if JERRY_MODULE_SYSTEM PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_EXPORT_IDENTIFIER, "Duplicate exported identifier") #endif /* JERRY_MODULE_SYSTEM */ -#if JERRY_ESNEXT && JERRY_PARSER -PARSER_ERROR_DEF (PARSER_ERR_NEW_TARGET_EXPECTED, "Expected new.target expression") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ #if JERRY_PARSER +PARSER_ERROR_DEF (PARSER_ERR_NEW_TARGET_EXPECTED, "Expected new.target expression") PARSER_ERROR_DEF (PARSER_ERR_INVALID_CHARACTER, "Invalid (unexpected) character") PARSER_ERROR_DEF (PARSER_ERR_NON_STRICT_ARG_DEFINITION, "Non-strict argument definition") PARSER_ERROR_DEF (PARSER_ERR_UNTERMINATED_MULTILINE_COMMENT, "Unterminated multiline comment") @@ -145,36 +130,23 @@ PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_IMPORT_BINDING, "Duplicated imported bin #endif /* JERRY_MODULE_SYSTEM */ #if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_WHILE_EXPECTED, "While expected for do-while loop") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_DELETE_PRIVATE_FIELD, "Private fields can not be deleted") PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_FOR_LOOP, "Invalid left-hand-side in for-loop") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_LEFT_HAND_SIDE_EXP_EXPECTED, "Left-hand-side expression expected") PARSER_ERROR_DEF (PARSER_ERR_LITERAL_LIMIT_REACHED, "Maximum number of literals reached") PARSER_ERROR_DEF (PARSER_ERR_STACK_LIMIT_REACHED, "Maximum function stack size reached") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_AWAIT_NOT_ALLOWED, "Await expression is not allowed here") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ +#endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_LEFT_BRACE_MULTIPLY_LITERAL_EXPECTED, "Expected '{' or '*' or literal token") #endif /* JERRY_MODULE_SYSTEM && JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER -PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_ASSIGNMENT, "Invalid left-hand side in assignment") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ #if JERRY_PARSER +PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_ASSIGNMENT, "Invalid left-hand side in assignment") PARSER_ERROR_DEF (PARSER_ERR_SCOPE_STACK_LIMIT_REACHED, "Maximum depth of scope stack reached") -#endif /* JERRY_PARSER */ -#if !JERRY_ESNEXT && JERRY_PARSER -PARSER_ERROR_DEF (PARSER_ERR_OBJECT_PROPERTY_REDEFINED, "Property of object literal redefined") -#endif /* !JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_UNEXPECTED_SUPER_KEYWORD, "Super is not allowed to be used here") PARSER_ERROR_DEF (PARSER_ERR_YIELD_NOT_ALLOWED, "Yield expression is not allowed here") PARSER_ERROR_DEF (PARSER_ERR_MULTIPLE_CLASS_CONSTRUCTORS, "Multiple constructors are not allowed") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ +#endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM PARSER_ERROR_DEF (PARSER_ERR_MODULE_UNEXPECTED, "Unexpected import or export statement") #endif /* JERRY_MODULE_SYSTEM */ @@ -182,21 +154,13 @@ PARSER_ERROR_DEF (PARSER_ERR_MODULE_UNEXPECTED, "Unexpected import or export sta PARSER_ERROR_DEF (PARSER_ERR_IDENTIFIER_AFTER_NUMBER, "Identifier cannot start after a number") PARSER_ERROR_DEF (PARSER_ERR_MULTIPLE_DEFAULTS_NOT_ALLOWED, "Multiple default cases are not allowed") PARSER_ERROR_DEF (PARSER_ERR_ARRAY_ITEM_SEPARATOR_EXPECTED, "Expected ',' or ']' after an array item") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_ILLEGAL_PROPERTY_IN_DECLARATION, "Illegal property in declaration context") PARSER_ERROR_DEF (PARSER_ERR_INVALID_DESTRUCTURING_PATTERN, "Invalid destructuring assignment target") PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_PRIVATE_FIELD, "Private field has already been declared") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_NO_ARGUMENTS_EXPECTED, "Property getters must have no arguments") PARSER_ERROR_DEF (PARSER_ERR_ONE_ARGUMENT_EXPECTED, "Property setters must have one argument") PARSER_ERROR_DEF (PARSER_ERR_CASE_NOT_IN_SWITCH, "Case statement must be in a switch block") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_CLASS_CONSTRUCTOR_AS_ACCESSOR, "Class constructor may not be an accessor") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_INVALID_CONTINUE, "Continue statement must be inside a loop") #endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM && JERRY_PARSER @@ -206,37 +170,23 @@ PARSER_ERROR_DEF (PARSER_ERR_IMPORT_META_REQUIRE_MODULE, "Cannot use 'import.met PARSER_ERROR_DEF (PARSER_ERR_INVALID_IDENTIFIER_PART, "Character cannot be part of an identifier") PARSER_ERROR_DEF (PARSER_ERR_EVAL_CANNOT_ASSIGNED, "Eval cannot be assigned to in strict mode") PARSER_ERROR_DEF (PARSER_ERR_WITH_NOT_ALLOWED, "With statement not allowed in strict mode") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_NEW_TARGET_NOT_ALLOWED, "new.target expression is not allowed here") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_INVALID_IDENTIFIER_START, "Character cannot be start of an identifier") PARSER_ERROR_DEF (PARSER_ERR_STRICT_IDENT_NOT_ALLOWED, "Identifier name is reserved in strict mode") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_INVALID_NULLISH_COALESCING, "Cannot chain nullish with logical AND or OR") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_DEFAULT_NOT_IN_SWITCH, "Default statement must be in a switch block") #endif /* JERRY_PARSER */ #if JERRY_MODULE_SYSTEM && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_IMPORT_AFTER_NEW, "Module import call is not allowed after new") #endif /* JERRY_MODULE_SYSTEM && JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER -PARSER_ERROR_DEF (PARSER_ERR_TOO_MANY_CLASS_FIELDS, "Too many computed class fields are declared") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ #if JERRY_PARSER +PARSER_ERROR_DEF (PARSER_ERR_TOO_MANY_CLASS_FIELDS, "Too many computed class fields are declared") PARSER_ERROR_DEF (PARSER_ERR_INVALID_KEYWORD, "Escape sequences are not allowed in keywords") PARSER_ERROR_DEF (PARSER_ERR_ARGUMENT_LIMIT_REACHED, "Maximum number of function arguments reached") PARSER_ERROR_DEF (PARSER_ERR_NEWLINE_NOT_ALLOWED, "Newline is not allowed in strings or regexps") PARSER_ERROR_DEF (PARSER_ERR_OCTAL_NUMBER_NOT_ALLOWED, "Octal numbers are not allowed in strict mode") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_CLASS_PRIVATE_CONSTRUCTOR, "Class constructor may not be a private method") PARSER_ERROR_DEF (PARSER_ERR_FOR_AWAIT_NO_OF, "only 'of' form is allowed for for-await loops") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_ARGUMENTS_CANNOT_ASSIGNED, "Arguments cannot be assigned to in strict mode") PARSER_ERROR_DEF (PARSER_ERR_INVALID_BREAK, "Break statement must be inside a loop or switch") PARSER_ERROR_DEF (PARSER_ERR_OBJECT_ITEM_SEPARATOR_EXPECTED, "Expected ',' or '}' after a property definition") @@ -248,41 +198,23 @@ PARSER_ERROR_DEF (PARSER_ERR_UNSUPPORTED_REGEXP, "Regexp is not supported in the #if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_INVALID_RETURN, "Return statement must be inside a function body") PARSER_ERROR_DEF (PARSER_ERR_COLON_FOR_CONDITIONAL_EXPECTED, "Expected ':' token for ?: conditional expression") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_FORMAL_PARAM_AFTER_REST_PARAMETER, "Rest parameter must be the last formal parameter") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_DELETE_IDENT_NOT_ALLOWED, "Deleting identifier is not allowed in strict mode") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_LABELLED_FUNC_NOT_IN_BLOCK, "Labelled functions are only allowed inside blocks") PARSER_ERROR_DEF (PARSER_ERR_REST_PARAMETER_DEFAULT_INITIALIZER, "Rest parameter may not have a default initializer") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_EVAL_NOT_ALLOWED, "Eval is not allowed to be used here in strict mode") PARSER_ERROR_DEF (PARSER_ERR_INVALID_CONTINUE_LABEL, "Labeled statement targeted by a continue not found") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_LEXICAL_LET_BINDING, "Let binding cannot appear in let/const declarations") PARSER_ERROR_DEF (PARSER_ERR_UNDECLARED_PRIVATE_FIELD, "Private field must be declared in an enclosing class") PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_PREFIX_OP, "Invalid left-hand side expression in prefix operation") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_OCTAL_ESCAPE_NOT_ALLOWED, "Octal escape sequences are not allowed in strict mode") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_SETTER_REST_PARAMETER, "Setter function argument must not be a rest parameter") PARSER_ERROR_DEF (PARSER_ERR_ARGUMENTS_IN_CLASS_FIELD, "In class field declarations 'arguments' is not allowed") PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_POSTFIX_OP, "Invalid left-hand side expression in postfix operation") PARSER_ERROR_DEF (PARSER_ERR_INVALID_UNDERSCORE_IN_NUMBER, "Invalid use of underscore character in number literals") PARSER_ERROR_DEF (PARSER_ERR_INVALID_EXPONENTIATION, "Left operand of ** operator cannot be unary expression") PARSER_ERROR_DEF (PARSER_ERR_MISSING_ASSIGN_AFTER_CONST, "Value assignment is expected after a const declaration") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ -#if JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_ARGUMENTS_NOT_ALLOWED, "Arguments is not allowed to be used here in strict mode") -#endif /* JERRY_PARSER */ -#if JERRY_ESNEXT && JERRY_PARSER PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_ARGUMENT_NAMES, "Duplicated function argument names are not allowed here") PARSER_ERROR_DEF (PARSER_ERR_CLASS_STATIC_PROTOTYPE, "Classes may not have a static property called 'prototype'") PARSER_ERROR_DEF (PARSER_ERR_INVALID_CLASS_CONSTRUCTOR, "Class constructor may not be a generator or async function") @@ -298,4 +230,4 @@ PARSER_ERROR_DEF (PARSER_ERR_USE_STRICT_NOT_ALLOWED, "The 'use strict' directive is not allowed for functions with non-simple arguments") PARSER_ERROR_DEF (PARSER_ERR_ASSIGNMENT_EXPECTED, "Unexpected arrow function or yield expression (parentheses around the expression may help)") -#endif /* JERRY_ESNEXT && JERRY_PARSER */ +#endif /* JERRY_PARSER */ diff --git a/jerry-core/parser/js/parser-error-messages.ini b/jerry-core/parser/js/parser-error-messages.ini index d709f39a5..585d7526e 100644 --- a/jerry-core/parser/js/parser-error-messages.ini +++ b/jerry-core/parser/js/parser-error-messages.ini @@ -73,7 +73,6 @@ PARSER_ERR_INVALID_LHS_FOR_LOOP = "Invalid left-hand-side in for-loop" PARSER_ERR_INVALID_LHS_POSTFIX_OP = "Invalid left-hand side expression in postfix operation" PARSER_ERR_INVALID_LHS_PREFIX_OP = "Invalid left-hand side expression in prefix operation" PARSER_ERR_INVALID_NULLISH_COALESCING = "Cannot chain nullish with logical AND or OR" -PARSER_ERR_INVALID_NUMBER = "Invalid number" PARSER_ERR_INVALID_OCTAL_DIGIT = "Invalid octal digit" PARSER_ERR_INVALID_RETURN = "Return statement must be inside a function body" PARSER_ERR_INVALID_RIGHT_SQUARE = "Unexpected '}' token" @@ -103,7 +102,6 @@ PARSER_ERR_NON_STRICT_ARG_DEFINITION = "Non-strict argument definition" PARSER_ERR_NO_ARGUMENTS_EXPECTED = "Property getters must have no arguments" PARSER_ERR_NUMBER_TOO_LONG = "Number is too long" PARSER_ERR_OBJECT_ITEM_SEPARATOR_EXPECTED = "Expected ',' or '}' after a property definition" -PARSER_ERR_OBJECT_PROPERTY_REDEFINED = "Property of object literal redefined" PARSER_ERR_OCTAL_ESCAPE_NOT_ALLOWED = "Octal escape sequences are not allowed in strict mode" PARSER_ERR_OCTAL_NUMBER_NOT_ALLOWED = "Octal numbers are not allowed in strict mode" PARSER_ERR_OF_EXPECTED = "Expected 'of' token" diff --git a/jerry-core/parser/regexp/re-bytecode.c b/jerry-core/parser/regexp/re-bytecode.c index 82b62ee61..cfdbb90c5 100644 --- a/jerry-core/parser/regexp/re-bytecode.c +++ b/jerry-core/parser/regexp/re-bytecode.c @@ -277,22 +277,14 @@ void re_append_char (re_compiler_ctx_t *re_ctx_p, /**< RegExp bytecode context */ const lit_code_point_t cp) /**< code point */ { -#if JERRY_ESNEXT const size_t size = (re_ctx_p->flags & RE_FLAG_UNICODE) ? sizeof (lit_code_point_t) : sizeof (ecma_char_t); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (re_ctx_p); - const size_t size = sizeof (ecma_char_t); -#endif /* !JERRY_ESNEXT */ - uint8_t *dest_p = re_bytecode_reserve (re_ctx_p, size); -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { re_encode_u32 (dest_p, cp); return; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (cp <= LIT_UTF16_CODE_UNIT_MAX); re_encode_u16 (dest_p, (ecma_char_t) cp); @@ -306,22 +298,15 @@ re_insert_char (re_compiler_ctx_t *re_ctx_p, /**< RegExp bytecode context */ const uint32_t offset, /**< bytecode offset */ const lit_code_point_t cp) /**< code point*/ { -#if JERRY_ESNEXT const size_t size = (re_ctx_p->flags & RE_FLAG_UNICODE) ? sizeof (lit_code_point_t) : sizeof (ecma_char_t); -#else /* !JERRY_ESNEXT */ - JERRY_UNUSED (re_ctx_p); - const size_t size = sizeof (ecma_char_t); -#endif /* !JERRY_ESNEXT */ uint8_t *dest_p = re_bytecode_insert (re_ctx_p, offset, size); -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { re_encode_u32 (dest_p, cp); return; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (cp <= LIT_UTF16_CODE_UNIT_MAX); re_encode_u16 (dest_p, (ecma_char_t) cp); @@ -338,16 +323,12 @@ re_get_char (const uint8_t **bc_p, /**< reference to bytecode pointer */ { lit_code_point_t cp; -#if !JERRY_ESNEXT - JERRY_UNUSED (unicode); -#else /* JERRY_ESNEXT */ if (unicode) { cp = re_decode_u32 (*bc_p); *bc_p += sizeof (lit_code_point_t); } else -#endif /* JERRY_ESNEXT */ { cp = re_decode_u16 (*bc_p); *bc_p += sizeof (ecma_char_t); @@ -594,13 +575,11 @@ re_dump_bytecode (re_compiler_ctx_t *re_ctx_p) /**< RegExp bytecode context */ JERRY_DEBUG_MSG ("\n"); break; } -#if JERRY_ESNEXT case RE_OP_UNICODE_PERIOD: { JERRY_DEBUG_MSG ("UNICODE_PERIOD\n"); break; } -#endif /* JERRY_ESNEXT */ case RE_OP_PERIOD: { JERRY_DEBUG_MSG ("PERIOD\n"); diff --git a/jerry-core/parser/regexp/re-bytecode.h b/jerry-core/parser/regexp/re-bytecode.h index 07028d6dc..9fd8456de 100644 --- a/jerry-core/parser/regexp/re-bytecode.h +++ b/jerry-core/parser/regexp/re-bytecode.h @@ -82,9 +82,7 @@ typedef enum RE_OP_CLASS_ESCAPE, /**< class escape */ RE_OP_CHAR_CLASS, /**< character class */ -#if JERRY_ESNEXT RE_OP_UNICODE_PERIOD, /**< period in full unicode mode */ -#endif /* JERRY_ESNEXT */ RE_OP_PERIOD, /**< period in non-unicode mode */ RE_OP_CHAR, /**< any code point */ RE_OP_BYTE, /**< 1-byte utf8 character */ diff --git a/jerry-core/parser/regexp/re-parser.c b/jerry-core/parser/regexp/re-parser.c index 0361b34ec..b1176dc4a 100644 --- a/jerry-core/parser/regexp/re-parser.c +++ b/jerry-core/parser/regexp/re-parser.c @@ -388,7 +388,6 @@ re_count_groups (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context */ } } /* re_count_groups */ -#if JERRY_ESNEXT /** * Check if a code point is a Syntax character * @@ -403,7 +402,6 @@ re_is_syntax_char (lit_code_point_t cp) /**< code point */ || cp == LIT_CHAR_RIGHT_PAREN || cp == LIT_CHAR_LEFT_SQUARE || cp == LIT_CHAR_RIGHT_SQUARE || cp == LIT_CHAR_LEFT_BRACE || cp == LIT_CHAR_RIGHT_BRACE || cp == LIT_CHAR_VLINE); } /* re_is_syntax_char */ -#endif /* JERRY_ESNEXT */ /** * Parse a Character Escape or a Character Class Escape. @@ -429,12 +427,10 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context return ECMA_VALUE_EMPTY; } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { return ecma_raise_syntax_error (ECMA_ERR_INVALID_ESCAPE_SEQUENCE); } -#endif /* JERRY_ESNEXT */ /* Legacy octal escape sequence */ if (lit_char_is_octal_digit (*re_ctx_p->input_curr_p)) @@ -531,12 +527,10 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context } } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { return ecma_raise_syntax_error (ECMA_ERR_INVALID_CONTROL_ESCAPE_SEQUENCE); } -#endif /* JERRY_ESNEXT */ re_ctx_p->token.value = LIT_CHAR_BACKSLASH; re_ctx_p->input_curr_p--; @@ -554,12 +548,10 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context break; } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { return ecma_raise_syntax_error (ECMA_ERR_INVALID_HEX_ESCAPE_SEQUENCE); } -#endif /* JERRY_ESNEXT */ re_ctx_p->token.value = LIT_CHAR_LOWERCASE_X; break; @@ -573,7 +565,6 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context re_ctx_p->token.value = hex_value; re_ctx_p->input_curr_p += 4; -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE && lit_is_code_point_utf16_high_surrogate (re_ctx_p->token.value) && re_ctx_p->input_curr_p + 6 <= re_ctx_p->input_end_p && re_ctx_p->input_curr_p[0] == '\\' && re_ctx_p->input_curr_p[1] == 'u') @@ -586,12 +577,10 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context re_ctx_p->input_curr_p += 6; } } -#endif /* JERRY_ESNEXT */ break; } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { if (re_ctx_p->input_curr_p + 1 < re_ctx_p->input_end_p && re_ctx_p->input_curr_p[0] == LIT_CHAR_LEFT_BRACE @@ -620,7 +609,6 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context return ecma_raise_syntax_error (ECMA_ERR_INVALID_UNICODE_ESCAPE_SEQUENCE); } -#endif /* JERRY_ESNEXT */ re_ctx_p->token.value = LIT_CHAR_LOWERCASE_U; break; @@ -628,13 +616,11 @@ re_parse_char_escape (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context /* Identity escape */ default: { -#if JERRY_ESNEXT /* Must be '/', or one of SyntaxCharacter */ if (re_ctx_p->flags & RE_FLAG_UNICODE && ch != LIT_CHAR_SLASH && !re_is_syntax_char (ch)) { return ecma_raise_syntax_error (ECMA_ERR_INVALID_ESCAPE); } -#endif /* JERRY_ESNEXT */ re_ctx_p->token.value = ch; } } @@ -811,12 +797,10 @@ re_parse_next_token (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * return ecma_raise_syntax_error (ECMA_ERR_NOTHING_TO_REPEAT); } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { return ecma_raise_syntax_error (ECMA_ERR_LONE_QUANTIFIER_BRACKET); } -#endif /* JERRY_ESNEXT */ re_ctx_p->input_curr_p++; re_ctx_p->token.type = RE_TOK_CHAR; @@ -825,7 +809,6 @@ re_parse_next_token (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * /* Check quantifier */ break; } -#if JERRY_ESNEXT case LIT_CHAR_RIGHT_SQUARE: case LIT_CHAR_RIGHT_BRACE: { @@ -836,13 +819,11 @@ re_parse_next_token (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ default: { re_ctx_p->token.type = RE_TOK_CHAR; re_ctx_p->token.value = ch; -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE && lit_is_code_point_utf16_high_surrogate (ch) && re_ctx_p->input_curr_p < re_ctx_p->input_end_p) { @@ -853,7 +834,6 @@ re_parse_next_token (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * re_ctx_p->input_curr_p += LIT_UTF8_MAX_BYTES_IN_CODE_UNIT; } } -#endif /* JERRY_ESNEXT */ /* Check quantifier */ break; @@ -974,13 +954,11 @@ re_parse_char_class (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * re_ctx_p->input_curr_p++; current = LIT_CHAR_BS; } -#if JERRY_ESNEXT else if (*re_ctx_p->input_curr_p == LIT_CHAR_MINUS) { re_ctx_p->input_curr_p++; current = LIT_CHAR_MINUS; } -#endif /* JERRY_ESNEXT */ else if ((re_ctx_p->flags & RE_FLAG_UNICODE) == 0 && *re_ctx_p->input_curr_p == LIT_CHAR_LOWERCASE_C && re_ctx_p->input_curr_p + 1 < re_ctx_p->input_end_p && (lit_char_is_decimal_digit (*(re_ctx_p->input_curr_p + 1)) @@ -1009,12 +987,10 @@ re_parse_char_class (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * } } } -#if JERRY_ESNEXT else if (re_ctx_p->flags & RE_FLAG_UNICODE) { current = ecma_regexp_unicode_advance (&re_ctx_p->input_curr_p, re_ctx_p->input_end_p); } -#endif /* JERRY_ESNEXT */ else { current = lit_cesu8_read_next (&re_ctx_p->input_curr_p); @@ -1036,12 +1012,10 @@ re_parse_char_class (re_compiler_ctx_t *re_ctx_p) /**< RegExp compiler context * continue; } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { return ecma_raise_syntax_error (ECMA_ERR_INVALID_CHARACTER_CLASS); } -#endif /* JERRY_ESNEXT */ if (start != RE_INVALID_CP) { @@ -1180,12 +1154,7 @@ re_parse_alternative (re_compiler_ctx_t *re_ctx_p, /**< RegExp compiler context } case RE_TOK_PERIOD: { -#if JERRY_ESNEXT re_append_opcode (re_ctx_p, (re_ctx_p->flags & RE_FLAG_UNICODE) ? RE_OP_UNICODE_PERIOD : RE_OP_PERIOD); -#else /* !JERRY_ESNEXT */ - re_append_opcode (re_ctx_p, RE_OP_PERIOD); -#endif /* !JERRY_ESNEXT */ - re_insert_atom_iterator (re_ctx_p, atom_offset); break; } @@ -1232,7 +1201,6 @@ re_parse_alternative (re_compiler_ctx_t *re_ctx_p, /**< RegExp compiler context return result; } -#if JERRY_ESNEXT if (re_ctx_p->flags & RE_FLAG_UNICODE) { re_ctx_p->token.qmin = 1; @@ -1240,7 +1208,6 @@ re_parse_alternative (re_compiler_ctx_t *re_ctx_p, /**< RegExp compiler context re_ctx_p->token.greedy = true; } else -#endif /* JERRY_ESNEXT */ { re_parse_quantifier (re_ctx_p); diff --git a/jerry-core/profiles/README.md b/jerry-core/profiles/README.md index d60c4c472..87c72e3c5 100644 --- a/jerry-core/profiles/README.md +++ b/jerry-core/profiles/README.md @@ -56,8 +56,10 @@ In JerryScript all of the features are enabled by default, so an empty profile f The defines can have a value of `0` or `1`. If for whatever reason one of them are not defined, it is treated as if it were defined to `1`. -#### ES 5.1 features +#### Built-ins +* `JERRY_BUILTINS`: + Enables or disable all of the Built-in objects * `JERRY_BUILTIN_ANNEXB`: Enables or disables the [Annex B](http://www.ecma-international.org/ecma-262/5.1/index.html#sec-B) of the ECMA5.1 standard. * `JERRY_BUILTIN_ARRAY`: @@ -79,23 +81,6 @@ defined to `1`. Enables or disables the [RegExp](http://www.ecma-international.org/ecma-262/5.1/index.html#sec-15.10) built-in. * `JERRY_BUILTIN_STRING`: Enables or disables the [String](http://www.ecma-international.org/ecma-262/5.1/index.html#sec-15.5) built-in. -* `JERRY_BUILTINS`: - Enables or disable all of the [Standard Built-in ECMAScript 5.1 Objects](http://www.ecma-international.org/ecma-262/5.1/index.html#sec-15) - This option is evaluated first, any other `JERRY_BUILTIN_` defines will override that specific builtin config. - Equivalent with setting the following defines to the `JERRY_BUILTINS` value: - * `JERRY_BUILTIN_ANNEXB` - * `JERRY_BUILTIN_ARRAY` - * `JERRY_BUILTIN_BOOLEAN` - * `JERRY_BUILTIN_DATE` - * `JERRY_BUILTIN_ERRORS` - * `JERRY_BUILTIN_JSON` - * `JERRY_BUILTIN_MATH` - * `JERRY_BUILTIN_NUMBER` - * `JERRY_BUILTIN_REGEXP` - * `JERRY_BUILTIN_STRING` - -#### ES2015+ features - * `JERRY_BUILTIN_BIGINT`: Enables or disables the [BigInt](https://262.ecma-international.org/11.0/#sec-ecmascript-language-types-bigint-type) syntax and built-in. * `JERRY_BUILTIN_CONTAINER`: @@ -120,36 +105,4 @@ defined to `1`. Enables or disables the [WeakRef](https://tc39.es/ecma262/#sec-weak-ref-constructor) built-in. * `JERRY_MODULE_SYSTEM`: Enables or disable the [module system](http://www.ecma-international.org/ecma-262/6.0/#sec-modules) language element. -* `JERRY_ESNEXT`: Enables or disables all of the implemented [ECMAScript2015+ features](http://www.ecma-international.org/ecma-262/10.0/) above. - * [arrow functions](http://www.ecma-international.org/ecma-262/6.0/#sec-arrow-function-definitions) language element. - * [async functions](https://262.ecma-international.org/11.0/#sec-async-function-definitions) language element. - * [class](https://www.ecma-international.org/ecma-262/6.0/#sec-class-definitions) language element. - * [default value](http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions) for formal parameters. - * [destructuring assignment](http://www.ecma-international.org/ecma-262/6.0/#sec-destructuring-assignment) language element. - * [destructuring binding pattern](http://www.ecma-international.org/ecma-262/6.0/#sec-destructuring-binding-patterns) declarations. - * [enhanced object initializer](http://www.ecma-international.org/ecma-262/6.0/#sec-object-initializer) language element. - * [for-of](https://www.ecma-international.org/ecma-262/6.0/#sec-for-in-and-for-of-statements) language element. - * [for-await-of](https://262.ecma-international.org/11.0/#sec-for-in-and-for-of-statements) language element. - * [generator functions](http://www.ecma-international.org/ecma-262/6.0/#sec-generator-function-definitions) language element. - * [iterator](https://www.ecma-international.org/ecma-262/6.0/#sec-iterator-interface) built-in. - * [nullish coalescing](https://262.ecma-international.org/11.0/#prod-CoalesceExpression) built-in. - * [numeric separator](https://github.com/tc39/proposal-numeric-separator) language element. - * [Promise](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects) built-in. - * [rest parameter](http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions) language element. - * [rest operator with object destructuring](https://262.ecma-international.org/11.0/#prod-ObjectBindingPattern) language element. - * [spread](https://262.ecma-international.org/11.0/#prod-SpreadElement) syntax. - * [symbol](https://www.ecma-international.org/ecma-262/6.0/#sec-symbol-objects) language element. - * [template strings](http://www.ecma-international.org/ecma-262/6.0/#sec-static-semantics-templatestrings) language element. - Furthermore all builtins follow the latest ECMAScript specification including those which behave differently in ES5.1. - This option is evaluated first, any other `JERRY_` defines will override that specific entry. - Equivalent with setting the following defines to the `JERRY_ESNEXT` value: - * `JERRY_BUILTIN_BIGINT` - * `JERRY_BUILTIN_CONTAINER` - * `JERRY_BUILTIN_DATAVIEW` - * `JERRY_BUILTIN_GLOBAL_THIS` - * `JERRY_BUILTIN_PROXY` - * `JERRY_BUILTIN_REALMS` - * `JERRY_BUILTIN_REFLECT` - * `JERRY_BUILTIN_TYPEDARRAY` - * `JERRY_MODULE_SYSTEM` diff --git a/jerry-core/profiles/es2015-subset.profile b/jerry-core/profiles/es2015-subset.profile deleted file mode 100644 index 93c0f3575..000000000 --- a/jerry-core/profiles/es2015-subset.profile +++ /dev/null @@ -1 +0,0 @@ -# Currently an empty profile. diff --git a/jerry-core/profiles/es5.1.profile b/jerry-core/profiles/es5.1.profile deleted file mode 100644 index fbe0e34b1..000000000 --- a/jerry-core/profiles/es5.1.profile +++ /dev/null @@ -1 +0,0 @@ -JERRY_ESNEXT=0 diff --git a/jerry-core/profiles/minimal.profile b/jerry-core/profiles/minimal.profile index d431bfe6d..5aa7b8943 100644 --- a/jerry-core/profiles/minimal.profile +++ b/jerry-core/profiles/minimal.profile @@ -1,3 +1,2 @@ JERRY_BUILTINS=0 -JERRY_ESNEXT=0 JERRY_UNICODE_CASE_CONVERSION=0 diff --git a/jerry-core/vm/opcodes-ecma-arithmetics.c b/jerry-core/vm/opcodes-ecma-arithmetics.c index ec19aa752..d6503a404 100644 --- a/jerry-core/vm/opcodes-ecma-arithmetics.c +++ b/jerry-core/vm/opcodes-ecma-arithmetics.c @@ -105,13 +105,11 @@ do_number_arithmetic (number_arithmetic_op op, /**< number arithmetic operation result = ecma_number_remainder (left_number, right_number); break; } -#if JERRY_ESNEXT case NUMBER_ARITHMETIC_EXPONENTIATION: { result = ecma_number_pow (left_number, right_number); break; } -#endif /* JERRY_ESNEXT */ } ret_value = ecma_make_number_value (result); @@ -150,13 +148,11 @@ do_number_arithmetic (number_arithmetic_op op, /**< number arithmetic operation ret_value = ecma_bigint_div_mod (left_value, right_value, true); break; } -#if JERRY_ESNEXT case NUMBER_ARITHMETIC_EXPONENTIATION: { ret_value = ecma_bigint_pow (left_value, right_value); break; } -#endif /* JERRY_ESNEXT */ } ecma_free_value (left_value); diff --git a/jerry-core/vm/opcodes-ecma-relational-equality.c b/jerry-core/vm/opcodes-ecma-relational-equality.c index 23040e032..b3602adf5 100644 --- a/jerry-core/vm/opcodes-ecma-relational-equality.c +++ b/jerry-core/vm/opcodes-ecma-relational-equality.c @@ -107,7 +107,6 @@ opfunc_instanceof (ecma_value_t left_value, /**< left value */ return ecma_raise_type_error (ECMA_ERR_RIGHT_VALUE_OF_INSTANCEOF_MUST_BE_AN_OBJECT); } -#if JERRY_ESNEXT ecma_value_t has_instance_method = ecma_op_get_method_by_symbol_id (right_value, LIT_GLOBAL_SYMBOL_HAS_INSTANCE); if (ECMA_IS_VALUE_ERROR (has_instance_method)) { @@ -131,7 +130,6 @@ opfunc_instanceof (ecma_value_t left_value, /**< left value */ return ecma_make_boolean_value (has_instance); } -#endif /* JERRY_ESNEXT */ ecma_object_t *right_value_obj_p = ecma_get_object_from_value (right_value); return ecma_op_object_has_instance (right_value_obj_p, left_value); diff --git a/jerry-core/vm/opcodes.c b/jerry-core/vm/opcodes.c index 933a724f0..85c1f6569 100644 --- a/jerry-core/vm/opcodes.c +++ b/jerry-core/vm/opcodes.c @@ -184,13 +184,6 @@ vm_op_delete_prop (ecma_value_t object, /**< base object */ ecma_value_t property, /**< property name */ bool is_strict) /**< strict mode */ { -#if !JERRY_ESNEXT - if (ecma_is_value_undefined (object)) - { - return ECMA_VALUE_TRUE; - } -#endif /* !JERRY_ESNEXT */ - if (!ecma_op_require_object_coercible (object)) { return ECMA_VALUE_ERROR; @@ -215,12 +208,10 @@ vm_op_delete_prop (ecma_value_t object, /**< base object */ ecma_deref_object (obj_p); ecma_deref_ecma_string (name_string_p); -#if JERRY_ESNEXT if (is_strict && ecma_is_value_false (delete_op_ret)) { return ecma_raise_type_error (ECMA_ERR_OPERATOR_DELETE_RETURNED_FALSE_IN_STRICT_MODE); } -#endif /* JERRY_ESNEXT */ return delete_op_ret; } /* vm_op_delete_prop */ @@ -296,14 +287,12 @@ opfunc_for_in (ecma_value_t iterable_value, /**< ideally an iterable value */ ecma_object_t *obj_p = ecma_get_object_from_value (obj_expr_value); ecma_collection_t *prop_names_p = ecma_op_object_enumerate (obj_p); -#if JERRY_ESNEXT if (JERRY_UNLIKELY (prop_names_p == NULL)) { ecma_deref_object (obj_p); *result_obj_p = ECMA_VALUE_ERROR; return NULL; } -#endif /* JERRY_ESNEXT */ if (prop_names_p->item_count != 0) { @@ -317,8 +306,6 @@ opfunc_for_in (ecma_value_t iterable_value, /**< ideally an iterable value */ return NULL; } /* opfunc_for_in */ -#if JERRY_ESNEXT - /** * 'VM_OC_APPEND_ARRAY' opcode handler specialized for spread objects * @@ -498,8 +485,6 @@ opfunc_spread_arguments (ecma_value_t *stack_top_p, /**< pointer to the current return buff_p; } /* opfunc_spread_arguments */ -#endif /* JERRY_ESNEXT */ - /** * 'VM_OC_APPEND_ARRAY' opcode handler, for setting array object properties * @@ -511,12 +496,10 @@ opfunc_append_array (ecma_value_t *stack_top_p, /**< current stack top */ uint16_t values_length) /**< number of elements to set * with potential OPFUNC_HAS_SPREAD_ELEMENT flag */ { -#if JERRY_ESNEXT if (values_length >= OPFUNC_HAS_SPREAD_ELEMENT) { return opfunc_append_to_spread_array (stack_top_p, (uint16_t) (values_length & ~OPFUNC_HAS_SPREAD_ELEMENT)); } -#endif /* JERRY_ESNEXT */ ecma_object_t *array_obj_p = ecma_get_object_from_value (stack_top_p[-1]); JERRY_ASSERT (ecma_get_object_type (array_obj_p) == ECMA_OBJECT_TYPE_ARRAY); @@ -574,8 +557,6 @@ opfunc_append_array (ecma_value_t *stack_top_p, /**< current stack top */ return ECMA_VALUE_EMPTY; } /* opfunc_append_array */ -#if JERRY_ESNEXT - /** * Create an executable object using the current frame context * @@ -905,7 +886,7 @@ opfunc_async_create_and_await (vm_frame_ctx_t *frame_ctx_p, /**< frame context * static ecma_value_t opfunc_private_method_or_accessor_add (ecma_object_t *class_object_p, /**< the function itself */ ecma_object_t *this_obj_p, /**< this object */ - uint32_t static_flag) + uint32_t static_flag) /**< static_flag */ { ecma_string_t *internal_string_p = ecma_get_internal_string (LIT_INTERNAL_MAGIC_STRING_CLASS_PRIVATE_ELEMENTS); ecma_property_t *prop_p = ecma_find_named_property (class_object_p, internal_string_p); @@ -985,7 +966,9 @@ opfunc_private_method_or_accessor_add (ecma_object_t *class_object_p, /**< the f * ECMA_VALUE_{TRUE/FALSE} - otherwise */ ecma_value_t -opfunc_define_field (ecma_value_t base, ecma_value_t property, ecma_value_t value) +opfunc_define_field (ecma_value_t base, /**< base */ + ecma_value_t property, /**< property */ + ecma_value_t value) /**< value */ { ecma_string_t *property_key_p = ecma_op_to_property_key (property); @@ -1216,6 +1199,8 @@ opfunc_set_home_object (ecma_object_t *func_p, /**< function object */ /** * Make private key from descriptor + * + * @return pointer to private key */ ecma_string_t * opfunc_make_private_key (ecma_value_t descriptor) /**< descriptor */ @@ -1228,6 +1213,9 @@ opfunc_make_private_key (ecma_value_t descriptor) /**< descriptor */ /** * Find a private property in the private elements internal property given the key + * + * @return pointer to the private property - if it is found, + * NULL - othervise */ static ecma_property_t * opfunc_find_private_key (ecma_object_t *class_object_p, /**< class environment */ @@ -1291,7 +1279,7 @@ static ecma_property_t * opfunc_find_private_element (ecma_object_t *obj_p, /**< object */ ecma_string_t *key_p, /**< key */ ecma_string_t **private_key_p, /**< [out] private key */ - bool allow_heritage) + bool allow_heritage) /**< heritage flag */ { JERRY_ASSERT (private_key_p != NULL); JERRY_ASSERT (*private_key_p == NULL); @@ -1342,7 +1330,8 @@ opfunc_find_private_element (ecma_object_t *obj_p, /**< object */ * ECMA_VALUE_FALSE - otherwise */ ecma_value_t -opfunc_private_in (ecma_value_t base, ecma_value_t property) +opfunc_private_in (ecma_value_t base, /**< base */ + ecma_value_t property) /**< property */ { if (!ecma_is_value_object (base)) { @@ -1514,11 +1503,13 @@ opfunc_private_get (ecma_value_t base, /**< this object */ /** * Find the private property in the object who's private key descriptor matches the given key + * + * @return pointer to private key */ static ecma_string_t * -opfunc_create_private_key (ecma_value_t *collection_p, /**< TODO */ +opfunc_create_private_key (ecma_value_t *collection_p, /**< collection of private properties */ ecma_value_t search_key, /**< key */ - ecma_private_property_kind_t search_kind) + ecma_private_property_kind_t search_kind) /**< kind of the property */ { if (search_kind < ECMA_PRIVATE_GETTER) { @@ -1561,7 +1552,10 @@ opfunc_create_private_key (ecma_value_t *collection_p, /**< TODO */ * Collect private members for PrivateMethodOrAccessorAdd and PrivateFieldAdd abstract operations */ void -opfunc_collect_private_properties (ecma_value_t constructor, ecma_value_t prop_name, ecma_value_t value, uint8_t opcode) +opfunc_collect_private_properties (ecma_value_t constructor, /**< constructor */ + ecma_value_t prop_name, /**< property name */ + ecma_value_t value, /**< value */ + uint8_t opcode) /**< opcode */ { ecma_private_property_kind_t kind = ECMA_PRIVATE_FIELD; bool is_static = false; @@ -2303,8 +2297,6 @@ opfunc_lexical_scope_has_restricted_binding (vm_frame_ctx_t *frame_ctx_p, /**< f && !ecma_is_property_configurable (property)); } /* opfunc_lexical_scope_has_restricted_binding */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/vm/opcodes.h b/jerry-core/vm/opcodes.h index 1657755d1..7a964bc30 100644 --- a/jerry-core/vm/opcodes.h +++ b/jerry-core/vm/opcodes.h @@ -36,9 +36,7 @@ typedef enum NUMBER_ARITHMETIC_MULTIPLICATION, /**< multiplication */ NUMBER_ARITHMETIC_DIVISION, /**< division */ NUMBER_ARITHMETIC_REMAINDER, /**< remainder calculation */ -#if JERRY_ESNEXT NUMBER_ARITHMETIC_EXPONENTIATION, /**< exponentiation */ -#endif /* JERRY_ESNEXT */ } number_arithmetic_op; /** @@ -54,8 +52,6 @@ typedef enum NUMBER_BITWISE_SHIFT_URIGHT, /**< bitwise UNSIGNED RIGHT SHIFT calculation */ } number_bitwise_logic_op; -#if JERRY_ESNEXT - /** * Types for opfunc_create_executable_object. */ @@ -65,8 +61,6 @@ typedef enum VM_CREATE_EXECUTABLE_OBJECT_ASYNC, /**< create an async function */ } vm_create_executable_object_type_t; -#endif /* JERRY_ESNEXT */ - /** * The stack contains spread object during the upcoming APPEND_ARRAY operation */ @@ -102,14 +96,10 @@ ecma_value_t vm_op_delete_var (ecma_value_t name_literal, ecma_object_t *lex_env ecma_collection_t *opfunc_for_in (ecma_value_t left_value, ecma_value_t *result_obj_p); -#if JERRY_ESNEXT ecma_collection_t *opfunc_spread_arguments (ecma_value_t *stack_top_p, uint8_t argument_list_len); -#endif /* JERRY_ESNEXT */ ecma_value_t opfunc_append_array (ecma_value_t *stack_top_p, uint16_t values_length); -#if JERRY_ESNEXT - vm_executable_object_t *opfunc_create_executable_object (vm_frame_ctx_t *frame_ctx_p, vm_create_executable_object_type_t type); @@ -174,7 +164,6 @@ ecma_value_t opfunc_copy_data_properties (ecma_value_t target_object, ecma_value_t source_object, ecma_value_t filter_array); ecma_value_t opfunc_lexical_scope_has_restricted_binding (vm_frame_ctx_t *vm_frame_ctx_p, ecma_string_t *name_p); -#endif /* JERRY_ESNEXT */ /** * @} diff --git a/jerry-core/vm/vm-defines.h b/jerry-core/vm/vm-defines.h index 0f93427f3..7ca781314 100644 --- a/jerry-core/vm/vm-defines.h +++ b/jerry-core/vm/vm-defines.h @@ -45,13 +45,11 @@ typedef enum VM_FRAME_CTX_SHARED_DIRECT_EVAL = (1 << 1), /**< direct eval call */ VM_FRAME_CTX_SHARED_FREE_THIS = (1 << 2), /**< free this binding */ VM_FRAME_CTX_SHARED_FREE_LOCAL_ENV = (1 << 3), /**< free local environment */ -#if JERRY_ESNEXT VM_FRAME_CTX_SHARED_NON_ARROW_FUNC = (1 << 4), /**< non-arrow function */ VM_FRAME_CTX_SHARED_HERITAGE_PRESENT = (1 << 5), /**< class heritage present */ VM_FRAME_CTX_SHARED_HAS_CLASS_FIELDS = (1 << 6), /**< has class fields */ VM_FRAME_CTX_SHARED_EXECUTABLE = (1 << 7), /**< frame is an executable object constructed * with opfunc_create_executable_object */ -#endif /* JERRY_ESNEXT */ } vm_frame_ctx_shared_flags_t; /** @@ -74,8 +72,6 @@ typedef struct uint32_t arg_list_len; /**< arguments list length */ } vm_frame_ctx_shared_args_t; -#if JERRY_ESNEXT - /** * Shared data extended with computed class fields */ @@ -91,8 +87,6 @@ typedef struct #define VM_GET_COMPUTED_CLASS_FIELDS(frame_ctx_p) \ (((vm_frame_ctx_shared_class_fields_t *) ((frame_ctx_p)->shared_p))->computed_class_fields_p) -#endif /* JERRY_ESNEXT */ - /** * Flag bits of vm_frame_ctx_t */ diff --git a/jerry-core/vm/vm-stack.c b/jerry-core/vm/vm-stack.c index 38a9e72da..c7eaf993d 100644 --- a/jerry-core/vm/vm-stack.c +++ b/jerry-core/vm/vm-stack.c @@ -43,7 +43,6 @@ JERRY_STATIC_ASSERT (PARSER_WITH_CONTEXT_STACK_ALLOCATION == PARSER_TRY_CONTEXT_ JERRY_STATIC_ASSERT (PARSER_FOR_OF_CONTEXT_STACK_ALLOCATION == PARSER_FOR_AWAIT_OF_CONTEXT_STACK_ALLOCATION, for_of_context_stack_allocation_must_be_equal_to_for_await_of_context_stack_allocation); -#if JERRY_ESNEXT /** * Abort (finalize) the current variable length stack context, and remove it. * @@ -76,7 +75,6 @@ vm_stack_context_abort_variable_length (vm_frame_ctx_t *frame_ctx_p, /**< frame return vm_stack_top_p; } /* vm_stack_context_abort_variable_length */ -#endif /* JERRY_ESNEXT */ /** * Abort (finalize) the current stack context, and remove it. @@ -113,16 +111,13 @@ vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ } case VM_CONTEXT_TRY: case VM_CONTEXT_CATCH: -#if JERRY_ESNEXT case VM_CONTEXT_BLOCK: -#endif /* JERRY_ESNEXT */ case VM_CONTEXT_WITH: { VM_MINUS_EQUAL_U16 (frame_ctx_p->context_depth, PARSER_WITH_CONTEXT_STACK_ALLOCATION); vm_stack_top_p -= PARSER_WITH_CONTEXT_STACK_ALLOCATION; break; } -#if JERRY_ESNEXT case VM_CONTEXT_ITERATOR: case VM_CONTEXT_OBJ_INIT: case VM_CONTEXT_OBJ_INIT_REST: @@ -141,7 +136,6 @@ vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ vm_stack_top_p -= PARSER_FOR_OF_CONTEXT_STACK_ALLOCATION; break; } -#endif /* JERRY_ESNEXT */ default: { JERRY_ASSERT (VM_GET_CONTEXT_TYPE (vm_stack_top_p[-1]) == VM_CONTEXT_FOR_IN); @@ -201,15 +195,11 @@ vm_decode_branch_offset (const uint8_t *branch_offset_p, /**< start offset of by return branch_offset; } /* vm_decode_branch_offset */ -#if JERRY_ESNEXT - /** * Byte code which resumes an executable object with throw */ static const uint8_t vm_stack_resume_executable_object_with_context_end[1] = { CBC_CONTEXT_END }; -#endif /* JERRY_ESNEXT */ - /** * Find a finally up to the end position. * @@ -252,7 +242,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ return VM_CONTEXT_FOUND_EXPECTED; } -#if JERRY_ESNEXT if (stack_top_p[-1] & VM_CONTEXT_HAS_LEX_ENV) { ecma_object_t *lex_env_p = frame_ctx_p->lex_env_p; @@ -260,7 +249,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ frame_ctx_p->lex_env_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, lex_env_p->u2.outer_reference_cp); ecma_deref_object (lex_env_p); } -#endif /* JERRY_ESNEXT */ byte_code_p = frame_ctx_p->byte_code_start_p + context_end; @@ -299,16 +287,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ { JERRY_ASSERT (context_type == VM_CONTEXT_CATCH); -#if !JERRY_ESNEXT - if (stack_top_p[-1] & VM_CONTEXT_HAS_LEX_ENV) - { - ecma_object_t *lex_env_p = frame_ctx_p->lex_env_p; - JERRY_ASSERT (lex_env_p->u2.outer_reference_cp != JMEM_CP_NULL); - frame_ctx_p->lex_env_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, lex_env_p->u2.outer_reference_cp); - ecma_deref_object (lex_env_p); - } -#endif /* !JERRY_ESNEXT */ - if (byte_code_p[0] == CBC_CONTEXT_END) { VM_MINUS_EQUAL_U16 (frame_ctx_p->context_depth, PARSER_TRY_CONTEXT_STACK_ALLOCATION); @@ -322,7 +300,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ VM_PLUS_EQUAL_U16 (frame_ctx_p->context_depth, PARSER_FINALLY_CONTEXT_EXTRA_STACK_ALLOCATION); stack_top_p += PARSER_FINALLY_CONTEXT_EXTRA_STACK_ALLOCATION; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (byte_code_p[1] == CBC_EXT_ASYNC_EXIT)) { branch_offset = (uint32_t) (byte_code_p - frame_ctx_p->byte_code_start_p); @@ -332,7 +309,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ frame_ctx_p->stack_top_p = stack_top_p; return VM_CONTEXT_FOUND_FINALLY; } -#endif /* JERRY_ESNEXT */ JERRY_ASSERT (byte_code_p[1] >= CBC_EXT_FINALLY && byte_code_p[1] <= CBC_EXT_FINALLY_3); @@ -348,7 +324,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ frame_ctx_p->stack_top_p = stack_top_p; return VM_CONTEXT_FOUND_FINALLY; } -#if JERRY_ESNEXT else if (stack_top_p[-1] & VM_CONTEXT_CLOSE_ITERATOR) { JERRY_ASSERT (context_type == VM_CONTEXT_FOR_OF || context_type == VM_CONTEXT_FOR_AWAIT_OF @@ -441,7 +416,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ jcontext_raise_exception (exception); } } -#endif /* JERRY_ESNEXT */ stack_top_p = vm_stack_context_abort (frame_ctx_p, stack_top_p); } @@ -450,8 +424,6 @@ vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ return VM_CONTEXT_FOUND_EXPECTED; } /* vm_stack_find_finally */ -#if JERRY_ESNEXT - /** * Get the offsets of ecma values corresponding to the passed context. * @@ -568,8 +540,6 @@ vm_ref_lex_env_chain (ecma_object_t *lex_env_p, /**< top of lexical environment } while (context_top_p > context_end_p); } /* vm_ref_lex_env_chain */ -#endif /* JERRY_ESNEXT */ - /** * @} * @} diff --git a/jerry-core/vm/vm-stack.h b/jerry-core/vm/vm-stack.h index 0797d16b8..37fd815a5 100644 --- a/jerry-core/vm/vm-stack.h +++ b/jerry-core/vm/vm-stack.h @@ -68,12 +68,9 @@ typedef enum VM_CONTEXT_FINALLY_RETURN, /**< finally context with a return */ VM_CONTEXT_TRY, /**< try context */ VM_CONTEXT_CATCH, /**< catch context */ -#if JERRY_ESNEXT VM_CONTEXT_BLOCK, /**< block context */ -#endif /* JERRY_ESNEXT */ VM_CONTEXT_WITH, /**< with context */ VM_CONTEXT_FOR_IN, /**< for-in context */ -#if JERRY_ESNEXT VM_CONTEXT_FOR_OF, /**< for-of context */ VM_CONTEXT_FOR_AWAIT_OF, /**< for-await-of context */ @@ -81,7 +78,6 @@ typedef enum VM_CONTEXT_ITERATOR, /**< iterator context */ VM_CONTEXT_OBJ_INIT, /**< object-initializer context */ VM_CONTEXT_OBJ_INIT_REST, /**< object-initializer-rest context */ -#endif /* JERRY_ESNEXT */ } vm_stack_context_type_t; /** @@ -90,10 +86,8 @@ typedef enum typedef enum { VM_CONTEXT_FOUND_FINALLY, /**< found finally */ -#if JERRY_ESNEXT VM_CONTEXT_FOUND_ERROR, /**< found an error */ VM_CONTEXT_FOUND_AWAIT, /**< found an await operation */ -#endif /* JERRY_ESNEXT */ VM_CONTEXT_FOUND_EXPECTED, /**< found the type specified in finally_type */ } vm_stack_found_type; @@ -105,11 +99,7 @@ typedef enum * - [JS values belong to the context] * - [previous JS values stored by the VM stack] */ -#if JERRY_ESNEXT #define VM_CONTEXT_IS_VARIABLE_LENGTH(context_type) ((context_type) >= VM_CONTEXT_ITERATOR) -#else /* !JERRY_ESNEXT */ -#define VM_CONTEXT_IS_VARIABLE_LENGTH(context_type) false -#endif /* JERRY_ESNEXT */ /** * Checks whether the context type is a finally type. @@ -131,11 +121,9 @@ typedef enum */ #define VM_CONTEXT_GET_NEXT_OFFSET(offsets) (-((int32_t) ((offsets) & ((1 << VM_CONTEXT_OFFSET_SHIFT) - 1)))) -#if JERRY_ESNEXT ecma_value_t *vm_stack_context_abort_variable_length (vm_frame_ctx_t *frame_ctx_p, ecma_value_t *vm_stack_top_p, uint32_t context_stack_allocation); -#endif /* JERRY_ESNEXT */ ecma_value_t *vm_stack_context_abort (vm_frame_ctx_t *frame_ctx_p, ecma_value_t *vm_stack_top_p); vm_stack_found_type vm_stack_find_finally (vm_frame_ctx_t *frame_ctx_p, ecma_value_t *stack_top_p, diff --git a/jerry-core/vm/vm.c b/jerry-core/vm/vm.c index df7ce69f2..46c3590d1 100644 --- a/jerry-core/vm/vm.c +++ b/jerry-core/vm/vm.c @@ -95,12 +95,10 @@ vm_op_get_value (ecma_value_t object, /**< base object */ property_name_p = ecma_get_string_from_value (property); } -#if JERRY_ESNEXT if (ecma_is_value_symbol (property)) { property_name_p = ecma_get_symbol_from_value (property); } -#endif /* JERRY_ESNEXT */ if (property_name_p != NULL) { @@ -264,12 +262,10 @@ vm_run_global (const ecma_compiled_code_t *bytecode_p, /**< pointer to bytecode ecma_object_t *global_obj_p = ecma_builtin_get_global (); #endif /* JERRY_BUILTIN_REALMS */ -#if JERRY_ESNEXT if (bytecode_p->status_flags & CBC_CODE_FLAGS_LEXICAL_BLOCK_NEEDED) { ecma_create_global_lexical_block (global_obj_p); } -#endif /* JERRY_ESNEXT */ ecma_object_t *const global_scope_p = ecma_get_global_scope (global_obj_p); @@ -465,7 +461,6 @@ vm_construct_literal_object (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ ecma_object_t *func_obj_p; -#if JERRY_ESNEXT if (JERRY_UNLIKELY (CBC_FUNCTION_IS_ARROW (bytecode_p->status_flags))) { func_obj_p = ecma_op_create_arrow_function_object (frame_ctx_p->lex_env_p, bytecode_p, frame_ctx_p->this_binding); @@ -474,9 +469,6 @@ vm_construct_literal_object (vm_frame_ctx_t *frame_ctx_p, /**< frame context */ { func_obj_p = ecma_op_create_any_function_object (frame_ctx_p->lex_env_p, bytecode_p); } -#else /* !JERRY_ESNEXT */ - func_obj_p = ecma_op_create_simple_function_object (frame_ctx_p->lex_env_p, bytecode_p); -#endif /* JERRY_ESNEXT */ return ecma_make_object_value (func_obj_p); } /* vm_construct_literal_object */ @@ -513,8 +505,11 @@ vm_get_implicit_this_value (ecma_value_t *this_value_p) /**< [in,out] this value */ static const uint8_t vm_error_byte_code_p[] = { CBC_EXT_OPCODE, CBC_EXT_ERROR }; -#if JERRY_ESNEXT - +/** + * Get class function object + * + * @return the pointer to the object + */ static ecma_object_t * vm_get_class_function (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ { @@ -731,7 +726,6 @@ vm_spread_operation (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ frame_ctx_p->byte_code_p += 3; } } /* vm_spread_operation */ -#endif /* JERRY_ESNEXT */ /** * 'Function call' opcode handler. @@ -1283,10 +1277,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } case VM_OC_CREATE_BINDING: { -#if !JERRY_ESNEXT - JERRY_ASSERT (opcode == CBC_CREATE_VAR); -#endif /* !JERRY_ESNEXT */ - uint32_t literal_index; READ_LITERAL_INDEX (literal_index); @@ -1298,7 +1288,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ uint8_t prop_attributes = ECMA_PROPERTY_FLAG_WRITABLE; -#if JERRY_ESNEXT if (opcode == CBC_CREATE_LET) { prop_attributes = ECMA_PROPERTY_ENUMERABLE_WRITABLE; @@ -1315,9 +1304,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ { property_value_p->value = ECMA_VALUE_UNINITIALIZED; } -#else /* !JERRY_ESNEXT */ - ecma_create_named_data_property (frame_ctx_p->lex_env_p, name_p, prop_attributes, NULL); -#endif /* JERRY_ESNEXT */ continue; } @@ -1343,27 +1329,27 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ while (lex_env_p->type_flags_refs & ECMA_OBJECT_FLAG_BLOCK) { -#if JERRY_ESNEXT && !(defined JERRY_NDEBUG) +#if !(defined JERRY_NDEBUG) if (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE) { ecma_property_t *property_p = ecma_find_named_property (lex_env_p, name_p); JERRY_ASSERT (property_p == NULL || !(*property_p & ECMA_PROPERTY_FLAG_ENUMERABLE)); } -#endif /* JERRY_ESNEXT && !JERRY_NDEBUG */ +#endif /* !JERRY_NDEBUG */ JERRY_ASSERT (lex_env_p->u2.outer_reference_cp != JMEM_CP_NULL); lex_env_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, lex_env_p->u2.outer_reference_cp); } -#if JERRY_ESNEXT && !(defined JERRY_NDEBUG) +#if !(defined JERRY_NDEBUG) if (ecma_get_lex_env_type (lex_env_p) == ECMA_LEXICAL_ENVIRONMENT_DECLARATIVE) { ecma_property_t *property_p = ecma_find_named_property (lex_env_p, name_p); JERRY_ASSERT (property_p == NULL || !(*property_p & ECMA_PROPERTY_FLAG_ENUMERABLE)); } -#endif /* JERRY_ESNEXT && !JERRY_NDEBUG */ +#endif /* !JERRY_NDEBUG */ /* 'Variable declaration' */ result = ecma_op_has_binding (lex_env_p, name_p); @@ -1413,7 +1399,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } continue; } -#if JERRY_ESNEXT case VM_OC_EXT_VAR_EVAL: { uint32_t literal_index; @@ -1485,7 +1470,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ ecma_deref_object (ecma_get_object_from_value (lit_value)); continue; } -#endif /* JERRY_ESNEXT */ case VM_OC_CREATE_ARGUMENTS: { uint32_t literal_index; @@ -1574,7 +1558,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } continue; } -#if JERRY_ESNEXT case VM_OC_CHECK_VAR: { JERRY_ASSERT (CBC_FUNCTION_GET_TYPE (frame_ctx_p->shared_p->bytecode_header_p->status_flags) @@ -1887,7 +1870,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ left_value ^= right_value; /* FALLTHRU */ } -#endif /* JERRY_ESNEXT */ case VM_OC_SET_PROPERTY: { JERRY_STATIC_ASSERT (VM_OC_NON_STATIC_FLAG == VM_OC_BACKWARD_BRANCH, @@ -1903,7 +1885,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ goto error; } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ecma_compare_ecma_string_to_magic_id (prop_name_p, LIT_MAGIC_STRING_PROTOTYPE)) && !(opcode_data & VM_OC_NON_STATIC_FLAG)) { @@ -1912,9 +1893,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } const int index = (int) (opcode_data >> VM_OC_NON_STATIC_SHIFT) - 2; -#else /* !JERRY_ESNEXT */ - const int index = -1; -#endif /* JERRY_ESNEXT */ ecma_object_t *object_p = ecma_get_object_from_value (stack_top_p[index]); @@ -1936,7 +1914,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ goto error; } -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ecma_compare_ecma_string_to_magic_id (prop_name_p, LIT_MAGIC_STRING_PROTOTYPE)) && !(opcode_data & VM_OC_NON_STATIC_FLAG)) { @@ -1945,10 +1922,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } const int index = (int) (opcode_data >> VM_OC_NON_STATIC_SHIFT) - 2; -#else /* !JERRY_ESNEXT */ - const int index = -1; -#endif /* JERRY_ESNEXT */ - opfunc_set_accessor (VM_OC_GROUP_GET_INDEX (opcode_data) == VM_OC_SET_GETTER, stack_top_p[index], prop_name_p, @@ -1964,7 +1937,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ *stack_top_p++ = ecma_make_object_value (ecma_op_new_array_object (0)); continue; } -#if JERRY_ESNEXT case VM_OC_LOCAL_EVAL: { ECMA_CLEAR_LOCAL_PARSE_OPTS (); @@ -2885,7 +2857,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } continue; } -#endif /* JERRY_ESNEXT */ case VM_OC_PUSH_ELISON: { *stack_top_p++ = ECMA_VALUE_ARRAY_HOLE; @@ -2896,22 +2867,17 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ uint16_t values_length = *byte_code_p++; stack_top_p -= values_length; -#if JERRY_ESNEXT if (*byte_code_start_p == CBC_EXT_OPCODE) { values_length = (uint16_t) (values_length | OPFUNC_HAS_SPREAD_ELEMENT); } -#endif /* JERRY_ESNEXT */ result = opfunc_append_array (stack_top_p, values_length); -#if JERRY_ESNEXT if (ECMA_IS_VALUE_ERROR (result)) { goto error; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (ecma_is_value_empty (result)); -#endif /* JERRY_ESNEXT */ + continue; } case VM_OC_IDENT_REFERENCE: @@ -3341,7 +3307,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ ecma_fast_free_value (value); continue; } -#if JERRY_ESNEXT case VM_OC_POP_REFERENCE: { ecma_free_value (stack_top_p[-2]); @@ -3362,7 +3327,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ --stack_top_p; continue; } -#endif /* JERRY_ESNEXT */ case VM_OC_PLUS: case VM_OC_MINUS: { @@ -3637,7 +3601,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ *stack_top_p++ = result; goto free_both_values; } -#if JERRY_ESNEXT case VM_OC_EXP: { result = do_number_arithmetic (NUMBER_ARITHMETIC_EXPONENTIATION, left_value, right_value); @@ -3650,7 +3613,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ *stack_top_p++ = result; goto free_both_values; } -#endif /* JERRY_ESNEXT */ case VM_OC_EQUAL: { result = opfunc_equality (left_value, right_value); @@ -4005,7 +3967,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } case VM_OC_BLOCK_CREATE_CONTEXT: { -#if JERRY_ESNEXT ecma_value_t *stack_context_top_p; stack_context_top_p = VM_GET_REGISTERS (frame_ctx_p) + register_end + frame_ctx_p->context_depth; @@ -4040,12 +4001,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ stack_context_top_p[-1] |= VM_CONTEXT_HAS_LEX_ENV; } -#else /* !JERRY_ESNEXT */ - JERRY_ASSERT (VM_GET_CONTEXT_TYPE (stack_top_p[-2]) == VM_CONTEXT_CATCH - && !(stack_top_p[-2] & VM_CONTEXT_HAS_LEX_ENV)); - - stack_top_p[-2] |= VM_CONTEXT_HAS_LEX_ENV; -#endif /* JERRY_ESNEXT */ frame_ctx_p->lex_env_p = ecma_create_decl_lex_env (frame_ctx_p->lex_env_p); frame_ctx_p->lex_env_p->type_flags_refs |= ECMA_OBJECT_FLAG_BLOCK; @@ -4096,13 +4051,11 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ if (prop_names_p == NULL) { -#if JERRY_ESNEXT if (JERRY_UNLIKELY (ECMA_IS_VALUE_ERROR (expr_obj_value))) { result = expr_obj_value; goto error; } -#endif /* JERRY_ESNEXT */ /* The collection is already released */ byte_code_p = byte_code_start_p + branch_offset; @@ -4118,13 +4071,12 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ stack_top_p[-3] = 0; stack_top_p[-4] = expr_obj_value; -#if JERRY_ESNEXT if (byte_code_p[0] == CBC_EXT_OPCODE && byte_code_p[1] == CBC_EXT_CLONE_CONTEXT) { /* No need to duplicate the first context. */ byte_code_p += 2; } -#endif /* JERRY_ESNEXT */ + continue; } case VM_OC_FOR_IN_GET_NEXT: @@ -4191,7 +4143,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ } continue; } -#if JERRY_ESNEXT case VM_OC_FOR_OF_INIT: { ecma_value_t value = *(--stack_top_p); @@ -4405,7 +4356,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ frame_ctx_p->stack_top_p = stack_top_p; return ECMA_VALUE_UNDEFINED; } -#endif /* JERRY_ESNEXT */ case VM_OC_TRY: { /* Try opcode simply creates the try context. */ @@ -4467,7 +4417,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ continue; } -#if JERRY_ESNEXT if (stack_top_p[-1] & VM_CONTEXT_HAS_LEX_ENV) { ecma_object_t *lex_env_p = frame_ctx_p->lex_env_p; @@ -4475,7 +4424,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ frame_ctx_p->lex_env_p = ECMA_GET_NON_NULL_POINTER (ecma_object_t, lex_env_p->u2.outer_reference_cp); ecma_deref_object (lex_env_p); } -#endif /* JERRY_ESNEXT */ VM_MINUS_EQUAL_U16 (frame_ctx_p->context_depth, PARSER_FINALLY_CONTEXT_STACK_ALLOCATION); stack_top_p -= PARSER_FINALLY_CONTEXT_STACK_ALLOCATION; @@ -4517,7 +4465,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ stack_top_p[-2] = jump_target; break; } -#if JERRY_ESNEXT case VM_CONTEXT_FOUND_ERROR: { JERRY_ASSERT (jcontext_has_pending_exception ()); @@ -4530,7 +4477,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ stack_top_p[-2] = jump_target; return ECMA_VALUE_UNDEFINED; } -#endif /* JERRY_ESNEXT */ default: { byte_code_p = frame_ctx_p->byte_code_start_p + jump_target; @@ -4561,7 +4507,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ stack_top_p[-2] = (uint32_t) branch_offset; break; } -#if JERRY_ESNEXT case VM_CONTEXT_FOUND_ERROR: { JERRY_ASSERT (jcontext_has_pending_exception ()); @@ -4574,7 +4519,6 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ stack_top_p[-2] = (uint32_t) branch_offset; return ECMA_VALUE_UNDEFINED; } -#endif /* JERRY_ESNEXT */ default: { byte_code_p = frame_ctx_p->byte_code_start_p + branch_offset; @@ -4839,13 +4783,12 @@ error: while (stack_top_p > stack_bottom_p) { ecma_value_t stack_item = *(--stack_top_p); -#if JERRY_ESNEXT if (stack_item == ECMA_VALUE_RELEASE_LEX_ENV) { opfunc_pop_lexical_environment (frame_ctx_p); continue; } -#endif /* JERRY_ESNEXT */ + ecma_fast_free_value (stack_item); } @@ -4918,7 +4861,6 @@ error: stack_top_p[-2] = result; continue; } -#if JERRY_ESNEXT case VM_CONTEXT_FOUND_ERROR: { JERRY_ASSERT (jcontext_has_pending_exception ()); @@ -4936,7 +4878,6 @@ error: stack_top_p[-2] = result; return ECMA_VALUE_UNDEFINED; } -#endif /* JERRY_ESNEXT */ default: { goto finish; @@ -4975,13 +4916,11 @@ error: *stack_top_p++ = result; continue; } -#if JERRY_ESNEXT case VM_CONTEXT_FOUND_AWAIT: { JERRY_ASSERT (VM_GET_CONTEXT_TYPE (frame_ctx_p->stack_top_p[-1]) == VM_CONTEXT_FINALLY_THROW); return ECMA_VALUE_UNDEFINED; } -#endif /* JERRY_ESNEXT */ default: { break; @@ -5278,7 +5217,6 @@ vm_execute (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ opfunc_call (frame_ctx_p); break; } -#if JERRY_ESNEXT case VM_EXEC_SUPER_CALL: { vm_super_call (frame_ctx_p); @@ -5293,7 +5231,6 @@ vm_execute (vm_frame_ctx_t *frame_ctx_p) /**< frame context */ { return completion_value; } -#endif /* JERRY_ESNEXT */ case VM_EXEC_CONSTRUCT: { opfunc_construct (frame_ctx_p); diff --git a/jerry-core/vm/vm.h b/jerry-core/vm/vm.h index 3cb1bdb93..080d85190 100644 --- a/jerry-core/vm/vm.h +++ b/jerry-core/vm/vm.h @@ -164,10 +164,8 @@ typedef enum VM_OC_ERROR, /**< error while the vm_loop is suspended */ VM_OC_JUMP, /**< jump */ -#if JERRY_ESNEXT VM_OC_BRANCH_IF_NULLISH, /** branch if undefined or null */ VM_OC_POP_REFERENCE, /** prop identifier or property reference from the stack */ -#endif /* JERRY_ESNEXT */ VM_OC_BRANCH_IF_STRICT_EQUAL, /**< branch if strict equal */ /* These four opcodes must be in this order. */ @@ -189,9 +187,7 @@ typedef enum VM_OC_MUL, /**< mul */ VM_OC_DIV, /**< div */ VM_OC_MOD, /**< mod */ -#if JERRY_ESNEXT VM_OC_EXP, /**< exponentiation */ -#endif /* JERRY_ESNEXT */ VM_OC_EQUAL, /**< equal */ VM_OC_NOT_EQUAL, /**< not equal */ @@ -227,17 +223,14 @@ typedef enum VM_OC_CREATE_ARGUMENTS, /**< create arguments object */ VM_OC_SET_BYTECODE_PTR, /**< setting bytecode pointer */ VM_OC_VAR_EVAL, /**< variable and function evaluation */ -#if JERRY_ESNEXT VM_OC_EXT_VAR_EVAL, /**< variable and function evaluation for * functions with separate argument context */ -#endif /* JERRY_ESNEXT */ VM_OC_INIT_ARG_OR_FUNC, /**< create and init a function or argument binding */ #if JERRY_DEBUGGER VM_OC_BREAKPOINT_ENABLED, /**< enabled breakpoint for debugger */ VM_OC_BREAKPOINT_DISABLED, /**< disabled breakpoint for debugger */ #endif /* JERRY_DEBUGGER */ -#if JERRY_ESNEXT VM_OC_CLASS_CALL_STATIC_BLOCK, /**< call the class static block */ VM_OC_DEFINE_FIELD, /**< define class field */ VM_OC_PRIVATE_PROP_REFERENCE, /**< reference to class private method */ @@ -310,7 +303,6 @@ typedef enum VM_OC_SET__PROTO__, /**< set prototype when __proto__: form is used */ VM_OC_PUSH_STATIC_FIELD_FUNC, /**< push static field initializer function */ VM_OC_ADD_COMPUTED_FIELD, /**< add computed field name */ -#endif /* JERRY_ESNEXT */ #if JERRY_MODULE_SYSTEM VM_OC_MODULE_IMPORT, /**< module dynamic import */ VM_OC_MODULE_IMPORT_META, /**< module import.meta */ @@ -324,91 +316,10 @@ typedef enum */ typedef enum { -#if !JERRY_ESNEXT - VM_OC_EXP = VM_OC_NONE, /**< exponentiation */ - VM_OC_BRANCH_IF_NULLISH = VM_OC_NONE, /** branch if undefined or null */ - VM_OC_POP_REFERENCE = VM_OC_NONE, /** prop identifier or property reference from the stack */ -#endif /* !JERRY_ESNEXT */ #if !JERRY_DEBUGGER VM_OC_BREAKPOINT_ENABLED = VM_OC_NONE, /**< enabled breakpoint for debugger is unused */ VM_OC_BREAKPOINT_DISABLED = VM_OC_NONE, /**< disabled breakpoint for debugger is unused */ #endif /* !JERRY_DEBUGGER */ -#if !JERRY_ESNEXT - VM_OC_CLASS_CALL_STATIC_BLOCK = VM_OC_NONE, /**< call the class static block */ - VM_OC_DEFINE_FIELD = VM_OC_NONE, /**< define class field */ - VM_OC_PRIVATE_PROP_REFERENCE = VM_OC_NONE, /* reference to class private method */ - VM_OC_ASSIGN_PRIVATE = VM_OC_NONE, /**< assign to private field */ - VM_OC_PRIVATE_FIELD_ADD = VM_OC_NONE, /**< add private field */ - VM_OC_PRIVATE_PROP_GET = VM_OC_NONE, /**< get private field */ - VM_OC_PRIVATE_IN = VM_OC_NONE, /**< 'in' opcode handler for private identifiers */ - VM_OC_COLLECT_PRIVATE_PROPERTY = VM_OC_NONE, /**< collect private properties */ - VM_OC_EXT_VAR_EVAL = VM_OC_NONE, /**< variable and function evaluation for - * functions with separate argument context */ - VM_OC_CHECK_VAR = VM_OC_NONE, /**< check redeclared vars in the global scope */ - VM_OC_CHECK_LET = VM_OC_NONE, /**< check redeclared lets in the global scope */ - VM_OC_ASSIGN_LET_CONST = VM_OC_NONE, /**< assign values to let/const declarations */ - VM_OC_INIT_BINDING = VM_OC_NONE, /**< create and intialize a binding */ - VM_OC_THROW_CONST_ERROR = VM_OC_NONE, /**< throw invalid assignment to const variable error */ - VM_OC_COPY_TO_GLOBAL = VM_OC_NONE, /**< copy value to global lex env */ - VM_OC_COPY_FROM_ARG = VM_OC_NONE, /**< copy value from arg lex env */ - VM_OC_CLONE_CONTEXT = VM_OC_NONE, /**< clone lexical environment with let/const declarations */ - VM_OC_COPY_DATA_PROPERTIES = VM_OC_NONE, /**< copy data properties of an object */ - VM_OC_SET_COMPUTED_PROPERTY = VM_OC_NONE, /**< set computed property is unused */ - - VM_OC_FOR_OF_INIT = VM_OC_NONE, /**< for-of init context */ - VM_OC_FOR_OF_GET_NEXT = VM_OC_NONE, /**< for-of get next */ - VM_OC_FOR_OF_HAS_NEXT = VM_OC_NONE, /**< for-of has next */ - VM_OC_FOR_AWAIT_OF_INIT = VM_OC_NONE, /**< for-await-of init context */ - VM_OC_FOR_AWAIT_OF_HAS_NEXT = VM_OC_NONE, /**< for-await-of has next */ - - VM_OC_LOCAL_EVAL = VM_OC_NONE, /**< eval in local context */ - VM_OC_SUPER_CALL = VM_OC_NONE, /**< call the 'super' constructor */ - VM_OC_PUSH_CLASS_ENVIRONMENT = VM_OC_NONE, /**< push class environment */ - VM_OC_PUSH_IMPLICIT_CTOR = VM_OC_NONE, /**< create implicit class constructor */ - VM_OC_INIT_CLASS = VM_OC_NONE, /**< initialize class */ - VM_OC_FINALIZE_CLASS = VM_OC_NONE, /**< finalize class */ - VM_OC_SET_FIELD_INIT = VM_OC_NONE, /**< store the class field initializer function */ - VM_OC_SET_STATIC_FIELD_INIT = VM_OC_NONE, /**< store the static class field initializer function */ - VM_OC_RUN_FIELD_INIT = VM_OC_NONE, /**< run the class field initializer function */ - VM_OC_RUN_STATIC_FIELD_INIT = VM_OC_NONE, /**< run the static class field initializer function */ - VM_OC_SET_NEXT_COMPUTED_FIELD = VM_OC_NONE, /**< set the next computed field of a class */ - VM_OC_PUSH_SUPER_CONSTRUCTOR = VM_OC_NONE, /**< getSuperConstructor operation */ - VM_OC_RESOLVE_LEXICAL_THIS = VM_OC_NONE, /**< resolve this_binding from from the lexical environment */ - VM_OC_SUPER_REFERENCE = VM_OC_NONE, /**< push super reference */ - VM_OC_SET_HOME_OBJECT = VM_OC_NONE, /**< set the [[HomeObject]] internal property in an object literal */ - VM_OC_OBJECT_LITERAL_HOME_ENV = VM_OC_NONE, /**< create/destroy [[HomeObject]] environment of an object literal */ - VM_OC_SET_FUNCTION_NAME = VM_OC_NONE, /**< set function name property */ - - VM_OC_PUSH_SPREAD_ELEMENT = VM_OC_NONE, /**< push spread element */ - VM_OC_PUSH_REST_OBJECT = VM_OC_NONE, /**< push rest object */ - VM_OC_ITERATOR_CONTEXT_CREATE = VM_OC_NONE, /**< create iterator context */ - VM_OC_ITERATOR_STEP = VM_OC_NONE, /**< IteratorStep abstract operation */ - VM_OC_ITERATOR_CONTEXT_END = VM_OC_NONE, /**< finalize iterator cotnext */ - VM_OC_OBJ_INIT_CONTEXT_CREATE = VM_OC_NONE, /**< create object initializer context */ - VM_OC_OBJ_INIT_CONTEXT_END = VM_OC_NONE, /**< finalize object initializer context */ - VM_OC_OBJ_INIT_PUSH_REST = VM_OC_NONE, /**< push the object with the rest properties */ - VM_OC_INITIALIZER_PUSH_NAME = VM_OC_NONE, /**< append string to name list array and push the string */ - VM_OC_DEFAULT_INITIALIZER = VM_OC_NONE, /**< default initializer inside a pattern */ - VM_OC_REST_INITIALIZER = VM_OC_NONE, /**< create rest object inside an array pattern */ - VM_OC_INITIALIZER_PUSH_PROP = VM_OC_NONE, /**< push property for object initializer */ - VM_OC_SPREAD_ARGUMENTS = VM_OC_NONE, /**< perform function call/construct with spreaded arguments */ - VM_OC_CREATE_GENERATOR = VM_OC_NONE, /**< create a generator object */ - VM_OC_YIELD = VM_OC_NONE, /**< yield operation */ - VM_OC_ASYNC_YIELD = VM_OC_NONE, /**< async yield operation */ - VM_OC_ASYNC_YIELD_ITERATOR = VM_OC_NONE, /**< async yield iterator operation */ - VM_OC_AWAIT = VM_OC_NONE, /**< await operation */ - VM_OC_GENERATOR_AWAIT = VM_OC_NONE, /**< generator await operation */ - VM_OC_EXT_RETURN = VM_OC_NONE, /**< return which also clears the stack */ - VM_OC_ASYNC_EXIT = VM_OC_NONE, /**< return from async function */ - VM_OC_STRING_CONCAT = VM_OC_NONE, /**< string concatenation */ - VM_OC_GET_TEMPLATE_OBJECT = VM_OC_NONE, /**< GetTemplateObject operation */ - VM_OC_PUSH_NEW_TARGET = VM_OC_NONE, /**< push new.target onto the stack */ - VM_OC_REQUIRE_OBJECT_COERCIBLE = VM_OC_NONE, /**< RequireObjectCoercible opretaion */ - VM_OC_ASSIGN_SUPER = VM_OC_NONE, /**< assign super reference */ - VM_OC_SET__PROTO__ = VM_OC_NONE, /**< set prototype when __proto__: form is used */ - VM_OC_PUSH_STATIC_FIELD_FUNC = VM_OC_NONE, /**< push static field initializer function */ - VM_OC_ADD_COMPUTED_FIELD = VM_OC_NONE, /**< add computed field name */ -#endif /* !JERRY_ESNEXT */ #if !JERRY_MODULE_SYSTEM VM_OC_MODULE_IMPORT = VM_OC_NONE, /**< module dynamic import */ VM_OC_MODULE_IMPORT_META = VM_OC_NONE, /**< module import.meta */ diff --git a/targets/baremetal-sdk/esp8266-rtos-sdk/Makefile.esp8266 b/targets/baremetal-sdk/esp8266-rtos-sdk/Makefile.esp8266 index b8eac346b..a56ee3edc 100644 --- a/targets/baremetal-sdk/esp8266-rtos-sdk/Makefile.esp8266 +++ b/targets/baremetal-sdk/esp8266-rtos-sdk/Makefile.esp8266 @@ -52,7 +52,6 @@ jerry: -DENABLE_AMALGAM=ON \ -DJERRY_MATH=ON \ -DJERRY_CMDLINE=OFF \ - -DJERRY_PROFILE="es.next" \ -DEXTERNAL_COMPILE_FLAGS="$(ESP_CFLAGS)" \ -DJERRY_GLOBAL_HEAP_SIZE=$(JERRYHEAP) diff --git a/tests/jerry/es.next/argument-spread.js b/tests/jerry/argument-spread.js similarity index 100% rename from tests/jerry/es.next/argument-spread.js rename to tests/jerry/argument-spread.js diff --git a/tests/jerry/es.next/arguments-iterator.js b/tests/jerry/arguments-iterator.js similarity index 100% rename from tests/jerry/es.next/arguments-iterator.js rename to tests/jerry/arguments-iterator.js diff --git a/tests/jerry/arguments.js b/tests/jerry/arguments.js index 3f49fddfe..75b581cbd 100644 --- a/tests/jerry/arguments.js +++ b/tests/jerry/arguments.js @@ -142,3 +142,245 @@ function nested_args() assert(a === 3); } nested_args(3); + + +function f1(a, b, c) +{ + 'use strict'; + assert(!Object.hasOwnProperty(arguments,'caller')); +} + +f1(1, 2, 3); + +// Normal arguments access + +function f2(a = arguments) +{ + assert(arguments[1] === 2) + var arguments = 1 + assert(arguments === 1) + assert(a[1] === 2) +} +f2(undefined, 2) + +function f3(a = arguments) +{ + assert(arguments() === "X") + function arguments() { return "X" } + assert(arguments() === "X") + assert(a[1] === "R") +} +f3(undefined, "R") + +function f4(a = arguments) +{ + const arguments = 3.25 + assert(arguments === 3.25) + assert(a[1] === -1.5) +} +f4(undefined, -1.5) + +// Normal arguments access with eval + +function f5(a = arguments) +{ + assert(arguments[1] === 2) + var arguments = 1 + assert(arguments === 1) + assert(a[1] === 2) + eval() +} +f5(undefined, 2) + +function f6(a = arguments) +{ + assert(arguments() === "X") + function arguments() { return "X" } + assert(arguments() === "X") + assert(a[1] === "R") + eval() +} +f6(undefined, "R") + +function f7(a = arguments) +{ + const arguments = 3.25 + assert(arguments === 3.25) + assert(a[1] === -1.5) + eval() +} +f7(undefined, -1.5) + +// Argument access through a function + +function f8(a = () => arguments) +{ + assert(arguments[1] === 2) + var arguments = 1 + assert(arguments === 1) + assert(a()[1] === 2) +} +f8(undefined, 2) + +function f9(a = () => arguments) +{ + assert(arguments() === "X") + function arguments() { return "X" } + assert(arguments() === "X") + assert(a()[1] === "R") +} +f9(undefined, "R") + +function f10(a = () => arguments) +{ + let arguments = 3.25 + assert(arguments === 3.25) + assert(a()[1] === -1.5) +} +f10(undefined, -1.5) + +// Argument access through an eval + +function f11(a = eval("() => arguments")) +{ + assert(arguments[1] === 2) + var arguments = 1 + assert(arguments === 1) + assert(a()[1] === 2) +} +f11(undefined, 2) + +function f12(a = eval("() => arguments")) +{ + assert(arguments() === "X") + function arguments() { return "X" } + assert(arguments() === "X") + assert(a()[1] === "R") +} +f12(undefined, "R") + +function f13(a = eval("() => arguments")) +{ + const arguments = 3.25 + assert(arguments === 3.25) + assert(a()[1] === -1.5) +} +f13(undefined, -1.5) + +// Other cases + +try { + function f14(a = arguments) + { + assert(a[1] === 6) + arguments; + let arguments = 1; + } + f14(undefined, 6) + assert(false) +} catch (e) { + assert(e instanceof ReferenceError) +} + +try { + eval("'use strict'; function f(a = arguments) { arguments = 5; eval() }"); + assert(false) +} catch (e) { + assert(e instanceof SyntaxError) +} + +function f15() +{ + assert(arguments[0] === "A") + var arguments = 1 + assert(arguments === 1) +} +f15("A") + +function f16() +{ + assert(arguments() === "W") + function arguments() { return "W" } + assert(arguments() === "W") +} +f16("A") + +function f17(a = arguments = "Val") +{ + assert(arguments === "Val") +} +f17(); + +function f18(s = (v) => arguments = v, g = () => arguments) +{ + const arguments = -3.25 + s("X") + + assert(g() === "X") + assert(arguments === -3.25) +} +f18() + +function f19(e = (v) => eval(v)) +{ + var arguments = -12.5 + e("arguments[0] = 4.5") + + assert(e("arguments[0]") === 4.5) + assert(e("arguments[1]") === "A") + assert(arguments === -12.5) +} +f19(undefined, "A"); + +function f20 (arguments, a = eval('arguments')) { + assert(a === 3.1); + assert(arguments === 3.1); +} +f20(3.1); + +function f21 (arguments, a = arguments) { + assert(a === 3.1); + assert(arguments === 3.1); +} +f21(3.1); + +function f22 (arguments, [a = arguments]) { + assert(a === 3.1); + assert(arguments === 3.1); +} +f22(3.1, []); + +try { + function f23(p = eval("var arguments"), arguments) + { + } + f23() + assert(false) +} catch (e) { + assert(e instanceof SyntaxError) +} + +try { + function f24(p = eval("var arguments")) { + let arguments; + } + f24() + assert(false) +} catch (e) { + assert(e instanceof SyntaxError) +} + +try { + function f25(p = eval("var arguments")) { + function arguments() { } + } + f25() + assert(false) +} catch (e) { + assert(e instanceof SyntaxError) +} + +function f26(arguments, eval = () => eval()) { + assert(arguments === undefined); +} +f26(undefined); diff --git a/tests/jerry/es.next/arithmetic-parse.js b/tests/jerry/arithmetic-parse.js similarity index 100% rename from tests/jerry/es.next/arithmetic-parse.js rename to tests/jerry/arithmetic-parse.js diff --git a/tests/jerry/es.next/arithmetics-2.js b/tests/jerry/arithmetics-2.js similarity index 100% rename from tests/jerry/es.next/arithmetics-2.js rename to tests/jerry/arithmetics-2.js diff --git a/tests/jerry/es.next/arithmetics-3.js b/tests/jerry/arithmetics-3.js similarity index 100% rename from tests/jerry/es.next/arithmetics-3.js rename to tests/jerry/arithmetics-3.js diff --git a/tests/jerry/es.next/array-from.js b/tests/jerry/array-from.js similarity index 100% rename from tests/jerry/es.next/array-from.js rename to tests/jerry/array-from.js diff --git a/tests/jerry/es.next/array-isarray.js b/tests/jerry/array-isarray.js similarity index 100% rename from tests/jerry/es.next/array-isarray.js rename to tests/jerry/array-isarray.js diff --git a/tests/jerry/es.next/array-new-target-support.js b/tests/jerry/array-new-target-support.js similarity index 100% rename from tests/jerry/es.next/array-new-target-support.js rename to tests/jerry/array-new-target-support.js diff --git a/tests/jerry/es.next/array-of.js b/tests/jerry/array-of.js similarity index 100% rename from tests/jerry/es.next/array-of.js rename to tests/jerry/array-of.js diff --git a/tests/jerry/es.next/array-pattern.js b/tests/jerry/array-pattern.js similarity index 100% rename from tests/jerry/es.next/array-pattern.js rename to tests/jerry/array-pattern.js diff --git a/tests/jerry/es.next/array-prototype-at.js b/tests/jerry/array-prototype-at.js similarity index 100% rename from tests/jerry/es.next/array-prototype-at.js rename to tests/jerry/array-prototype-at.js diff --git a/tests/jerry/es.next/array-prototype-copywithin.js b/tests/jerry/array-prototype-copywithin.js similarity index 100% rename from tests/jerry/es.next/array-prototype-copywithin.js rename to tests/jerry/array-prototype-copywithin.js diff --git a/tests/jerry/es.next/array-prototype-entries.js b/tests/jerry/array-prototype-entries.js similarity index 100% rename from tests/jerry/es.next/array-prototype-entries.js rename to tests/jerry/array-prototype-entries.js diff --git a/tests/jerry/es.next/array-prototype-fill.js b/tests/jerry/array-prototype-fill.js similarity index 100% rename from tests/jerry/es.next/array-prototype-fill.js rename to tests/jerry/array-prototype-fill.js diff --git a/tests/jerry/es.next/array-prototype-find-index.js b/tests/jerry/array-prototype-find-index.js similarity index 100% rename from tests/jerry/es.next/array-prototype-find-index.js rename to tests/jerry/array-prototype-find-index.js diff --git a/tests/jerry/es.next/array-prototype-find.js b/tests/jerry/array-prototype-find.js similarity index 100% rename from tests/jerry/es.next/array-prototype-find.js rename to tests/jerry/array-prototype-find.js diff --git a/tests/jerry/es.next/array-prototype-flat-flatMap.js b/tests/jerry/array-prototype-flat-flatMap.js similarity index 100% rename from tests/jerry/es.next/array-prototype-flat-flatMap.js rename to tests/jerry/array-prototype-flat-flatMap.js diff --git a/tests/jerry/es.next/array-prototype-includes.js b/tests/jerry/array-prototype-includes.js similarity index 100% rename from tests/jerry/es.next/array-prototype-includes.js rename to tests/jerry/array-prototype-includes.js diff --git a/tests/jerry/es.next/array-prototype-keys.js b/tests/jerry/array-prototype-keys.js similarity index 100% rename from tests/jerry/es.next/array-prototype-keys.js rename to tests/jerry/array-prototype-keys.js diff --git a/tests/jerry/array-prototype-slice.js b/tests/jerry/array-prototype-slice.js index ad2736f8e..0a14b142f 100644 --- a/tests/jerry/array-prototype-slice.js +++ b/tests/jerry/array-prototype-slice.js @@ -189,3 +189,45 @@ var value = array.slice(1, { }) array_check(value, []); + +// Constructor creates longer array than expected. +class LongArray extends Array { + constructor(len) { + super (42); + this.fill ("foo"); + } +} + +var a = new LongArray (5); +a.length = 5; +var sliced = a.slice (); +assert (sliced.length == 5); +assert (JSON.stringify (sliced) == '["foo","foo","foo","foo","foo"]') + +// Constructor creates shorter array than expected. +class ShortArray extends Array { + constructor(len) { + super (2); + this.fill ("bar"); + } +} + +var b = new ShortArray (8); +b.length = 8; +b.fill ("asd", 2); +var sliced2 = b.slice (); +assert (sliced2.length == 8); +assert (JSON.stringify (sliced2) == '["bar","bar","asd","asd","asd","asd","asd","asd"]'); + +// Constructor creates array of the expected size. +class ExactArray extends Array { + constructor(len) { + super (len); + this.fill ("baz"); + } +} + +var c = new ExactArray (5); +var sliced3 = c.slice(); +assert (sliced3.length == 5); +assert (JSON.stringify (sliced3) == '["baz","baz","baz","baz","baz"]'); diff --git a/tests/jerry/array-prototype-sort.js b/tests/jerry/array-prototype-sort.js index a036e18d1..bbbc9b734 100644 --- a/tests/jerry/array-prototype-sort.js +++ b/tests/jerry/array-prototype-sort.js @@ -184,3 +184,14 @@ try { } catch (e) { assert(e instanceof TypeError); } + +var proxy = new Proxy({length: 5}, { + getOwnPropertyDescriptor() { throw 42.5; } +}) + +try { + Array.prototype.sort.call(proxy); + assert(false); +} catch (e) { + assert(e === 42.5); +} diff --git a/tests/jerry/array-prototype-unshift.js b/tests/jerry/array-prototype-unshift.js index 1ba97b7d7..5bbae5464 100644 --- a/tests/jerry/array-prototype-unshift.js +++ b/tests/jerry/array-prototype-unshift.js @@ -123,3 +123,7 @@ try { } catch (e) { assert(e instanceof TypeError); } + +var arrayLike = {get 5() { throw "shouldn't throw"; }}; +arrayLike.length = 10; +Array.prototype.unshift.call(arrayLike); diff --git a/tests/jerry/es.next/array-prototype-values.js b/tests/jerry/array-prototype-values.js similarity index 100% rename from tests/jerry/es.next/array-prototype-values.js rename to tests/jerry/array-prototype-values.js diff --git a/tests/jerry/es.next/array-species.js b/tests/jerry/array-species.js similarity index 100% rename from tests/jerry/es.next/array-species.js rename to tests/jerry/array-species.js diff --git a/tests/jerry/es.next/array-spread.js b/tests/jerry/array-spread.js similarity index 100% rename from tests/jerry/es.next/array-spread.js rename to tests/jerry/array-spread.js diff --git a/tests/jerry/es.next/arraybuffer-isview.js b/tests/jerry/arraybuffer-isview.js similarity index 100% rename from tests/jerry/es.next/arraybuffer-isview.js rename to tests/jerry/arraybuffer-isview.js diff --git a/tests/jerry/es.next/arrow-assignment.js b/tests/jerry/arrow-assignment.js similarity index 100% rename from tests/jerry/es.next/arrow-assignment.js rename to tests/jerry/arrow-assignment.js diff --git a/tests/jerry/es.next/arrow-eval.js b/tests/jerry/arrow-eval.js similarity index 100% rename from tests/jerry/es.next/arrow-eval.js rename to tests/jerry/arrow-eval.js diff --git a/tests/jerry/es.next/arrow-function.js b/tests/jerry/arrow-function.js similarity index 100% rename from tests/jerry/es.next/arrow-function.js rename to tests/jerry/arrow-function.js diff --git a/tests/jerry/es.next/arrow-this.js b/tests/jerry/arrow-this.js similarity index 100% rename from tests/jerry/es.next/arrow-this.js rename to tests/jerry/arrow-this.js diff --git a/tests/jerry/es.next/async-from-sync-iterator.js b/tests/jerry/async-from-sync-iterator.js similarity index 100% rename from tests/jerry/es.next/async-from-sync-iterator.js rename to tests/jerry/async-from-sync-iterator.js diff --git a/tests/jerry/es.next/atomics.js b/tests/jerry/atomics.js similarity index 100% rename from tests/jerry/es.next/atomics.js rename to tests/jerry/atomics.js diff --git a/tests/jerry/es.next/bigint-typedarray-prototype-filter.js b/tests/jerry/bigint-typedarray-prototype-filter.js similarity index 100% rename from tests/jerry/es.next/bigint-typedarray-prototype-filter.js rename to tests/jerry/bigint-typedarray-prototype-filter.js diff --git a/tests/jerry/es.next/bigint-typedarray-prototype-reduce.js b/tests/jerry/bigint-typedarray-prototype-reduce.js similarity index 100% rename from tests/jerry/es.next/bigint-typedarray-prototype-reduce.js rename to tests/jerry/bigint-typedarray-prototype-reduce.js diff --git a/tests/jerry/es.next/bigint1.js b/tests/jerry/bigint1.js similarity index 100% rename from tests/jerry/es.next/bigint1.js rename to tests/jerry/bigint1.js diff --git a/tests/jerry/es.next/bigint2.js b/tests/jerry/bigint2.js similarity index 100% rename from tests/jerry/es.next/bigint2.js rename to tests/jerry/bigint2.js diff --git a/tests/jerry/es.next/bigint3.js b/tests/jerry/bigint3.js similarity index 100% rename from tests/jerry/es.next/bigint3.js rename to tests/jerry/bigint3.js diff --git a/tests/jerry/es.next/bigint4.js b/tests/jerry/bigint4.js similarity index 100% rename from tests/jerry/es.next/bigint4.js rename to tests/jerry/bigint4.js diff --git a/tests/jerry/es.next/bigint5.js b/tests/jerry/bigint5.js similarity index 100% rename from tests/jerry/es.next/bigint5.js rename to tests/jerry/bigint5.js diff --git a/tests/jerry/es.next/bigint6.js b/tests/jerry/bigint6.js similarity index 100% rename from tests/jerry/es.next/bigint6.js rename to tests/jerry/bigint6.js diff --git a/tests/jerry/es.next/bigint7.js b/tests/jerry/bigint7.js similarity index 100% rename from tests/jerry/es.next/bigint7.js rename to tests/jerry/bigint7.js diff --git a/tests/jerry/es.next/bigint8.js b/tests/jerry/bigint8.js similarity index 100% rename from tests/jerry/es.next/bigint8.js rename to tests/jerry/bigint8.js diff --git a/tests/jerry/es.next/bigint9.js b/tests/jerry/bigint9.js similarity index 100% rename from tests/jerry/es.next/bigint9.js rename to tests/jerry/bigint9.js diff --git a/tests/jerry/es.next/binary-literal.js b/tests/jerry/binary-literal.js similarity index 100% rename from tests/jerry/es.next/binary-literal.js rename to tests/jerry/binary-literal.js diff --git a/tests/jerry/es.next/block-var-redecl.js b/tests/jerry/block-var-redecl.js similarity index 100% rename from tests/jerry/es.next/block-var-redecl.js rename to tests/jerry/block-var-redecl.js diff --git a/tests/jerry/es.next/builtin-objects-accessor-property-configurable.js b/tests/jerry/builtin-objects-accessor-property-configurable.js similarity index 100% rename from tests/jerry/es.next/builtin-objects-accessor-property-configurable.js rename to tests/jerry/builtin-objects-accessor-property-configurable.js diff --git a/tests/jerry/builtin-prototypes.js b/tests/jerry/builtin-prototypes.js index b73b701e4..7cbe8b0ff 100644 --- a/tests/jerry/builtin-prototypes.js +++ b/tests/jerry/builtin-prototypes.js @@ -21,3 +21,49 @@ assert (Boolean.prototype.valueOf() === false); assert (Object.prototype.toString.call (Number.prototype) === '[object Number]'); assert (Number.prototype.valueOf() === 0); + +var prototypes = [ + Date.prototype, + RegExp.prototype, + Error.prototype, + EvalError.prototype, + RangeError.prototype, + ReferenceError.prototype, + SyntaxError.prototype, + TypeError.prototype, + URIError.prototype + ] + +for (proto of prototypes) { + assert (Object.prototype.toString.call (proto) === '[object Object]'); +} + +try { + Date.prototype.valueOf(); + assert (false); +} catch (e) { + assert (e instanceof TypeError); +} + +try { + RegExp.prototype.exec(""); + assert (false); +} catch (e) { + assert (e instanceof TypeError); +} + +try { + RegExp.prototype.compile("a", "u"); + assert (false); +} catch (e) { + assert (e instanceof TypeError); +} + +assert (RegExp.prototype.source === '(?:)'); +assert (RegExp.prototype.global === undefined); +assert (RegExp.prototype.ignoreCase === undefined); +assert (RegExp.prototype.multiline === undefined); +assert (RegExp.prototype.sticky === undefined); +assert (RegExp.prototype.unicode === undefined); +assert (RegExp.prototype.dotAll === undefined); +assert (RegExp.prototype.flags === ''); diff --git a/tests/jerry/es.next/class-fields1.js b/tests/jerry/class-fields1.js similarity index 100% rename from tests/jerry/es.next/class-fields1.js rename to tests/jerry/class-fields1.js diff --git a/tests/jerry/es.next/class-fields2.js b/tests/jerry/class-fields2.js similarity index 100% rename from tests/jerry/es.next/class-fields2.js rename to tests/jerry/class-fields2.js diff --git a/tests/jerry/es.next/class-fields3.js b/tests/jerry/class-fields3.js similarity index 100% rename from tests/jerry/es.next/class-fields3.js rename to tests/jerry/class-fields3.js diff --git a/tests/jerry/es.next/class-fields4.js b/tests/jerry/class-fields4.js similarity index 100% rename from tests/jerry/es.next/class-fields4.js rename to tests/jerry/class-fields4.js diff --git a/tests/jerry/es.next/class-fields5.js b/tests/jerry/class-fields5.js similarity index 100% rename from tests/jerry/es.next/class-fields5.js rename to tests/jerry/class-fields5.js diff --git a/tests/jerry/es.next/class-get-set-as-method.js b/tests/jerry/class-get-set-as-method.js similarity index 100% rename from tests/jerry/es.next/class-get-set-as-method.js rename to tests/jerry/class-get-set-as-method.js diff --git a/tests/jerry/es.next/class-inheritance-bound.js b/tests/jerry/class-inheritance-bound.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-bound.js rename to tests/jerry/class-inheritance-bound.js diff --git a/tests/jerry/es.next/class-inheritance-builtin-array.js b/tests/jerry/class-inheritance-builtin-array.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-builtin-array.js rename to tests/jerry/class-inheritance-builtin-array.js diff --git a/tests/jerry/es.next/class-inheritance-builtin-typedarray.js b/tests/jerry/class-inheritance-builtin-typedarray.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-builtin-typedarray.js rename to tests/jerry/class-inheritance-builtin-typedarray.js diff --git a/tests/jerry/es.next/class-inheritance-core-1.js b/tests/jerry/class-inheritance-core-1.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-1.js rename to tests/jerry/class-inheritance-core-1.js diff --git a/tests/jerry/es.next/class-inheritance-core-10.js b/tests/jerry/class-inheritance-core-10.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-10.js rename to tests/jerry/class-inheritance-core-10.js diff --git a/tests/jerry/es.next/class-inheritance-core-11.js b/tests/jerry/class-inheritance-core-11.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-11.js rename to tests/jerry/class-inheritance-core-11.js diff --git a/tests/jerry/es.next/class-inheritance-core-12.js b/tests/jerry/class-inheritance-core-12.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-12.js rename to tests/jerry/class-inheritance-core-12.js diff --git a/tests/jerry/es.next/class-inheritance-core-13.js b/tests/jerry/class-inheritance-core-13.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-13.js rename to tests/jerry/class-inheritance-core-13.js diff --git a/tests/jerry/es.next/class-inheritance-core-14.js b/tests/jerry/class-inheritance-core-14.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-14.js rename to tests/jerry/class-inheritance-core-14.js diff --git a/tests/jerry/es.next/class-inheritance-core-15.js b/tests/jerry/class-inheritance-core-15.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-15.js rename to tests/jerry/class-inheritance-core-15.js diff --git a/tests/jerry/es.next/class-inheritance-core-2.js b/tests/jerry/class-inheritance-core-2.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-2.js rename to tests/jerry/class-inheritance-core-2.js diff --git a/tests/jerry/es.next/class-inheritance-core-3.js b/tests/jerry/class-inheritance-core-3.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-3.js rename to tests/jerry/class-inheritance-core-3.js diff --git a/tests/jerry/es.next/class-inheritance-core-4.js b/tests/jerry/class-inheritance-core-4.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-4.js rename to tests/jerry/class-inheritance-core-4.js diff --git a/tests/jerry/es.next/class-inheritance-core-5.js b/tests/jerry/class-inheritance-core-5.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-5.js rename to tests/jerry/class-inheritance-core-5.js diff --git a/tests/jerry/es.next/class-inheritance-core-6.js b/tests/jerry/class-inheritance-core-6.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-6.js rename to tests/jerry/class-inheritance-core-6.js diff --git a/tests/jerry/es.next/class-inheritance-core-7.js b/tests/jerry/class-inheritance-core-7.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-7.js rename to tests/jerry/class-inheritance-core-7.js diff --git a/tests/jerry/es.next/class-inheritance-core-8.js b/tests/jerry/class-inheritance-core-8.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-8.js rename to tests/jerry/class-inheritance-core-8.js diff --git a/tests/jerry/es.next/class-inheritance-core-9.js b/tests/jerry/class-inheritance-core-9.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-core-9.js rename to tests/jerry/class-inheritance-core-9.js diff --git a/tests/jerry/es.next/class-inheritance-early-semantics.js b/tests/jerry/class-inheritance-early-semantics.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-early-semantics.js rename to tests/jerry/class-inheritance-early-semantics.js diff --git a/tests/jerry/es.next/class-inheritance-has-instance.js b/tests/jerry/class-inheritance-has-instance.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-has-instance.js rename to tests/jerry/class-inheritance-has-instance.js diff --git a/tests/jerry/es.next/class-inheritance-inner-class.js b/tests/jerry/class-inheritance-inner-class.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-inner-class.js rename to tests/jerry/class-inheritance-inner-class.js diff --git a/tests/jerry/es.next/class-inheritance-mixins-1.js b/tests/jerry/class-inheritance-mixins-1.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-mixins-1.js rename to tests/jerry/class-inheritance-mixins-1.js diff --git a/tests/jerry/es.next/class-inheritance-mixins-2.js b/tests/jerry/class-inheritance-mixins-2.js similarity index 100% rename from tests/jerry/es.next/class-inheritance-mixins-2.js rename to tests/jerry/class-inheritance-mixins-2.js diff --git a/tests/jerry/es.next/class-super-access-direct.js b/tests/jerry/class-super-access-direct.js similarity index 100% rename from tests/jerry/es.next/class-super-access-direct.js rename to tests/jerry/class-super-access-direct.js diff --git a/tests/jerry/es.next/class-super-access-indirect.js b/tests/jerry/class-super-access-indirect.js similarity index 100% rename from tests/jerry/es.next/class-super-access-indirect.js rename to tests/jerry/class-super-access-indirect.js diff --git a/tests/jerry/es.next/class-with.js b/tests/jerry/class-with.js similarity index 100% rename from tests/jerry/es.next/class-with.js rename to tests/jerry/class-with.js diff --git a/tests/jerry/es.next/class.js b/tests/jerry/class.js similarity index 100% rename from tests/jerry/es.next/class.js rename to tests/jerry/class.js diff --git a/tests/jerry/es.next/class_static_block.js b/tests/jerry/class_static_block.js similarity index 100% rename from tests/jerry/es.next/class_static_block.js rename to tests/jerry/class_static_block.js diff --git a/tests/jerry/es.next/const1.js b/tests/jerry/const1.js similarity index 100% rename from tests/jerry/es.next/const1.js rename to tests/jerry/const1.js diff --git a/tests/jerry/es.next/continue.js b/tests/jerry/continue.js similarity index 100% rename from tests/jerry/es.next/continue.js rename to tests/jerry/continue.js diff --git a/tests/jerry/es.next/dataview.js b/tests/jerry/dataview.js similarity index 100% rename from tests/jerry/es.next/dataview.js rename to tests/jerry/dataview.js diff --git a/tests/jerry/date-construct.js b/tests/jerry/date-construct.js index 164dab23a..fa710d282 100644 --- a/tests/jerry/date-construct.js +++ b/tests/jerry/date-construct.js @@ -75,3 +75,55 @@ catch (e) assert (typeof Date (2015) == "string"); assert (typeof Date() != typeof (new Date ())); + +var sym = Symbol(); +var date; + +try { + date = new Date(sym, 11, 17, 3, 24, 0); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + date = new Date(1997, sym, 17, 3, 24, 0); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + date = new Date(1997, 11, sym, 3, 24, 0); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + date = new Date(1997, 11, 17, sym, 24, 0); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + date = new Date(1997, 11, 17, 3, sym, 0); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + date = new Date(1997, 11, 17, 3, 24, sym); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + date = new Date(1997, 11, 17, 3, 24, 0, sym); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} diff --git a/tests/jerry/es.next/date-prototype-toprimitive.js b/tests/jerry/date-prototype-toprimitive.js similarity index 100% rename from tests/jerry/es.next/date-prototype-toprimitive.js rename to tests/jerry/date-prototype-toprimitive.js diff --git a/tests/jerry/es.next/decimal-with-leading-zero.js b/tests/jerry/decimal-with-leading-zero.js similarity index 100% rename from tests/jerry/es.next/decimal-with-leading-zero.js rename to tests/jerry/decimal-with-leading-zero.js diff --git a/tests/jerry/es.next/directive.js b/tests/jerry/directive.js similarity index 100% rename from tests/jerry/es.next/directive.js rename to tests/jerry/directive.js diff --git a/tests/jerry/es.next/error-names.js b/tests/jerry/error-names.js similarity index 100% rename from tests/jerry/es.next/error-names.js rename to tests/jerry/error-names.js diff --git a/tests/jerry/error.js b/tests/jerry/error.js index 783d2a7e0..a51ce9469 100644 --- a/tests/jerry/error.js +++ b/tests/jerry/error.js @@ -198,3 +198,12 @@ assert (URIError.prototype.constructor === URIError); assert (URIError.prototype.name === "URIError"); assert (URIError.prototype.message === ""); assert (URIError.prototype.toString() === "URIError"); + +/* Prototype of NativeErrors should be Error */ +assert(Object.getPrototypeOf(EvalError) === Error); +assert(Object.getPrototypeOf(RangeError) === Error); +assert(Object.getPrototypeOf(ReferenceError) === Error); +assert(Object.getPrototypeOf(SyntaxError) === Error); +assert(Object.getPrototypeOf(TypeError) === Error); +assert(Object.getPrototypeOf(URIError) === Error); +assert(Object.getPrototypeOf(AggregateError) === Error); diff --git a/tests/jerry/es.next/arguments.js b/tests/jerry/es.next/arguments.js deleted file mode 100644 index 5031f4621..000000000 --- a/tests/jerry/es.next/arguments.js +++ /dev/null @@ -1,254 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function f1(a, b, c) -{ - 'use strict'; - assert(!Object.hasOwnProperty(arguments,'caller')); -} - -f1(1, 2, 3); - -// Normal arguments access - -function f2(a = arguments) -{ - assert(arguments[1] === 2) - var arguments = 1 - assert(arguments === 1) - assert(a[1] === 2) -} -f2(undefined, 2) - -function f3(a = arguments) -{ - assert(arguments() === "X") - function arguments() { return "X" } - assert(arguments() === "X") - assert(a[1] === "R") -} -f3(undefined, "R") - -function f4(a = arguments) -{ - const arguments = 3.25 - assert(arguments === 3.25) - assert(a[1] === -1.5) -} -f4(undefined, -1.5) - -// Normal arguments access with eval - -function f5(a = arguments) -{ - assert(arguments[1] === 2) - var arguments = 1 - assert(arguments === 1) - assert(a[1] === 2) - eval() -} -f5(undefined, 2) - -function f6(a = arguments) -{ - assert(arguments() === "X") - function arguments() { return "X" } - assert(arguments() === "X") - assert(a[1] === "R") - eval() -} -f6(undefined, "R") - -function f7(a = arguments) -{ - const arguments = 3.25 - assert(arguments === 3.25) - assert(a[1] === -1.5) - eval() -} -f7(undefined, -1.5) - -// Argument access through a function - -function f8(a = () => arguments) -{ - assert(arguments[1] === 2) - var arguments = 1 - assert(arguments === 1) - assert(a()[1] === 2) -} -f8(undefined, 2) - -function f9(a = () => arguments) -{ - assert(arguments() === "X") - function arguments() { return "X" } - assert(arguments() === "X") - assert(a()[1] === "R") -} -f9(undefined, "R") - -function f10(a = () => arguments) -{ - let arguments = 3.25 - assert(arguments === 3.25) - assert(a()[1] === -1.5) -} -f10(undefined, -1.5) - -// Argument access through an eval - -function f11(a = eval("() => arguments")) -{ - assert(arguments[1] === 2) - var arguments = 1 - assert(arguments === 1) - assert(a()[1] === 2) -} -f11(undefined, 2) - -function f12(a = eval("() => arguments")) -{ - assert(arguments() === "X") - function arguments() { return "X" } - assert(arguments() === "X") - assert(a()[1] === "R") -} -f12(undefined, "R") - -function f13(a = eval("() => arguments")) -{ - const arguments = 3.25 - assert(arguments === 3.25) - assert(a()[1] === -1.5) -} -f13(undefined, -1.5) - -// Other cases - -try { - function f14(a = arguments) - { - assert(a[1] === 6) - arguments; - let arguments = 1; - } - f14(undefined, 6) - assert(false) -} catch (e) { - assert(e instanceof ReferenceError) -} - -try { - eval("'use strict'; function f(a = arguments) { arguments = 5; eval() }"); - assert(false) -} catch (e) { - assert(e instanceof SyntaxError) -} - -function f15() -{ - assert(arguments[0] === "A") - var arguments = 1 - assert(arguments === 1) -} -f15("A") - -function f16() -{ - assert(arguments() === "W") - function arguments() { return "W" } - assert(arguments() === "W") -} -f16("A") - -function f17(a = arguments = "Val") -{ - assert(arguments === "Val") -} -f17(); - -function f18(s = (v) => arguments = v, g = () => arguments) -{ - const arguments = -3.25 - s("X") - - assert(g() === "X") - assert(arguments === -3.25) -} -f18() - -function f19(e = (v) => eval(v)) -{ - var arguments = -12.5 - e("arguments[0] = 4.5") - - assert(e("arguments[0]") === 4.5) - assert(e("arguments[1]") === "A") - assert(arguments === -12.5) -} -f19(undefined, "A"); - -function f20 (arguments, a = eval('arguments')) { - assert(a === 3.1); - assert(arguments === 3.1); -} -f20(3.1); - -function f21 (arguments, a = arguments) { - assert(a === 3.1); - assert(arguments === 3.1); -} -f21(3.1); - -function f22 (arguments, [a = arguments]) { - assert(a === 3.1); - assert(arguments === 3.1); -} -f22(3.1, []); - -try { - function f23(p = eval("var arguments"), arguments) - { - } - f23() - assert(false) -} catch (e) { - assert(e instanceof SyntaxError) -} - -try { - function f24(p = eval("var arguments")) { - let arguments; - } - f24() - assert(false) -} catch (e) { - assert(e instanceof SyntaxError) -} - -try { - function f25(p = eval("var arguments")) { - function arguments() { } - } - f25() - assert(false) -} catch (e) { - assert(e instanceof SyntaxError) -} - -function f26(arguments, eval = () => eval()) { - assert(arguments === undefined); -} -f26(undefined); diff --git a/tests/jerry/es.next/array-prototype-slice.js b/tests/jerry/es.next/array-prototype-slice.js deleted file mode 100644 index 46308748d..000000000 --- a/tests/jerry/es.next/array-prototype-slice.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Constructor creates longer array than expected. -class LongArray extends Array { - constructor(len) { - super (42); - this.fill ("foo"); - } -} - -var a = new LongArray (5); -a.length = 5; -var sliced = a.slice (); -assert (sliced.length == 5); -assert (JSON.stringify (sliced) == '["foo","foo","foo","foo","foo"]') - -// Constructor creates shorter array than expected. -class ShortArray extends Array { - constructor(len) { - super (2); - this.fill ("bar"); - } -} - -var b = new ShortArray (8); -b.length = 8; -b.fill ("asd", 2); -var sliced2 = b.slice (); -assert (sliced2.length == 8); -assert (JSON.stringify (sliced2) == '["bar","bar","asd","asd","asd","asd","asd","asd"]'); - -// Constructor creates array of the expected size. -class ExactArray extends Array { - constructor(len) { - super (len); - this.fill ("baz"); - } -} - -var c = new ExactArray (5); -var sliced3 = c.slice(); -assert (sliced3.length == 5); -assert (JSON.stringify (sliced3) == '["baz","baz","baz","baz","baz"]'); diff --git a/tests/jerry/es.next/array-prototype-sort.js b/tests/jerry/es.next/array-prototype-sort.js deleted file mode 100644 index 1f00d7cae..000000000 --- a/tests/jerry/es.next/array-prototype-sort.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var proxy = new Proxy({length: 5}, { - getOwnPropertyDescriptor() { throw 42.5; } -}) - -try { - Array.prototype.sort.call(proxy); - assert(false); -} catch (e) { - assert(e === 42.5); -} diff --git a/tests/jerry/es.next/array-prototype-unshift.js b/tests/jerry/es.next/array-prototype-unshift.js deleted file mode 100644 index bf92602c0..000000000 --- a/tests/jerry/es.next/array-prototype-unshift.js +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var arrayLike = {get 5() { throw "shouldn't throw"; }}; -arrayLike.length = 10; -Array.prototype.unshift.call(arrayLike); diff --git a/tests/jerry/es.next/builtin-prototypes.js b/tests/jerry/es.next/builtin-prototypes.js deleted file mode 100644 index 058fb927a..000000000 --- a/tests/jerry/es.next/builtin-prototypes.js +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright JS Foundation and other contributors, http://js.foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var prototypes = [ - Date.prototype, - RegExp.prototype, - Error.prototype, - EvalError.prototype, - RangeError.prototype, - ReferenceError.prototype, - SyntaxError.prototype, - TypeError.prototype, - URIError.prototype -] - -for (proto of prototypes) { - assert (Object.prototype.toString.call (proto) === '[object Object]'); -} - -try { - Date.prototype.valueOf(); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - RegExp.prototype.exec(""); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - RegExp.prototype.compile("a", "u"); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -assert (RegExp.prototype.source === '(?:)'); -assert (RegExp.prototype.global === undefined); -assert (RegExp.prototype.ignoreCase === undefined); -assert (RegExp.prototype.multiline === undefined); -assert (RegExp.prototype.sticky === undefined); -assert (RegExp.prototype.unicode === undefined); -assert (RegExp.prototype.dotAll === undefined); -assert (RegExp.prototype.flags === ''); diff --git a/tests/jerry/es.next/date-construct.js b/tests/jerry/es.next/date-construct.js deleted file mode 100644 index 57c28a52c..000000000 --- a/tests/jerry/es.next/date-construct.js +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var sym = Symbol(); -var date; - -try { - date = new Date(sym, 11, 17, 3, 24, 0); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - date = new Date(1997, sym, 17, 3, 24, 0); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - date = new Date(1997, 11, sym, 3, 24, 0); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - date = new Date(1997, 11, 17, sym, 24, 0); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - date = new Date(1997, 11, 17, 3, sym, 0); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - date = new Date(1997, 11, 17, 3, 24, sym); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - date = new Date(1997, 11, 17, 3, 24, 0, sym); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} diff --git a/tests/jerry/es.next/error.js b/tests/jerry/es.next/error.js deleted file mode 100644 index 9e44abff4..000000000 --- a/tests/jerry/es.next/error.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* Prototype of NativeErrors should be Error */ -assert(Object.getPrototypeOf(EvalError) === Error); -assert(Object.getPrototypeOf(RangeError) === Error); -assert(Object.getPrototypeOf(ReferenceError) === Error); -assert(Object.getPrototypeOf(SyntaxError) === Error); -assert(Object.getPrototypeOf(TypeError) === Error); -assert(Object.getPrototypeOf(URIError) === Error); -assert(Object.getPrototypeOf(AggregateError) === Error); diff --git a/tests/jerry/es.next/function-prototype-bind.js b/tests/jerry/es.next/function-prototype-bind.js deleted file mode 100644 index 8d0f1e18c..000000000 --- a/tests/jerry/es.next/function-prototype-bind.js +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* extended class */ -(function() { - class C extends Function {} - var c = new C("x", "y", "return this.foo + x + y;").bind({foo : 1}, 2); - assert(c(3) === 6); - assert(c instanceof C); -})(); - -function boundPrototypeChecker(f, proto) { - Object.setPrototypeOf(f, proto); - - var boundFunc = Function.prototype.bind.call(f, null); - assert(Object.getPrototypeOf(boundFunc) === proto); -} - -/* generator function */ -(function() { - var f = function*(){}; - boundPrototypeChecker(f, Function.prototype) - boundPrototypeChecker(f, {}) - boundPrototypeChecker(f, null); -})(); - -/* arrow function */ -(function() { - var f = () => 5; - boundPrototypeChecker(f, Function.prototype) - boundPrototypeChecker(f, {}) - boundPrototypeChecker(f, null); -})(); - -/* simple class */ -(function() { - class C {}; - boundPrototypeChecker(C, Function.prototype) - boundPrototypeChecker(C, {}) - boundPrototypeChecker(C, null); -})(); - -/* subclasses */ -(function() { - function boundPrototypeChecker(superclass) { - class C extends superclass { - constructor() { - return Object.create(null); - } - } - var boundF = Function.prototype.bind.call(C, null); - assert(Object.getPrototypeOf(boundF) === Object.getPrototypeOf(C)); - } - - boundPrototypeChecker(function(){}); - boundPrototypeChecker(Array); - boundPrototypeChecker(null); -})(); diff --git a/tests/jerry/es.next/function-prototype-tostring.js b/tests/jerry/es.next/function-prototype-tostring.js deleted file mode 100644 index 72abaefe8..000000000 --- a/tests/jerry/es.next/function-prototype-tostring.js +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function check() {} - -if (check.toString() !== "function () { /* ecmascript */ }") -{ - var a, b, o, c, f; - - /* Function statements. */ - - a = 6; function f1(a,b=1,c) { return a /* comment */ + b + c } b = 7 - assert(f1.toString() === "function f1(a,b=1,c) { return a /* comment */ + b + c }") - - a = 6; function * f2(a,b,c=1) { - function x() {} - } b = 7 - assert(f2.toString() === "function * f2(a,b,c=1) {\n function x() {}\n }") - - a = 6;async function f3 ( a , b , c ) { } b = 7 - assert(f3.toString() === "async function f3 ( a , b , c ) { }") - - a = 6;async/**/function*f4(a,b,c){} b = 7 - assert(f4.toString() === "async/**/function*f4(a,b,c){}") - - /* Object initializers. */ - - o = {f(a) { return a }} - assert(o.f.toString() === "f(a) { return a }") - - o = {f:function(a){/**/}} - assert(o.f.toString() === "function(a){/**/}") - - o = { [function(){ return 'f' }()] (a = function() {}) {} } - assert(o.f.toString() === "[function(){ return 'f' }()] (a = function() {}) {}") - - o = {* f(a) {}} - assert(o.f.toString() === "* f(a) {}") - - o = {*[function(){ return 'f' }()](a) {}} - assert(o.f.toString() === "*[function(){ return 'f' }()](a) {}") - - o = {async/**/f(a) {}} - assert(o.f.toString() === "async/**/f(a) {}") - - o = {/**/async [function(){ return 'f' }()](a) {}/**/} - assert(o.f.toString() === "async [function(){ return 'f' }()](a) {}") - - o = {a:1,async/**/*/**/f(a) {},b:1} - assert(o.f.toString() === "async/**/*/**/f(a) {}") - - o = {async *// - [function(){ return 'f' }()](a) {}/**/} - assert(o.f.toString() === "async *//\n [function(){ return 'f' }()](a) {}") - - o = { get a() {return/**/6} } - assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get a() {return/**/6}") - - o = { get[function(){ return 'a' }()](){} } - assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get[function(){ return 'a' }()](){}") - - o = { set a(v) {/**/} } - assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set a(v) {/**/}") - - o = {/**/set/**/[function(){ return 'a' }()]/**/(v) {/**/}/**/} - assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set/**/[function(){ return 'a' }()]/**/(v) {/**/}") - - /* Class static functions. */ - - c = class { static/**/f() {}/**/ } - assert(c.f.toString() === "f() {}") - - c = class { static[function(){ return 'f' }()]() {} } - assert(c.f.toString() === "[function(){ return 'f' }()]() {}") - - c = class { static *f() {} } - assert(c.f.toString() === "*f() {}") - - c = class {/**/static * [function(){ return 'f' }()](a=6){}/**/} - assert(c.f.toString() === "* [function(){ return 'f' }()](a=6){}") - - c = class { static/**/async f() {} } - assert(c.f.toString() === "async f() {}") - - c = class {static async[function(){ return 'f' }()]() {/**/}} - assert(c.f.toString() === "async[function(){ return 'f' }()]() {/**/}") - - c = class { static async*f() {}} - assert(c.f.toString() === "async*f() {}") - - c = class { static async*/**/[function(){ return 'f' }()](){} } - assert(c.f.toString() === "async*/**/[function(){ return 'f' }()](){}") - - c = class { static/**/get/**/a() {}} - assert(Object.getOwnPropertyDescriptor(c, "a").get.toString() === "get/**/a() {}") - - c = class {static set a(v){}} - assert(Object.getOwnPropertyDescriptor(c, "a").set.toString() === "set a(v){}") - - c = class { static get[function(){ return 'a' }()](){} } - assert(Object.getOwnPropertyDescriptor(c, "a").get.toString() === "get[function(){ return 'a' }()](){}") - - c = class { static set[function(){ return 'a' }()](v){}// - } - assert(Object.getOwnPropertyDescriptor(c, "a").set.toString() === "set[function(){ return 'a' }()](v){}") - - /* Class functions. */ - - o = Object.getPrototypeOf(new class {/**/f() {}/**/}) - assert(o.f.toString() === "f() {}") - - o = Object.getPrototypeOf(new class {[function(){ return 'f' }()](){}}) - assert(o.f.toString() === "[function(){ return 'f' }()](){}") - - o = Object.getPrototypeOf(new class { * /**/ f() {} }) - assert(o.f.toString() === "* /**/ f() {}") - - o = Object.getPrototypeOf(new class { * [function(){ return 'f' }()]/**/(){} }) - assert(o.f.toString() === "* [function(){ return 'f' }()]/**/(){}") - - o = Object.getPrototypeOf(new class {async f() {}}) - assert(o.f.toString() === "async f() {}") - - o = Object.getPrototypeOf(new class {async[function(){ return 'f' }()](){}}) - assert(o.f.toString() === "async[function(){ return 'f' }()](){}") - - o = Object.getPrototypeOf(new class {/**/get/**/a() {}/**/}) - assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get/**/a() {}") - - o = Object.getPrototypeOf(new class { set a(v){} }) - assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set a(v){}") - - o = Object.getPrototypeOf(new class {/**/get/**/[function(){ return 'a' }()]() {}/**/}) - assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get/**/[function(){ return 'a' }()]() {}") - - o = Object.getPrototypeOf(new class { set/**/[function(){ return 'a' }()]( v ){} }) - assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set/**/[function(){ return 'a' }()]( v ){}") - - /* Function creators. */ - f = Function("a,b", "return a + b") - assert(f.toString() === "function anonymous(a,b\n) {\nreturn a + b\n}") - - f = Function("", "") - assert(f.toString() === "function anonymous(\n) {\n\n}") - - f = function*(){}.constructor("a,b", "c", "yield a; return b + c") - assert(f.toString() === "function* anonymous(a,b,c\n) {\nyield a; return b + c\n}") - - f = async function(){}.constructor("a", "return a + 'x'") - assert(f.toString() === "async function anonymous(a\n) {\nreturn a + 'x'\n}") - - f = async function*(){}.constructor("a=3", "return a") - assert(f.toString() === "async function* anonymous(a=3\n) {\nreturn a\n}") - - f = Function("a = function(x) { return x + 3 }", "return a") - assert(f().toString() === "function(x) { return x + 3 }") - - f = Function("return function(x) { return x + 3 }") - assert(f().toString() === "function(x) { return x + 3 }") - - /* Arrow functions. */ - f = x => x + 1/**/ - assert(f.toString() === "x => x + 1") - - f =x => { return x + 1 }/**/ - assert(f.toString() === "x => { return x + 1 }") - - f = (/**/) => 'x' // - + y - assert(f.toString() === "(/**/) => 'x' //\n + y") - - f = async x => x + 1 - assert(f.toString() === "async x => x + 1") - - f =/**/async (x,/**/y)=>/**/null - assert(f.toString() === "async (x,/**/y)=>/**/null") -} diff --git a/tests/jerry/es.next/json-stringify.js b/tests/jerry/es.next/json-stringify.js deleted file mode 100644 index b7a312317..000000000 --- a/tests/jerry/es.next/json-stringify.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Test with proxy -assert(JSON.stringify(new Proxy(['foo'], {})) === '["foo"]'); -assert(JSON.stringify(new Proxy({0:"foo"}, {})) === '{"0":"foo"}'); - -var target = [1,2,3]; -var handler = { - get(target, prop) { - if (prop == "length") - { - throw 42; - } - } -} - -try { - JSON.stringify(new Proxy(target,handler)); - assert(false); -} catch (e) { - assert(e === 42); -} - -var revocable = Proxy.revocable (target, { get (t, p , r) { - if (p == "toJSON") { - revocable.revoke(); - } -}}); -var proxy = revocable.proxy; - -try { - JSON.stringify(proxy); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -// Checking quoting strings -assert(JSON.stringify("ab𬄕c") === '"ab𬄕\\u001fc"'); -assert(JSON.stringify("ab\uDC01cd") === '"ab\\udc01c\\u001fd"'); -assert(JSON.stringify("ab\uDC01cd\uD8331e") === '"ab\\udc01c\\u001fd\\ud8331e"'); - -// Test case where the proxy is already revoked -var handle = Proxy.revocable([], {}); -handle.revoke(); - -try { - JSON.stringify(handle.proxy); - assert(false); -} catch (ex) { - assert(ex instanceof TypeError); -} diff --git a/tests/jerry/es.next/object-define-properties.js b/tests/jerry/es.next/object-define-properties.js deleted file mode 100644 index 7db9a66a1..000000000 --- a/tests/jerry/es.next/object-define-properties.js +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var object = {}; -var symbol = Symbol("symbol"); - -Object.defineProperties(object, { - "foo": { - value: true, - writable: true - }, - [symbol]: { - value: "a symbol", - configurable: true - } -}); - -assert (object.foo === true); -assert (object[symbol] === "a symbol"); - -try { - Object.defineProperties(undefined, { - [symbol]: { - value: "a symbol", - writable: true - } - }); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -// If one of the properties is wrong than it shouldn't update the object. -var obj2 = { - a: 5 -}; -try { - Object.defineProperties(obj2, { - "foo": { - value: true, - writable: true - }, - [symbol]: { - value: "a symbol", - set: 3 - } - }); - assert (false); -} catch (e) { - assert (e instanceof TypeError); - assert (obj2.foo === undefined); - assert (obj2[symbol] === undefined); - assert (obj2.a === 5); -} - -// Define accessors -var object = {}; -Object.defineProperties(object, { - "foo": { - value: 42, - writable: true, - }, - [symbol]: { - get: function() { return this.foo }, - set: function(v) { this.foo = v } - } -}); - -assert (object[symbol] === 42); -object[symbol] = "baz"; -assert (object[symbol] === "baz"); - -// Define get method which throws error -var object = {}; -var props = { - [symbol]: { - value: 3, - writable: true - }, - get bar() { - throw new TypeError("foo"); - return { value : 2, writable : true }; - }, -}; - -try { - Object.defineProperties(object, props); - assert (false); -} catch (e) { - assert (e instanceof TypeError); - assert (e.message === "foo"); -} -// Define get method which deletes a property -var object = {}; -Object.defineProperties(object, { - "foo": { - value: 42, - writable: true, - }, - [symbol]: { - value: "a symbol", - configurable: true - }, - "bar": { - get: function() { - delete this[symbol]; - return this.foo; - }, - } -}); - -assert (object[symbol] === "a symbol"); -assert (object.bar === 42); -assert (object[symbol] === undefined); - -var object = {}; -var props = { - [symbol]: { - value: "a symbol", - configurable: true - }, - get bar() { - delete props[symbol]; - delete props.prop1; - return { value : 2, writable : true }; - }, - prop1: { - value: 3, - writable: true, - }, -}; - -Object.defineProperties(object, props); -var bar_desc = Object.getOwnPropertyDescriptor(object, 'bar'); -assert(bar_desc.value === 2); -assert(bar_desc.writable === true); -assert(object.prop1 === undefined); -assert(object[symbol] === undefined); diff --git a/tests/jerry/es.next/object-get-own-property-names.js b/tests/jerry/es.next/object-get-own-property-names.js deleted file mode 100644 index 6bc795051..000000000 --- a/tests/jerry/es.next/object-get-own-property-names.js +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright JS Foundation and other contributors, http://js.foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Check that Object.getOwnPropertyNames does NOT include Symbols by default. -var asd = Symbol ("asd"); -var foo = Symbol ("foo"); -var bar = Symbol ("bar"); -var result = Object.getOwnPropertyNames ({1: 5, "a": 6, [foo]: 7, [asd]: 8, [bar]: 9}); -assert (!Object.hasOwnProperty (result, foo)); -assert (!Object.hasOwnProperty (result, asd)); -assert (!Object.hasOwnProperty (result, bar)); diff --git a/tests/jerry/es.next/object-keys.js b/tests/jerry/es.next/object-keys.js deleted file mode 100644 index a45d985c1..000000000 --- a/tests/jerry/es.next/object-keys.js +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var object = {}; - -Object.defineProperties(object, { - a: { - value: "foo", - enumerable: false - }, - b: { - value: "bar", - enumerable: true, - writable: false - } -}); - -var proxy = new Proxy(object, { - getOwnPropertyDescriptor: function(o, v) { - handlers.push("D"); - return Object.getOwnPropertyDescriptor(o, v); - }, - get: function(o, v) { - handlers.push("G"); - return o[v]; - } -}); - -var handlers = []; -var keys = Object.keys(proxy); - -assert(keys.length === 1); -assert(keys[0] === "b"); -assert(handlers.length === 2); -assert(handlers.toString() === "D,D"); diff --git a/tests/jerry/es.next/regexp-construct.js b/tests/jerry/es.next/regexp-construct.js deleted file mode 100644 index 0c0d86344..000000000 --- a/tests/jerry/es.next/regexp-construct.js +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var r = RegExp ("a","gim"); -var r2 = RegExp (r,"gim"); -var r3 = RegExp (r); - -assert(r2.source === 'a'); -assert(r2.global === true); -assert(r2.ignoreCase === true); -assert(r2.multiline === true); - -assert(r3.source === 'a'); -assert(r3.global === true); -assert(r3.ignoreCase === true); -assert(r3.multiline === true); - -var obj = { get source() { throw 5 }, [Symbol.match] : true } - -try { - new RegExp (obj); - assert(false) -} catch (e) { - assert(e === 5); -} - -r = new RegExp ("a","gimuy"); -assert (r.global === true); -assert (r.ignoreCase === true); -assert (r.multiline === true); -assert (r.unicode === true); -assert (r.sticky === true); - -try { - new RegExp ("a", "uu"); - assert (false); -} catch (e) { - assert (e instanceof SyntaxError); -} - -try { - new RegExp ("a", "yy"); - assert (false); -} catch (e) { - assert (e instanceof SyntaxError); -} diff --git a/tests/jerry/es.next/regexp-routines.js b/tests/jerry/es.next/regexp-routines.js deleted file mode 100644 index 53a0c0210..000000000 --- a/tests/jerry/es.next/regexp-routines.js +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var r = new RegExp('a', 'gimuy'); -assert (r.flags === 'gimuy'); -assert (r.toString() === '/a/gimuy'); - -try { - Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -var o = { - global: true, - unicode: true, - sticky: true, - source: "str" -} - -Object.defineProperty(o, 'flags', Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags')); -assert(o.flags === "guy"); -assert (RegExp.prototype.toString.call (o) === "/str/guy"); - -Object.defineProperty(o, 'multiline', { 'get': function () {throw "abrupt flag get"; }}); -try { - o.flags - assert (false); -} catch (e) { - assert (e === "abrupt flag get"); -} - -try { - RegExp.prototype.toString.call(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -assert (RegExp.prototype.toString.call({}) === "/undefined/undefined"); - -var o = {}; -Object.defineProperty (o, 'source', { 'get' : function () {throw "abrupt source get"; } }); -try { - RegExp.prototype.toString.call(o); - assert (false); -} catch (e) { - assert (e === "abrupt source get"); -} - -var o = {source: {toString: function() {throw "abrupt source toString";}}}; -try { - RegExp.prototype.toString.call(o); - assert (false); -} catch (e) { - assert (e === "abrupt source toString"); -} - -var o = {source: "str"}; -Object.defineProperty (o, 'flags', { 'get' : function () {throw "abrupt flags get"; } }); -try { - RegExp.prototype.toString.call(o); - assert (false); -} catch (e) { - assert (e === "abrupt flags get"); -} - -var o = {source: "str", flags: {toString: function() {throw "abrupt flags toString";}}}; -try { - RegExp.prototype.toString.call(o); - assert (false); -} catch (e) { - assert (e === "abrupt flags toString"); -} - -var o = { - global: true, - source: "str" -} - -Object.defineProperty(o, 'unicode', { 'get': function () {throw "abrupt unicode get"; }}); -try { - RegExp.prototype[Symbol.match].call(o, "str"); - assert (false); -} catch (e) { - assert (e === "abrupt unicode get"); -} - -assert ("str𐲡fgh".replace(/(?:)/gu, "x") === 'xsxtxrx𐲡xfxgxhx'); -assert ("str𐲡fgh".replace(/(?:)/g, "x") === 'xsxtxrx\ud803x\udca1xfxgxhx'); - -r = /(?:)/gu; -/* Disable fast path. */ -r.exec = function (s) { return RegExp.prototype.exec.call(this, s); }; - -assert ("str𐲡fgh".replace(r, "x") === 'xsxtxrx𐲡xfxgxhx'); -Object.defineProperty(r, 'unicode', {value: false}); -assert ("str𐲡fgh".replace(r, "x") === 'xsxtxrx\ud803x\udca1xfxgxhx'); - -r = /(?:)/gu; -assert (RegExp.prototype[Symbol.match].call(r, "str𐲡fgh").length === 8); -Object.defineProperty(r, 'unicode', {value: false}); -assert (RegExp.prototype[Symbol.match].call(r, "str𐲡fgh").length === 9); - -r = /(?:)/gy; -r.lastIndex = 2; -assert ("asd".replace(r, "x") === "xaxsxdx"); -assert (r.lastIndex === 0); - -r.lastIndex = 5; -assert ("asd".replace(r, "x") === "xaxsxdx"); -assert (r.lastIndex === 0); - -r = /(?:)/y; -r.lastIndex = 2; -assert ("asd".replace(r, "x") === "asxd"); -assert (r.lastIndex === 2); - -r.lastIndex = 5; -assert ("asd".replace(r, "x") === "asd"); -assert (r.lastIndex === 0); - -r.lastIndex = 2; -/* Disable fast path. */ -r.exec = function (s) { return RegExp.prototype.exec.call(this, s); }; -assert ("asd".replace(r, "x") === "asxd"); -assert (r.lastIndex === 2); - -r.lastIndex = 5; -assert ("asd".replace(r, "x") === "asd"); -assert (r.lastIndex === 0); - -assert (RegExp.prototype[Symbol.match].call(/a/y, "aaa").length === 1); -assert (RegExp.prototype[Symbol.match].call(/a/gy, "aaa").length === 3); - -var length = Object.getOwnPropertyDescriptor(RegExp.prototype.compile, "length"); -assert(!length.enumerable); -assert(!length.writable); -assert(length.configurable); -assert(length.value === 2); - -var re = /./; -re.lastIndex = 23; - -try { - re.compile(re, null); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - re.compile(re, 0); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - re.compile(re, ''); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - re.compile(re, false); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - re.compile(re, {}); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -try { - re.compile(re, []); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -assert(re.lastIndex === 23); - -var subject = /initial/; -Object.defineProperty(subject, 'lastIndex', { value: 45, writable: false }); - -try { - subject.compile(/updated/gi); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -assert(subject.toString() === new RegExp('updated', 'gi').toString()); -assert(subject.lastIndex === 45); diff --git a/tests/jerry/es.next/regression-test-issue-3072.js b/tests/jerry/es.next/regression-test-issue-3072.js deleted file mode 100644 index af9ca456f..000000000 --- a/tests/jerry/es.next/regression-test-issue-3072.js +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var arrb = new ArrayBuffer(13); - -try { - var d = new DataView(arrb, 12, -Infinity); - d.setFloat32(1, 1); - assert (false); -} catch (e) { - assert (e instanceof RangeError); -} diff --git a/tests/jerry/es.next/string-prototype-match.js b/tests/jerry/es.next/string-prototype-match.js deleted file mode 100644 index 02e818a41..000000000 --- a/tests/jerry/es.next/string-prototype-match.js +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -class NewRegExp extends RegExp { - [Symbol.match](str) { - var result = RegExp.prototype[Symbol.match].call(this, str); - var successful = 0; - if (result) { - successful = 1; - } - return successful; - } -} - -var str = 'This is a random string.'; -var regexp = new NewRegExp(/[A-Z]/g); -assert(str.match(regexp) === 1); - -try { - String.prototype.match.call(null, regexp); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -var regexp2 = /[A-Z]/g; -regexp2[Symbol.match] = "foo"; - -try { - str.match(regexp2); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -Object.defineProperty (regexp2, Symbol.match, { get () { throw 5 }}); - -try { - str.match(regexp2); - assert(false); -} catch (e) { - assert(e === 5); -} - -var wrong_sytnax = "str.match(/[A-5]/g"; - -try { - eval(wrong_sytnax); - assert(false); -} catch (e) { - assert(e instanceof SyntaxError); -} - -delete(RegExp.prototype[Symbol.match]); - -try { - str.match(regexp); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} - -var regexp3 = "foo"; -RegExp.prototype[Symbol.match] = 3; - -try { - str.match(regexp3); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} diff --git a/tests/jerry/es.next/string-prototype-split.js b/tests/jerry/es.next/string-prototype-split.js deleted file mode 100644 index 27cc79cbe..000000000 --- a/tests/jerry/es.next/string-prototype-split.js +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var str = "foo//bar/baz//foo"; -res = str.split("a", Infinity); -assert (res.length === 0); - -res = str.split(/\/\//, -1); -assert (res.length === 3); -assert (res[0] === "foo"); -assert (res[1] === "bar/baz"); -assert (res[2] === "foo"); diff --git a/tests/jerry/es.next/string-prototype-trim.js b/tests/jerry/es.next/string-prototype-trim.js deleted file mode 100644 index 7aaf2fea4..000000000 --- a/tests/jerry/es.next/string-prototype-trim.js +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var test = " asd "; -assert(test.trimStart() === "asd ") -assert(test.trimStart().length === 5) -assert(test.trimLeft() === "asd ") -assert(test.trimLeft().length === 5) -assert(String.prototype.trimStart === String.prototype.trimLeft) - -assert(test.trimEnd() === " asd") -assert(test.trimEnd().length === 5) -assert(test.trimRight() === " asd") -assert(test.trimRight().length === 5) -assert(String.prototype.trimEnd === String.prototype.trimRight) - -assert(test.trim() === "asd") -assert(test.trim().length === 3) diff --git a/tests/jerry/es.next/string-upper-lower-case-conversion.js b/tests/jerry/es.next/string-upper-lower-case-conversion.js deleted file mode 100644 index 0f764b1ea..000000000 --- a/tests/jerry/es.next/string-upper-lower-case-conversion.js +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -let start = 0x10000 -let end = 0x10FFFF - -const lower_expected = [66560, 66561, 66562, 66563, 66564, 66565, 66566, 66567, 66568, 66569, 66570, 66571, 66572, - 66573, 66574, 66575, 66576, 66577, 66578, 66579, 66580, 66581, 66582, 66583, 66584, 66585, - 66586, 66587, 66588, 66589, 66590, 66591, 66592, 66593, 66594, 66595, 66596, 66597, 66598, - 66599, 66736, 66737, 66738, 66739, 66740, 66741, 66742, 66743, 66744, 66745, 66746, 66747, - 66748, 66749, 66750, 66751, 66752, 66753, 66754, 66755, 66756, 66757, 66758, 66759, 66760, - 66761, 66762, 66763, 66764, 66765, 66766, 66767, 66768, 66769, 66770, 66771, 68736, 68737, - 68738, 68739, 68740, 68741, 68742, 68743, 68744, 68745, 68746, 68747, 68748, 68749, 68750, - 68751, 68752, 68753, 68754, 68755, 68756, 68757, 68758, 68759, 68760, 68761, 68762, 68763, - 68764, 68765, 68766, 68767, 68768, 68769, 68770, 68771, 68772, 68773, 68774, 68775, 68776, - 68777, 68778, 68779, 68780, 68781, 68782, 68783, 68784, 68785, 68786, 71840, 71841, 71842, - 71843, 71844, 71845, 71846, 71847, 71848, 71849, 71850, 71851, 71852, 71853, 71854, 71855, - 71856, 71857, 71858, 71859, 71860, 71861, 71862, 71863, 71864, 71865, 71866, 71867, 71868, - 71869, 71870, 71871, 93760, 93761, 93762, 93763, 93764, 93765, 93766, 93767, 93768, 93769, - 93770, 93771, 93772, 93773, 93774, 93775, 93776, 93777, 93778, 93779, 93780, 93781, 93782, - 93783, 93784, 93785, 93786, 93787, 93788, 93789, 93790, 93791, 125184, 125185, 125186, 125187, - 125188, 125189, 125190, 125191, 125192, 125193, 125194, 125195, 125196, 125197, 125198, 125199, - 125200, 125201, 125202, 125203, 125204, 125205, 125206, 125207, 125208, 125209, 125210, 125211, - 125212, 125213, 125214, 125215, 125216, 125217]; - -const upper_expected = [66600, 66601, 66602, 66603, 66604, 66605, 66606, 66607, 66608, 66609, 66610, 66611, 66612, - 66613, 66614, 66615, 66616, 66617, 66618, 66619, 66620, 66621, 66622, 66623, 66624, 66625, - 66626, 66627, 66628, 66629, 66630, 66631, 66632, 66633, 66634, 66635, 66636, 66637, 66638, - 66639, 66776, 66777, 66778, 66779, 66780, 66781, 66782, 66783, 66784, 66785, 66786, 66787, - 66788, 66789, 66790, 66791, 66792, 66793, 66794, 66795, 66796, 66797, 66798, 66799, 66800, - 66801, 66802, 66803, 66804, 66805, 66806, 66807, 66808, 66809, 66810, 66811, 68800, 68801, - 68802, 68803, 68804, 68805, 68806, 68807, 68808, 68809, 68810, 68811, 68812, 68813, 68814, - 68815, 68816, 68817, 68818, 68819, 68820, 68821, 68822, 68823, 68824, 68825, 68826, 68827, - 68828, 68829, 68830, 68831, 68832, 68833, 68834, 68835, 68836, 68837, 68838, 68839, 68840, - 68841, 68842, 68843, 68844, 68845, 68846, 68847, 68848, 68849, 68850, 71872, 71873, 71874, - 71875, 71876, 71877, 71878, 71879, 71880, 71881, 71882, 71883, 71884, 71885, 71886, 71887, - 71888, 71889, 71890, 71891, 71892, 71893, 71894, 71895, 71896, 71897, 71898, 71899, 71900, - 71901, 71902, 71903, 93792, 93793, 93794, 93795, 93796, 93797, 93798, 93799, 93800, 93801, - 93802, 93803, 93804, 93805, 93806, 93807, 93808, 93809, 93810, 93811, 93812, 93813, 93814, - 93815, 93816, 93817, 93818, 93819, 93820, 93821, 93822, 93823, 125218, 125219, 125220, 125221, - 125222, 125223, 125224, 125225, 125226, 125227, 125228, 125229, 125230, 125231, 125232, 125233, - 125234, 125235, 125236, 125237, 125238, 125239, 125240, 125241, 125242, 125243, 125244, 125245, - 125246, 125247, 125248, 125249, 125250, 125251]; - -for (let iter of lower_expected) { - let cp = String.fromCodePoint(iter); - assert(cp !== cp.toLowerCase()); -} - -for (let iter of upper_expected) { - let cp = String.fromCodePoint(iter); - assert(cp !== cp.toUpperCase()); -} - -assert("\ud801A".toLowerCase() === "\ud801a"); diff --git a/tests/jerry/es.next/test_suite_15.js b/tests/jerry/es.next/test_suite_15.js deleted file mode 100644 index 4d49439f1..000000000 --- a/tests/jerry/es.next/test_suite_15.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -(function tc_15_03_04_02__001() { - assert(Function.prototype.toString.hasOwnProperty('length')); - assert(delete Function.prototype.toString.length); - assert(!Function.prototype.toString.hasOwnProperty('length')); -})(); diff --git a/tests/jerry/es5.1/arguments.js b/tests/jerry/es5.1/arguments.js deleted file mode 100644 index b5781b330..000000000 --- a/tests/jerry/es5.1/arguments.js +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function f(a, b, c) -{ - 'use strict'; - try { - arguments['caller']; - assert(false); - } catch (e) { - assert(e instanceof TypeError); - } -} - -f(1, 2, 3); diff --git a/tests/jerry/es5.1/arithmetic-parse.js b/tests/jerry/es5.1/arithmetic-parse.js deleted file mode 100644 index 8ec10256b..000000000 --- a/tests/jerry/es5.1/arithmetic-parse.js +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function check_syntax_error (txt) { - try { - eval (txt) - assert (false) - } catch (e) { - assert (e instanceof SyntaxError) - } -} - -var a = 21; -var b = 10; -var c; - -check_syntax_error ("c = a++b"); -check_syntax_error ("c = a--b"); - -check_syntax_error ("c = a +* b"); -check_syntax_error ("c = a -* b"); -check_syntax_error ("c = a +/ b"); -check_syntax_error ("c = a -/ b"); -check_syntax_error ("c = a +% b"); -check_syntax_error ("c = a -% b"); - -check_syntax_error ("a =* b"); -check_syntax_error ("a =/ b"); -check_syntax_error ("a =% b"); - -check_syntax_error ("c = a+"); -check_syntax_error ("c = a-"); - -check_syntax_error("a++\n()"); -check_syntax_error("a--\n.b"); - -assert((-2 .toString()) === -2); - -Number.prototype[0] = 123; -assert(-2[0] === -123); - -function f() { - var a = 0; - function g() {} - - try { - eval ("g(this, 'a' = 1)"); - assert (false); - } catch (e) { - assert (e instanceof ReferenceError); - } - - try { - eval ("g(this, 'a' += 1)"); - assert (false); - } catch (e) { - assert (e instanceof ReferenceError); - } - - assert (a === 0); -} -f(); - -function g(a, b) -{ - assert(b === "undefined"); -} -g(this, typeof undeclared_var) - -function h() -{ - var done = false; - var o = { a: function () { done = (this === o) } } - function f() {} - - with (o) { - f(this, a()); - } - assert(done); -} -h(); - \ No newline at end of file diff --git a/tests/jerry/es5.1/arithmetics.js b/tests/jerry/es5.1/arithmetics.js deleted file mode 100644 index c4554cccd..000000000 --- a/tests/jerry/es5.1/arithmetics.js +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var a = 21; -var b = 10; -var c; - -c = a + b; -assert(c == 31); - -c = a - b; -assert(c == 11); - -c = a * b; -assert(c == 210); - -c = a / b; -assert(c >= 2.1 - 0.000001 && c <= 2.1 + 0.000001); - -c = a % b; -assert(c == 1); - -c = a++; -assert(c == 21); - -c = a--; -assert(c == 22); - -var o = { p : 1 }; - -assert (++o.p === 2); -assert (o.p === 2); -assert (--o.p === 1); -assert (o.p === 1); - -try { - eval ('++ ++ a'); - assert (false); -} -catch (e) { - assert (e instanceof ReferenceError); -} - -assert (0.1 + 0.2 != 0.3); diff --git a/tests/jerry/es5.1/array-prototype-push.js b/tests/jerry/es5.1/array-prototype-push.js deleted file mode 100644 index 17db86116..000000000 --- a/tests/jerry/es5.1/array-prototype-push.js +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var o = { length : 4294967294, push : Array.prototype.push }; -assert(o.push("x") === 4294967295); -assert(o.length === 4294967295); -assert(o[4294967294] === "x"); - -try { - assert(o.push("y") === 4294967296); -} catch (e) { - assert(false); -} -assert(o.length === 4294967296); -assert(o[4294967295] === "y"); - -try { - assert(o.push("z") === 1); -} catch (e) { - assert(false); -} -assert(o.length === 1); -assert(o[0] === "z"); diff --git a/tests/jerry/es5.1/array-prototype-unshift.js b/tests/jerry/es5.1/array-prototype-unshift.js deleted file mode 100644 index 13a8444e7..000000000 --- a/tests/jerry/es5.1/array-prototype-unshift.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var arrayLike = {get 5() { throw "should throw"; }}; -arrayLike.length = 10; -try { - Array.prototype.unshift.call(arrayLike); - assert(false); -} catch (error) { - assert(error == "should throw"); -} diff --git a/tests/jerry/es5.1/builtin-prototypes.js b/tests/jerry/es5.1/builtin-prototypes.js deleted file mode 100644 index c43ec439e..000000000 --- a/tests/jerry/es5.1/builtin-prototypes.js +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright JS Foundation and other contributors, http://js.foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -assert (Object.prototype.toString.call (Date.prototype) === '[object Date]'); -assert (isNaN(Date.prototype.valueOf())); - -assert (isNaN (Date.prototype.setTime())); -assert (isNaN (Date.prototype.setMilliseconds())); -assert (isNaN (Date.prototype.setUTCMilliseconds())); -assert (isNaN (Date.prototype.setSeconds())); -assert (isNaN (Date.prototype.setUTCSeconds())); -assert (isNaN (Date.prototype.setMinutes())); -assert (isNaN (Date.prototype.setUTCMinutes())); -assert (isNaN (Date.prototype.setHours())); -assert (isNaN (Date.prototype.setUTCHours())); -assert (isNaN (Date.prototype.setDate())); -assert (isNaN (Date.prototype.getUTCDate())); -assert (isNaN (Date.prototype.setMonth())); -assert (isNaN (Date.prototype.setUTCMonth())); -assert (isNaN (Date.prototype.setFullYear())); -assert (isNaN (Date.prototype.setUTCFullYear())); - -assert (Object.prototype.toString.call (RegExp.prototype) === '[object RegExp]'); - -assert (RegExp.prototype.source === "(?:)"); -assert (RegExp.prototype.global === false); -assert (RegExp.prototype.ignoreCase === false); -assert (RegExp.prototype.multiline === false); - -RegExp.prototype.source = "a"; -RegExp.prototype.global = true; -RegExp.prototype.ignoreCase = true; -RegExp.prototype.multiline = true; -assert (RegExp.prototype.source === "(?:)"); -assert (RegExp.prototype.global === false); -assert (RegExp.prototype.ignoreCase === false); -assert (RegExp.prototype.multiline === false); - -delete RegExp.prototype.source; -delete RegExp.prototype.global; -delete RegExp.prototype.ignoreCase; -delete RegExp.prototype.multiline; -assert (RegExp.prototype.source === "(?:)"); -assert (RegExp.prototype.global === false); -assert (RegExp.prototype.ignoreCase === false); -assert (RegExp.prototype.multiline === false); - -var prototypes = [ - Error.prototype, - EvalError.prototype, - RangeError.prototype, - ReferenceError.prototype, - SyntaxError.prototype, - TypeError.prototype, - URIError.prototype -] - -prototypes.forEach (function (proto) { - assert (Object.prototype.toString.call (proto) === '[object Error]'); -}) diff --git a/tests/jerry/es5.1/date-utc.js b/tests/jerry/es5.1/date-utc.js deleted file mode 100644 index 4ade1f750..000000000 --- a/tests/jerry/es5.1/date-utc.js +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var d = Date.UTC(2015); -assert (isNaN(d)); diff --git a/tests/jerry/es5.1/func-decl.js b/tests/jerry/es5.1/func-decl.js deleted file mode 100644 index 4529e580b..000000000 --- a/tests/jerry/es5.1/func-decl.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function f() { - return 'foo'; -} -assert ((function() { - if (1 === 0) { - function f() { - return 'bar'; - } - } - return f(); -})() === 'bar'); diff --git a/tests/jerry/es5.1/func-length.js b/tests/jerry/es5.1/func-length.js deleted file mode 100644 index b8df01707..000000000 --- a/tests/jerry/es5.1/func-length.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var desc = Object.getOwnPropertyDescriptor(Function, "length"); -assert(desc.value === 1 && - desc.writable === false && - desc.enumerable === false && - desc.configurable === false); diff --git a/tests/jerry/es5.1/json-superset.js b/tests/jerry/es5.1/json-superset.js deleted file mode 100644 index 4b403afaa..000000000 --- a/tests/jerry/es5.1/json-superset.js +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -try { - eval("'\u2028'"); - assert(false); -} catch (e) { - assert(e instanceof SyntaxError); -} - -try { - eval("'\u2029'"); - assert(false); -} catch (e) { - assert(e instanceof SyntaxError); -} diff --git a/tests/jerry/es5.1/object-getprototypeof.js b/tests/jerry/es5.1/object-getprototypeof.js deleted file mode 100644 index d74038832..000000000 --- a/tests/jerry/es5.1/object-getprototypeof.js +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -try { - var v; - Object.getPrototypeOf(v); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - Object.getPrototypeOf("foo"); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - Object.getPrototypeOf(60); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - var y = Object.getPrototypeOf(null); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -var obj = { x : "foo" }; -assert (Object.getPrototypeOf(obj) === Object.prototype); - -var constructor = function () {}; -constructor.prototype = obj; - -var d_obj = new constructor(); -assert (Object.getPrototypeOf(d_obj) === obj); - -obj = Object.create(null); -assert (Object.getPrototypeOf(obj) === null); diff --git a/tests/jerry/es5.1/object-literal-fails.js b/tests/jerry/es5.1/object-literal-fails.js deleted file mode 100644 index e381c16af..000000000 --- a/tests/jerry/es5.1/object-literal-fails.js +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function throw_error(snippet) -{ - try - { - eval(snippet); - assert (false); - } - catch (e) - { - assert (e instanceof SyntaxError); - } -} - -function throw_error_strict(snippet) -{ - 'use strict' - - try - { - eval(snippet); - assert (false); - } - catch (e) - { - assert (e instanceof SyntaxError); - } -} - -// These should be failed in ECMA-262 v5.1 -throw_error_strict("({a:1, a:2})"); -throw_error("({a:1, get a() { return 1 }})"); -throw_error("({get a() {return undefined}, get a() {return undefined}})"); -throw_error("({ get 1() {}, 1:1 })"); diff --git a/tests/jerry/es5.1/object-methods.js b/tests/jerry/es5.1/object-methods.js deleted file mode 100644 index 6331d401f..000000000 --- a/tests/jerry/es5.1/object-methods.js +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -try { - Object.getOwnPropertyNames("hello"); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try -{ - Object.preventExtensions(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try -{ - Object.isExtensible(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try -{ - Object.seal(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try -{ - Object.isSealed(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try -{ - Object.freeze(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try -{ - Object.isFrozen(42); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - Object.keys("hello"); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - Object.getOwnPropertyNames("hello"); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} - -try { - Object.getOwnPropertyDescriptor("hello", '1'); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} diff --git a/tests/jerry/es5.1/regexp-construct.js b/tests/jerry/es5.1/regexp-construct.js deleted file mode 100644 index 6f20bb126..000000000 --- a/tests/jerry/es5.1/regexp-construct.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var r = RegExp ("a","gim"); -var r2; - -try { - r2 = RegExp (r,"gim"); - assert(false); -} -catch ( e ) -{ - assert (e instanceof TypeError); -} diff --git a/tests/jerry/es5.1/regexp-lastindex.js b/tests/jerry/es5.1/regexp-lastindex.js deleted file mode 100644 index 0576032b8..000000000 --- a/tests/jerry/es5.1/regexp-lastindex.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var t = /abc/g; -t.lastIndex = -12.5; -result = t.exec("abc abc"); -assert(!result); -assert(t.lastIndex === 0); diff --git a/tests/jerry/es5.1/regexp-routines.js b/tests/jerry/es5.1/regexp-routines.js deleted file mode 100644 index fdd864c5c..000000000 --- a/tests/jerry/es5.1/regexp-routines.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -try { - RegExp.prototype.toString.call ({}); - assert (false); -} catch (e) { - assert (e instanceof TypeError); -} diff --git a/tests/jerry/es5.1/regression-test-issue-1065.js b/tests/jerry/es5.1/regression-test-issue-1065.js deleted file mode 100644 index c04c69a0c..000000000 --- a/tests/jerry/es5.1/regression-test-issue-1065.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -new (new (new RegExp().constructor)().constructor)().constructor.prototype.toString(); - -try { - RegExp().constructor().constructor.prototype.compile(RegExp.prototype); - assert(false); -} catch (e) { - assert(e instanceof TypeError); -} diff --git a/tests/jerry/es5.1/regression-test-issue-1080.js b/tests/jerry/es5.1/regression-test-issue-1080.js deleted file mode 100644 index c1555b19d..000000000 --- a/tests/jerry/es5.1/regression-test-issue-1080.js +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -((new RegExp("}").constructor)("a", "g").constructor)(undefined).constructor.prototype.toString(); -new Date("2015-07-09T12:13:14.121+01:30").toISOString(); - -try { - RegExp(new RegExp("a", "g")).constructor("").constructor.prototype.compile(RegExp.prototype); - assert (false); -} catch (e) { - assert(e instanceof TypeError); -} - -new Date("2015-09-17").getUTCFullYear(); diff --git a/tests/jerry/es5.1/regression-test-issue-116.js b/tests/jerry/es5.1/regression-test-issue-116.js deleted file mode 100644 index 8a4145f9f..000000000 --- a/tests/jerry/es5.1/regression-test-issue-116.js +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -try -{ - Symbol.for.length.toString.length.toExponential.length.valueOf.length.toExponential.length.valueOf.length.toFixed.name.anchor.name.bold.length.toExponential.caller; - assert (false); -} -catch (e) -{ - assert (e instanceof ReferenceError); -} diff --git a/tests/jerry/es5.1/regression-test-issue-1546.js b/tests/jerry/es5.1/regression-test-issue-1546.js deleted file mode 100644 index 2fb01edec..000000000 --- a/tests/jerry/es5.1/regression-test-issue-1546.js +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -String.prototype.split(RegExp.prototype); diff --git a/tests/jerry/es5.1/regression-test-issue-1641.js b/tests/jerry/es5.1/regression-test-issue-1641.js deleted file mode 100644 index f642bfbe5..000000000 --- a/tests/jerry/es5.1/regression-test-issue-1641.js +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var result = "0".split(RegExp.prototype); - -assert(result.length === 1); -assert(result[0] === "0"); diff --git a/tests/jerry/es5.1/regression-test-issue-2058.js b/tests/jerry/es5.1/regression-test-issue-2058.js deleted file mode 100644 index 061a2686a..000000000 --- a/tests/jerry/es5.1/regression-test-issue-2058.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -try { - eval("/?:/"); - assert(false); -} catch (e) { - assert(e instanceof SyntaxError); -} diff --git a/tests/jerry/es5.1/regression-test-issue-312.js b/tests/jerry/es5.1/regression-test-issue-312.js deleted file mode 100644 index 30e6bc9d7..000000000 --- a/tests/jerry/es5.1/regression-test-issue-312.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var res = RegExp.prototype.exec(10); - -assert (res[0] === ""); -assert (res.input === "10"); -assert (res.index === 0); -assert (res.length === 1); diff --git a/tests/jerry/es5.1/regression-test-issue-3151-function.js b/tests/jerry/es5.1/regression-test-issue-3151-function.js deleted file mode 100644 index 150c79a27..000000000 --- a/tests/jerry/es5.1/regression-test-issue-3151-function.js +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -do function $ ( ) { } while (0); diff --git a/tests/jerry/es5.1/regression-test-issue-3637.js b/tests/jerry/es5.1/regression-test-issue-3637.js deleted file mode 100644 index 0306500ad..000000000 --- a/tests/jerry/es5.1/regression-test-issue-3637.js +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var a = [1, 2, 3, 4]; -var b = a.slice(0, { valueOf: function(){ a.length = 0; return 100; } }); - -assert(b.length === 0); - -var c = [1, 2, 3, 4]; -c.prop = 4 -var d = c.slice(0, { valueOf: function(){ c.length = 0; return 100; } }); - -assert(d.length === 0); diff --git a/tests/jerry/es5.1/regression-test-issue-3815.js b/tests/jerry/es5.1/regression-test-issue-3815.js deleted file mode 100644 index 176ded9d0..000000000 --- a/tests/jerry/es5.1/regression-test-issue-3815.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function a() {} - -try { - (a()) = a - assert (false); -} catch (e) { - assert (e instanceof ReferenceError); -} diff --git a/tests/jerry/es5.1/regression-test-issue-787.js b/tests/jerry/es5.1/regression-test-issue-787.js deleted file mode 100644 index 6b8692be1..000000000 --- a/tests/jerry/es5.1/regression-test-issue-787.js +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -Array.prototype.push(Math.sin); -Object.freeze(Array.prototype); -String.prototype.match(String.prototype); diff --git a/tests/jerry/es5.1/string-prototype-split.js b/tests/jerry/es5.1/string-prototype-split.js deleted file mode 100644 index 27cc79cbe..000000000 --- a/tests/jerry/es5.1/string-prototype-split.js +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var str = "foo//bar/baz//foo"; -res = str.split("a", Infinity); -assert (res.length === 0); - -res = str.split(/\/\//, -1); -assert (res.length === 3); -assert (res[0] === "foo"); -assert (res[1] === "bar/baz"); -assert (res[2] === "foo"); diff --git a/tests/jerry/es5.1/string-regexp-methods.js b/tests/jerry/es5.1/string-regexp-methods.js deleted file mode 100644 index 6e6c2e172..000000000 --- a/tests/jerry/es5.1/string-regexp-methods.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Changing exec should not affect replace. -Object.getPrototypeOf(/x/).exec = function () { return 1234; } -assert (/y/.exec("y") === 1234); - -assert ("y".replace (/y/, "x") === "x"); -assert ("ay".search (/y/) === 1); diff --git a/tests/jerry/es5.1/string-upper-lower-case-conversion.js b/tests/jerry/es5.1/string-upper-lower-case-conversion.js deleted file mode 100644 index c931abb28..000000000 --- a/tests/jerry/es5.1/string-upper-lower-case-conversion.js +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Although codepoint 0x10400 and 0x10428 are an upper-lowercase pair, -// we must not do their conversion in JavaScript. We must also ignore -// stray surrogates. - -assert ("\ud801\ud801\udc00\udc00".toLowerCase() == "\ud801\ud801\udc00\udc00"); -assert ("\ud801\ud801\udc28\udc28".toUpperCase() == "\ud801\ud801\udc28\udc28"); diff --git a/tests/jerry/es5.1/test_suite_15.js b/tests/jerry/es5.1/test_suite_15.js deleted file mode 100644 index f6f8e0708..000000000 --- a/tests/jerry/es5.1/test_suite_15.js +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -(function tc_15_07_04_02__006() { - assert(Number.prototype.toString(2) === "0"); -})(); - -(function tc_15_03_04_02__001() { - assert(Function.prototype.toString.hasOwnProperty('length')); - assert(!(delete Function.prototype.toString.length)); - assert(Function.prototype.toString.hasOwnProperty('length')); -})(); - -(function tc_15_03_04_02__004() { - assert(Function.prototype.toString.hasOwnProperty('length')); - assert(!(delete Function.prototype.toString.length)); - assert(Function.prototype.toString.hasOwnProperty('length')); -})(); - -(function tc_15_07_04_05__002() { - assert(Number.prototype.toFixed(0) === "0"); -})(); - -(function tc_15_07_04_05__007() { - assert(Number.prototype.toFixed(Number.NaN) === "0"); -})(); - -(function tc_15_07_04_02__008() { - assert(Number.prototype.toString() === "0"); -})(); - -(function tc_15_07_04_05__004() { - assert (Number.prototype.toFixed(1.1) === "0.0"); -})(); - -(function tc_15_07_03_01__010() { - assert(Number.prototype == +0); -})(); - -(function tc_13_02__002() { - var foo = function (c, y) { - }; - var check = foo.hasOwnProperty("length") && foo.length === 2; - - foo.length = 12; - if (foo.length === 12) - check = false; - - for (p in foo) - { - if (p === "length") - check = false; - } - delete foo.length; - if (!foo.hasOwnProperty("length")) - check = false; - - assert(check === true); -})(); - -(function tc_15_07_03_01__008() { - delete Number.prototype.toString - assert(Number.prototype.toString() === "[object Number]"); -})(); - -(function tc_15_07_04__002() { - assert(typeof Number.prototype === "object" && Number.prototype == +0.0); -})(); - -(function tc_15_07_03_01__011() { - assert(1/Number.prototype === Number.POSITIVE_INFINITY); -})(); - -(function tc_15_07_03_01__004() { - var b = Number.prototype - Number.prototype = 4 - assert(Number.prototype != 4 && Number.prototype === b) -})(); - -(function tc_15_07_03_01__009() { - Number.prototype.toString = Object.prototype.toString; - assert(Number.prototype.toString() === "[object Number]"); -})(); - -(function tc_15_07_04_05__001() { - assert(Number.prototype.toFixed() === "0"); -})(); - -(function tc_15_07_04__001() { - delete Number.prototype.toString - assert(Number.prototype.toString() === "[object Number]"); -})(); - -(function tc_15_07_04_05__005() { - assert(Number.prototype.toFixed(0.9) === "0"); -})(); - -(function tc_15_07_04_05__006() { - assert (Number.prototype.toFixed("1") === "0.0"); -})(); - -(function tc_15_07_04_05__008() { - assert(Number.prototype.toFixed("some string") === "0"); -})(); - -(function tc_15_07_04_05__003() { - assert(Number.prototype.toFixed(1) === "0.0"); -})(); diff --git a/tests/jerry/es5.1/try-catch.js b/tests/jerry/es5.1/try-catch.js deleted file mode 100644 index bfd310814..000000000 --- a/tests/jerry/es5.1/try-catch.js +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright JS Foundation and other contributors, http://js.foundation -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -function f() { - try { - assert(e() == 6) - throw 8; - assert(false); - } catch (e) { - function e() { return 6 } - assert(e == 8); - } -} - -f(); diff --git a/tests/jerry/es.next/exponentiation.js b/tests/jerry/exponentiation.js similarity index 100% rename from tests/jerry/es.next/exponentiation.js rename to tests/jerry/exponentiation.js diff --git a/tests/jerry/es.next/for-await-of-iterator-close.js b/tests/jerry/for-await-of-iterator-close.js similarity index 100% rename from tests/jerry/es.next/for-await-of-iterator-close.js rename to tests/jerry/for-await-of-iterator-close.js diff --git a/tests/jerry/es.next/for-await-of.js b/tests/jerry/for-await-of.js similarity index 100% rename from tests/jerry/es.next/for-await-of.js rename to tests/jerry/for-await-of.js diff --git a/tests/jerry/es.next/for-let-reference-error.js b/tests/jerry/for-let-reference-error.js similarity index 100% rename from tests/jerry/es.next/for-let-reference-error.js rename to tests/jerry/for-let-reference-error.js diff --git a/tests/jerry/es.next/for-let.js b/tests/jerry/for-let.js similarity index 100% rename from tests/jerry/es.next/for-let.js rename to tests/jerry/for-let.js diff --git a/tests/jerry/es.next/for-of-iterator-close.js b/tests/jerry/for-of-iterator-close.js similarity index 100% rename from tests/jerry/es.next/for-of-iterator-close.js rename to tests/jerry/for-of-iterator-close.js diff --git a/tests/jerry/es.next/for-of-statement-head.js b/tests/jerry/for-of-statement-head.js similarity index 100% rename from tests/jerry/es.next/for-of-statement-head.js rename to tests/jerry/for-of-statement-head.js diff --git a/tests/jerry/es.next/for-of.js b/tests/jerry/for-of.js similarity index 100% rename from tests/jerry/es.next/for-of.js rename to tests/jerry/for-of.js diff --git a/tests/jerry/es.next/for-pattern.js b/tests/jerry/for-pattern.js similarity index 100% rename from tests/jerry/es.next/for-pattern.js rename to tests/jerry/for-pattern.js diff --git a/tests/jerry/es.next/forin-header-strict.js b/tests/jerry/forin-header-strict.js similarity index 100% rename from tests/jerry/es.next/forin-header-strict.js rename to tests/jerry/forin-header-strict.js diff --git a/tests/jerry/es.next/function-accessor.js b/tests/jerry/function-accessor.js similarity index 100% rename from tests/jerry/es.next/function-accessor.js rename to tests/jerry/function-accessor.js diff --git a/tests/jerry/es.next/function-arguments-caller.js b/tests/jerry/function-arguments-caller.js similarity index 100% rename from tests/jerry/es.next/function-arguments-caller.js rename to tests/jerry/function-arguments-caller.js diff --git a/tests/jerry/es.next/function-async-gen1.js b/tests/jerry/function-async-gen1.js similarity index 100% rename from tests/jerry/es.next/function-async-gen1.js rename to tests/jerry/function-async-gen1.js diff --git a/tests/jerry/es.next/function-async-gen2.js b/tests/jerry/function-async-gen2.js similarity index 100% rename from tests/jerry/es.next/function-async-gen2.js rename to tests/jerry/function-async-gen2.js diff --git a/tests/jerry/es.next/function-async-gen3.js b/tests/jerry/function-async-gen3.js similarity index 100% rename from tests/jerry/es.next/function-async-gen3.js rename to tests/jerry/function-async-gen3.js diff --git a/tests/jerry/es.next/function-async-gen4.js b/tests/jerry/function-async-gen4.js similarity index 100% rename from tests/jerry/es.next/function-async-gen4.js rename to tests/jerry/function-async-gen4.js diff --git a/tests/jerry/es.next/function-async1.js b/tests/jerry/function-async1.js similarity index 100% rename from tests/jerry/es.next/function-async1.js rename to tests/jerry/function-async1.js diff --git a/tests/jerry/es.next/function-async2.js b/tests/jerry/function-async2.js similarity index 100% rename from tests/jerry/es.next/function-async2.js rename to tests/jerry/function-async2.js diff --git a/tests/jerry/es.next/function-async3.js b/tests/jerry/function-async3.js similarity index 100% rename from tests/jerry/es.next/function-async3.js rename to tests/jerry/function-async3.js diff --git a/tests/jerry/es.next/function-await1.js b/tests/jerry/function-await1.js similarity index 100% rename from tests/jerry/es.next/function-await1.js rename to tests/jerry/function-await1.js diff --git a/tests/jerry/es.next/function-await2.js b/tests/jerry/function-await2.js similarity index 100% rename from tests/jerry/es.next/function-await2.js rename to tests/jerry/function-await2.js diff --git a/tests/jerry/es.next/function-await3.js b/tests/jerry/function-await3.js similarity index 100% rename from tests/jerry/es.next/function-await3.js rename to tests/jerry/function-await3.js diff --git a/tests/jerry/es.next/function-call.js b/tests/jerry/function-call.js similarity index 100% rename from tests/jerry/es.next/function-call.js rename to tests/jerry/function-call.js diff --git a/tests/jerry/es.next/function-decl.js b/tests/jerry/function-decl.js similarity index 100% rename from tests/jerry/es.next/function-decl.js rename to tests/jerry/function-decl.js diff --git a/tests/jerry/es.next/function-if.js b/tests/jerry/function-if.js similarity index 100% rename from tests/jerry/es.next/function-if.js rename to tests/jerry/function-if.js diff --git a/tests/jerry/es.next/function-name.js b/tests/jerry/function-name.js similarity index 100% rename from tests/jerry/es.next/function-name.js rename to tests/jerry/function-name.js diff --git a/tests/jerry/es.next/function-new-target.js b/tests/jerry/function-new-target.js similarity index 100% rename from tests/jerry/es.next/function-new-target.js rename to tests/jerry/function-new-target.js diff --git a/tests/jerry/es.next/function-param-init.js b/tests/jerry/function-param-init.js similarity index 100% rename from tests/jerry/es.next/function-param-init.js rename to tests/jerry/function-param-init.js diff --git a/tests/jerry/es.next/function-param-init2.js b/tests/jerry/function-param-init2.js similarity index 100% rename from tests/jerry/es.next/function-param-init2.js rename to tests/jerry/function-param-init2.js diff --git a/tests/jerry/es.next/function-param-init3.js b/tests/jerry/function-param-init3.js similarity index 100% rename from tests/jerry/es.next/function-param-init3.js rename to tests/jerry/function-param-init3.js diff --git a/tests/jerry/es.next/function-param-init4.js b/tests/jerry/function-param-init4.js similarity index 100% rename from tests/jerry/es.next/function-param-init4.js rename to tests/jerry/function-param-init4.js diff --git a/tests/jerry/es.next/function-pattern1.js b/tests/jerry/function-pattern1.js similarity index 100% rename from tests/jerry/es.next/function-pattern1.js rename to tests/jerry/function-pattern1.js diff --git a/tests/jerry/es.next/function-pattern2.js b/tests/jerry/function-pattern2.js similarity index 100% rename from tests/jerry/es.next/function-pattern2.js rename to tests/jerry/function-pattern2.js diff --git a/tests/jerry/es.next/function-properties.js b/tests/jerry/function-properties.js similarity index 100% rename from tests/jerry/es.next/function-properties.js rename to tests/jerry/function-properties.js diff --git a/tests/jerry/function-prototype-bind.js b/tests/jerry/function-prototype-bind.js index 76401a6a3..d23a29114 100644 --- a/tests/jerry/function-prototype-bind.js +++ b/tests/jerry/function-prototype-bind.js @@ -137,3 +137,58 @@ assert(bound.length === 1); bound = foo.bind(null, 9, 8); assert(bound.length === 0); +/* extended class */ +(function() { + class C extends Function {} + var c = new C("x", "y", "return this.foo + x + y;").bind({foo : 1}, 2); + assert(c(3) === 6); + assert(c instanceof C); +})(); + +function boundPrototypeChecker(f, proto) { + Object.setPrototypeOf(f, proto); + + var boundFunc = Function.prototype.bind.call(f, null); + assert(Object.getPrototypeOf(boundFunc) === proto); +} + +/* generator function */ +(function() { + var f = function*(){}; + boundPrototypeChecker(f, Function.prototype) + boundPrototypeChecker(f, {}) + boundPrototypeChecker(f, null); +})(); + +/* arrow function */ +(function() { + var f = () => 5; + boundPrototypeChecker(f, Function.prototype) + boundPrototypeChecker(f, {}) + boundPrototypeChecker(f, null); +})(); + +/* simple class */ +(function() { + class C {}; + boundPrototypeChecker(C, Function.prototype) + boundPrototypeChecker(C, {}) + boundPrototypeChecker(C, null); +})(); + +/* subclasses */ +(function() { + function boundPrototypeChecker(superclass) { + class C extends superclass { + constructor() { + return Object.create(null); + } + } + var boundF = Function.prototype.bind.call(C, null); + assert(Object.getPrototypeOf(boundF) === Object.getPrototypeOf(C)); + } + + boundPrototypeChecker(function(){}); + boundPrototypeChecker(Array); + boundPrototypeChecker(null); +})(); diff --git a/tests/jerry/es.next/function-prototype-hasinstance-class.js b/tests/jerry/function-prototype-hasinstance-class.js similarity index 100% rename from tests/jerry/es.next/function-prototype-hasinstance-class.js rename to tests/jerry/function-prototype-hasinstance-class.js diff --git a/tests/jerry/es.next/function-prototype-hasinstance.js b/tests/jerry/function-prototype-hasinstance.js similarity index 100% rename from tests/jerry/es.next/function-prototype-hasinstance.js rename to tests/jerry/function-prototype-hasinstance.js diff --git a/tests/jerry/function-prototype-tostring.js b/tests/jerry/function-prototype-tostring.js index fedd23f66..e11e13308 100644 --- a/tests/jerry/function-prototype-tostring.js +++ b/tests/jerry/function-prototype-tostring.js @@ -36,3 +36,177 @@ assert (multiple.bind({}).toString() === "function () { [native code] }") function lots(a,b,c,d,e,f,g,h,i,j,k) { return 1; } check (lots, "function lots(a,b,c,d,e,f,g,h,i,j,k) { return 1; }") assert (lots.bind({}).toString() === "function () { [native code] }") +function check() {} + +if (check.toString() !== "function () { /* ecmascript */ }") +{ + var a, b, o, c, f; + + /* Function statements. */ + + a = 6; function f1(a,b=1,c) { return a /* comment */ + b + c } b = 7 + assert(f1.toString() === "function f1(a,b=1,c) { return a /* comment */ + b + c }") + + a = 6; function * f2(a,b,c=1) { + function x() {} + } b = 7 + assert(f2.toString() === "function * f2(a,b,c=1) {\n function x() {}\n }") + + a = 6;async function f3 ( a , b , c ) { } b = 7 + assert(f3.toString() === "async function f3 ( a , b , c ) { }") + + a = 6;async/**/function*f4(a,b,c){} b = 7 + assert(f4.toString() === "async/**/function*f4(a,b,c){}") + + /* Object initializers. */ + + o = {f(a) { return a }} + assert(o.f.toString() === "f(a) { return a }") + + o = {f:function(a){/**/}} + assert(o.f.toString() === "function(a){/**/}") + + o = { [function(){ return 'f' }()] (a = function() {}) {} } + assert(o.f.toString() === "[function(){ return 'f' }()] (a = function() {}) {}") + + o = {* f(a) {}} + assert(o.f.toString() === "* f(a) {}") + + o = {*[function(){ return 'f' }()](a) {}} + assert(o.f.toString() === "*[function(){ return 'f' }()](a) {}") + + o = {async/**/f(a) {}} + assert(o.f.toString() === "async/**/f(a) {}") + + o = {/**/async [function(){ return 'f' }()](a) {}/**/} + assert(o.f.toString() === "async [function(){ return 'f' }()](a) {}") + + o = {a:1,async/**/*/**/f(a) {},b:1} + assert(o.f.toString() === "async/**/*/**/f(a) {}") + + o = {async *// + [function(){ return 'f' }()](a) {}/**/} + assert(o.f.toString() === "async *//\n [function(){ return 'f' }()](a) {}") + + o = { get a() {return/**/6} } + assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get a() {return/**/6}") + + o = { get[function(){ return 'a' }()](){} } + assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get[function(){ return 'a' }()](){}") + + o = { set a(v) {/**/} } + assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set a(v) {/**/}") + + o = {/**/set/**/[function(){ return 'a' }()]/**/(v) {/**/}/**/} + assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set/**/[function(){ return 'a' }()]/**/(v) {/**/}") + + /* Class static functions. */ + + c = class { static/**/f() {}/**/ } + assert(c.f.toString() === "f() {}") + + c = class { static[function(){ return 'f' }()]() {} } + assert(c.f.toString() === "[function(){ return 'f' }()]() {}") + + c = class { static *f() {} } + assert(c.f.toString() === "*f() {}") + + c = class {/**/static * [function(){ return 'f' }()](a=6){}/**/} + assert(c.f.toString() === "* [function(){ return 'f' }()](a=6){}") + + c = class { static/**/async f() {} } + assert(c.f.toString() === "async f() {}") + + c = class {static async[function(){ return 'f' }()]() {/**/}} + assert(c.f.toString() === "async[function(){ return 'f' }()]() {/**/}") + + c = class { static async*f() {}} + assert(c.f.toString() === "async*f() {}") + + c = class { static async*/**/[function(){ return 'f' }()](){} } + assert(c.f.toString() === "async*/**/[function(){ return 'f' }()](){}") + + c = class { static/**/get/**/a() {}} + assert(Object.getOwnPropertyDescriptor(c, "a").get.toString() === "get/**/a() {}") + + c = class {static set a(v){}} + assert(Object.getOwnPropertyDescriptor(c, "a").set.toString() === "set a(v){}") + + c = class { static get[function(){ return 'a' }()](){} } + assert(Object.getOwnPropertyDescriptor(c, "a").get.toString() === "get[function(){ return 'a' }()](){}") + + c = class { static set[function(){ return 'a' }()](v){}// + } + assert(Object.getOwnPropertyDescriptor(c, "a").set.toString() === "set[function(){ return 'a' }()](v){}") + + /* Class functions. */ + + o = Object.getPrototypeOf(new class {/**/f() {}/**/}) + assert(o.f.toString() === "f() {}") + + o = Object.getPrototypeOf(new class {[function(){ return 'f' }()](){}}) + assert(o.f.toString() === "[function(){ return 'f' }()](){}") + + o = Object.getPrototypeOf(new class { * /**/ f() {} }) + assert(o.f.toString() === "* /**/ f() {}") + + o = Object.getPrototypeOf(new class { * [function(){ return 'f' }()]/**/(){} }) + assert(o.f.toString() === "* [function(){ return 'f' }()]/**/(){}") + + o = Object.getPrototypeOf(new class {async f() {}}) + assert(o.f.toString() === "async f() {}") + + o = Object.getPrototypeOf(new class {async[function(){ return 'f' }()](){}}) + assert(o.f.toString() === "async[function(){ return 'f' }()](){}") + + o = Object.getPrototypeOf(new class {/**/get/**/a() {}/**/}) + assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get/**/a() {}") + + o = Object.getPrototypeOf(new class { set a(v){} }) + assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set a(v){}") + + o = Object.getPrototypeOf(new class {/**/get/**/[function(){ return 'a' }()]() {}/**/}) + assert(Object.getOwnPropertyDescriptor(o, "a").get.toString() === "get/**/[function(){ return 'a' }()]() {}") + + o = Object.getPrototypeOf(new class { set/**/[function(){ return 'a' }()]( v ){} }) + assert(Object.getOwnPropertyDescriptor(o, "a").set.toString() === "set/**/[function(){ return 'a' }()]( v ){}") + + /* Function creators. */ + f = Function("a,b", "return a + b") + assert(f.toString() === "function anonymous(a,b\n) {\nreturn a + b\n}") + + f = Function("", "") + assert(f.toString() === "function anonymous(\n) {\n\n}") + + f = function*(){}.constructor("a,b", "c", "yield a; return b + c") + assert(f.toString() === "function* anonymous(a,b,c\n) {\nyield a; return b + c\n}") + + f = async function(){}.constructor("a", "return a + 'x'") + assert(f.toString() === "async function anonymous(a\n) {\nreturn a + 'x'\n}") + + f = async function*(){}.constructor("a=3", "return a") + assert(f.toString() === "async function* anonymous(a=3\n) {\nreturn a\n}") + + f = Function("a = function(x) { return x + 3 }", "return a") + assert(f().toString() === "function(x) { return x + 3 }") + + f = Function("return function(x) { return x + 3 }") + assert(f().toString() === "function(x) { return x + 3 }") + + /* Arrow functions. */ + f = x => x + 1/**/ + assert(f.toString() === "x => x + 1") + + f =x => { return x + 1 }/**/ + assert(f.toString() === "x => { return x + 1 }") + + f = (/**/) => 'x' // + + y + assert(f.toString() === "(/**/) => 'x' //\n + y") + + f = async x => x + 1 + assert(f.toString() === "async x => x + 1") + + f =/**/async (x,/**/y)=>/**/null + assert(f.toString() === "async (x,/**/y)=>/**/null") +} diff --git a/tests/jerry/es.next/function-rest-parameter.js b/tests/jerry/function-rest-parameter.js similarity index 100% rename from tests/jerry/es.next/function-rest-parameter.js rename to tests/jerry/function-rest-parameter.js diff --git a/tests/jerry/es.next/function-scope.js b/tests/jerry/function-scope.js similarity index 100% rename from tests/jerry/es.next/function-scope.js rename to tests/jerry/function-scope.js diff --git a/tests/jerry/es.next/function-scope2.js b/tests/jerry/function-scope2.js similarity index 100% rename from tests/jerry/es.next/function-scope2.js rename to tests/jerry/function-scope2.js diff --git a/tests/jerry/es.next/generator-function-in-single-statement.js b/tests/jerry/generator-function-in-single-statement.js similarity index 100% rename from tests/jerry/es.next/generator-function-in-single-statement.js rename to tests/jerry/generator-function-in-single-statement.js diff --git a/tests/jerry/es.next/generator-function.js b/tests/jerry/generator-function.js similarity index 100% rename from tests/jerry/es.next/generator-function.js rename to tests/jerry/generator-function.js diff --git a/tests/jerry/es.next/generator-initializer.js b/tests/jerry/generator-initializer.js similarity index 100% rename from tests/jerry/es.next/generator-initializer.js rename to tests/jerry/generator-initializer.js diff --git a/tests/jerry/es.next/generator-return.js b/tests/jerry/generator-return.js similarity index 100% rename from tests/jerry/es.next/generator-return.js rename to tests/jerry/generator-return.js diff --git a/tests/jerry/es.next/generator-throw.js b/tests/jerry/generator-throw.js similarity index 100% rename from tests/jerry/es.next/generator-throw.js rename to tests/jerry/generator-throw.js diff --git a/tests/jerry/es.next/generator-yield-iterator.js b/tests/jerry/generator-yield-iterator.js similarity index 100% rename from tests/jerry/es.next/generator-yield-iterator.js rename to tests/jerry/generator-yield-iterator.js diff --git a/tests/jerry/es.next/generator-yield.js b/tests/jerry/generator-yield.js similarity index 100% rename from tests/jerry/es.next/generator-yield.js rename to tests/jerry/generator-yield.js diff --git a/tests/jerry/es.next/generator.js b/tests/jerry/generator.js similarity index 100% rename from tests/jerry/es.next/generator.js rename to tests/jerry/generator.js diff --git a/tests/jerry/es.next/global-this.js b/tests/jerry/global-this.js similarity index 100% rename from tests/jerry/es.next/global-this.js rename to tests/jerry/global-this.js diff --git a/tests/jerry/es.next/global-unescape.js b/tests/jerry/global-unescape.js similarity index 100% rename from tests/jerry/es.next/global-unescape.js rename to tests/jerry/global-unescape.js diff --git a/tests/jerry/es.next/identifier-escape.js b/tests/jerry/identifier-escape.js similarity index 100% rename from tests/jerry/es.next/identifier-escape.js rename to tests/jerry/identifier-escape.js diff --git a/tests/jerry/es.next/instanceof-symbol-hasinstance-class.js b/tests/jerry/instanceof-symbol-hasinstance-class.js similarity index 100% rename from tests/jerry/es.next/instanceof-symbol-hasinstance-class.js rename to tests/jerry/instanceof-symbol-hasinstance-class.js diff --git a/tests/jerry/es.next/instanceof-symbol-hasinstance.js b/tests/jerry/instanceof-symbol-hasinstance.js similarity index 100% rename from tests/jerry/es.next/instanceof-symbol-hasinstance.js rename to tests/jerry/instanceof-symbol-hasinstance.js diff --git a/tests/jerry/es.next/intrinsic-properties.js b/tests/jerry/intrinsic-properties.js similarity index 100% rename from tests/jerry/es.next/intrinsic-properties.js rename to tests/jerry/intrinsic-properties.js diff --git a/tests/jerry/es.next/iterator-prototype.js b/tests/jerry/iterator-prototype.js similarity index 100% rename from tests/jerry/es.next/iterator-prototype.js rename to tests/jerry/iterator-prototype.js diff --git a/tests/jerry/es.next/json-parse-proxy.js b/tests/jerry/json-parse-proxy.js similarity index 100% rename from tests/jerry/es.next/json-parse-proxy.js rename to tests/jerry/json-parse-proxy.js diff --git a/tests/jerry/json-stringify.js b/tests/jerry/json-stringify.js index 636d2640b..e374bc73d 100644 --- a/tests/jerry/json-stringify.js +++ b/tests/jerry/json-stringify.js @@ -219,3 +219,54 @@ assert (JSON.stringify ({"key1": false, "key2": 12}, ["key1"], "abc") === '{\nab assert (JSON.stringify ({"key1": false, "key2": 12}, ["key2"], "abc") === '{\nabc"key2": 12\n}'); assert (JSON.stringify ({"key1": false, "key2": 12}, ["key1", "key2"], "abc") === '{\nabc"key1": false,\nabc"key2": 12\n}'); assert (JSON.stringify ({"key1": false, "key2": 12}, ["key", "key3"], "abc") === '{}'); + +// Test with proxy +assert(JSON.stringify(new Proxy(['foo'], {})) === '["foo"]'); +assert(JSON.stringify(new Proxy({0:"foo"}, {})) === '{"0":"foo"}'); + +var target = [1,2,3]; +var handler = { + get(target, prop) { + if (prop == "length") + { + throw 42; + } + } +} + +try { + JSON.stringify(new Proxy(target,handler)); + assert(false); +} catch (e) { + assert(e === 42); +} + +var revocable = Proxy.revocable (target, { get (t, p , r) { + if (p == "toJSON") { + revocable.revoke(); + } +}}); +var proxy = revocable.proxy; + +try { + JSON.stringify(proxy); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +// Checking quoting strings +assert(JSON.stringify("ab𬄕c") === '"ab𬄕\\u001fc"'); +assert(JSON.stringify("ab\uDC01cd") === '"ab\\udc01c\\u001fd"'); +assert(JSON.stringify("ab\uDC01cd\uD8331e") === '"ab\\udc01c\\u001fd\\ud8331e"'); + +// Test case where the proxy is already revoked +var handle = Proxy.revocable([], {}); +handle.revoke(); + +try { + JSON.stringify(handle.proxy); + assert(false); +} catch (ex) { + assert(ex instanceof TypeError); +} diff --git a/tests/jerry/es.next/json-superset.js b/tests/jerry/json-superset.js similarity index 100% rename from tests/jerry/es.next/json-superset.js rename to tests/jerry/json-superset.js diff --git a/tests/jerry/es.next/length-property.js b/tests/jerry/length-property.js similarity index 100% rename from tests/jerry/es.next/length-property.js rename to tests/jerry/length-property.js diff --git a/tests/jerry/es.next/let1.js b/tests/jerry/let1.js similarity index 100% rename from tests/jerry/es.next/let1.js rename to tests/jerry/let1.js diff --git a/tests/jerry/es.next/let10.js b/tests/jerry/let10.js similarity index 100% rename from tests/jerry/es.next/let10.js rename to tests/jerry/let10.js diff --git a/tests/jerry/es.next/let11.js b/tests/jerry/let11.js similarity index 100% rename from tests/jerry/es.next/let11.js rename to tests/jerry/let11.js diff --git a/tests/jerry/es.next/let12.js b/tests/jerry/let12.js similarity index 100% rename from tests/jerry/es.next/let12.js rename to tests/jerry/let12.js diff --git a/tests/jerry/es.next/let13.js b/tests/jerry/let13.js similarity index 100% rename from tests/jerry/es.next/let13.js rename to tests/jerry/let13.js diff --git a/tests/jerry/es.next/let14.js b/tests/jerry/let14.js similarity index 100% rename from tests/jerry/es.next/let14.js rename to tests/jerry/let14.js diff --git a/tests/jerry/es.next/let15.js b/tests/jerry/let15.js similarity index 100% rename from tests/jerry/es.next/let15.js rename to tests/jerry/let15.js diff --git a/tests/jerry/es.next/let2.js b/tests/jerry/let2.js similarity index 100% rename from tests/jerry/es.next/let2.js rename to tests/jerry/let2.js diff --git a/tests/jerry/es.next/let3.js b/tests/jerry/let3.js similarity index 100% rename from tests/jerry/es.next/let3.js rename to tests/jerry/let3.js diff --git a/tests/jerry/es.next/let4.js b/tests/jerry/let4.js similarity index 100% rename from tests/jerry/es.next/let4.js rename to tests/jerry/let4.js diff --git a/tests/jerry/es.next/let5.js b/tests/jerry/let5.js similarity index 100% rename from tests/jerry/es.next/let5.js rename to tests/jerry/let5.js diff --git a/tests/jerry/es.next/let6.js b/tests/jerry/let6.js similarity index 100% rename from tests/jerry/es.next/let6.js rename to tests/jerry/let6.js diff --git a/tests/jerry/es.next/let7.js b/tests/jerry/let7.js similarity index 100% rename from tests/jerry/es.next/let7.js rename to tests/jerry/let7.js diff --git a/tests/jerry/es.next/let8.js b/tests/jerry/let8.js similarity index 100% rename from tests/jerry/es.next/let8.js rename to tests/jerry/let8.js diff --git a/tests/jerry/es.next/let9.js b/tests/jerry/let9.js similarity index 100% rename from tests/jerry/es.next/let9.js rename to tests/jerry/let9.js diff --git a/tests/jerry/es.next/logical-assignment.js b/tests/jerry/logical-assignment.js similarity index 100% rename from tests/jerry/es.next/logical-assignment.js rename to tests/jerry/logical-assignment.js diff --git a/tests/jerry/es.next/map-iterators.js b/tests/jerry/map-iterators.js similarity index 100% rename from tests/jerry/es.next/map-iterators.js rename to tests/jerry/map-iterators.js diff --git a/tests/jerry/es.next/map-prototype-foreach.js b/tests/jerry/map-prototype-foreach.js similarity index 100% rename from tests/jerry/es.next/map-prototype-foreach.js rename to tests/jerry/map-prototype-foreach.js diff --git a/tests/jerry/es.next/map.js b/tests/jerry/map.js similarity index 100% rename from tests/jerry/es.next/map.js rename to tests/jerry/map.js diff --git a/tests/jerry/es.next/math-acosh.js b/tests/jerry/math-acosh.js similarity index 100% rename from tests/jerry/es.next/math-acosh.js rename to tests/jerry/math-acosh.js diff --git a/tests/jerry/es.next/math-asinh.js b/tests/jerry/math-asinh.js similarity index 100% rename from tests/jerry/es.next/math-asinh.js rename to tests/jerry/math-asinh.js diff --git a/tests/jerry/es.next/math-atanh.js b/tests/jerry/math-atanh.js similarity index 100% rename from tests/jerry/es.next/math-atanh.js rename to tests/jerry/math-atanh.js diff --git a/tests/jerry/es.next/math-cbrt.js b/tests/jerry/math-cbrt.js similarity index 100% rename from tests/jerry/es.next/math-cbrt.js rename to tests/jerry/math-cbrt.js diff --git a/tests/jerry/es.next/math-cosh.js b/tests/jerry/math-cosh.js similarity index 100% rename from tests/jerry/es.next/math-cosh.js rename to tests/jerry/math-cosh.js diff --git a/tests/jerry/es.next/math-expm1.js b/tests/jerry/math-expm1.js similarity index 100% rename from tests/jerry/es.next/math-expm1.js rename to tests/jerry/math-expm1.js diff --git a/tests/jerry/es.next/math-functions-tonumber-rule2.js b/tests/jerry/math-functions-tonumber-rule2.js similarity index 100% rename from tests/jerry/es.next/math-functions-tonumber-rule2.js rename to tests/jerry/math-functions-tonumber-rule2.js diff --git a/tests/jerry/es.next/math-log10.js b/tests/jerry/math-log10.js similarity index 100% rename from tests/jerry/es.next/math-log10.js rename to tests/jerry/math-log10.js diff --git a/tests/jerry/es.next/math-log1p.js b/tests/jerry/math-log1p.js similarity index 100% rename from tests/jerry/es.next/math-log1p.js rename to tests/jerry/math-log1p.js diff --git a/tests/jerry/es.next/math-log2.js b/tests/jerry/math-log2.js similarity index 100% rename from tests/jerry/es.next/math-log2.js rename to tests/jerry/math-log2.js diff --git a/tests/jerry/es.next/math-sign.js b/tests/jerry/math-sign.js similarity index 100% rename from tests/jerry/es.next/math-sign.js rename to tests/jerry/math-sign.js diff --git a/tests/jerry/es.next/math-sinh.js b/tests/jerry/math-sinh.js similarity index 100% rename from tests/jerry/es.next/math-sinh.js rename to tests/jerry/math-sinh.js diff --git a/tests/jerry/es.next/math-tanh.js b/tests/jerry/math-tanh.js similarity index 100% rename from tests/jerry/es.next/math-tanh.js rename to tests/jerry/math-tanh.js diff --git a/tests/jerry/es.next/math-trunc.js b/tests/jerry/math-trunc.js similarity index 100% rename from tests/jerry/es.next/math-trunc.js rename to tests/jerry/math-trunc.js diff --git a/tests/jerry/es.next/module-circular-01.mjs b/tests/jerry/module-circular-01.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-01.mjs rename to tests/jerry/module-circular-01.mjs diff --git a/tests/jerry/es.next/module-circular-02.mjs b/tests/jerry/module-circular-02.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-02.mjs rename to tests/jerry/module-circular-02.mjs diff --git a/tests/jerry/es.next/module-circular-03.mjs b/tests/jerry/module-circular-03.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-03.mjs rename to tests/jerry/module-circular-03.mjs diff --git a/tests/jerry/es.next/module-circular-04.mjs b/tests/jerry/module-circular-04.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-04.mjs rename to tests/jerry/module-circular-04.mjs diff --git a/tests/jerry/es.next/module-circular-05.mjs b/tests/jerry/module-circular-05.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-05.mjs rename to tests/jerry/module-circular-05.mjs diff --git a/tests/jerry/es.next/module-circular-06.mjs b/tests/jerry/module-circular-06.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-06.mjs rename to tests/jerry/module-circular-06.mjs diff --git a/tests/jerry/es.next/module-circular-07.mjs b/tests/jerry/module-circular-07.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-07.mjs rename to tests/jerry/module-circular-07.mjs diff --git a/tests/jerry/es.next/module-circular-08.mjs b/tests/jerry/module-circular-08.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-08.mjs rename to tests/jerry/module-circular-08.mjs diff --git a/tests/jerry/es.next/module-circular-09.mjs b/tests/jerry/module-circular-09.mjs similarity index 100% rename from tests/jerry/es.next/module-circular-09.mjs rename to tests/jerry/module-circular-09.mjs diff --git a/tests/jerry/es.next/module-dynamic-import.js b/tests/jerry/module-dynamic-import.js similarity index 100% rename from tests/jerry/es.next/module-dynamic-import.js rename to tests/jerry/module-dynamic-import.js diff --git a/tests/jerry/es.next/module-export-01.mjs b/tests/jerry/module-export-01.mjs similarity index 100% rename from tests/jerry/es.next/module-export-01.mjs rename to tests/jerry/module-export-01.mjs diff --git a/tests/jerry/es.next/module-export-02.mjs b/tests/jerry/module-export-02.mjs similarity index 100% rename from tests/jerry/es.next/module-export-02.mjs rename to tests/jerry/module-export-02.mjs diff --git a/tests/jerry/es.next/module-export-03.mjs b/tests/jerry/module-export-03.mjs similarity index 100% rename from tests/jerry/es.next/module-export-03.mjs rename to tests/jerry/module-export-03.mjs diff --git a/tests/jerry/es.next/module-export-04.mjs b/tests/jerry/module-export-04.mjs similarity index 100% rename from tests/jerry/es.next/module-export-04.mjs rename to tests/jerry/module-export-04.mjs diff --git a/tests/jerry/es.next/module-export-05.mjs b/tests/jerry/module-export-05.mjs similarity index 100% rename from tests/jerry/es.next/module-export-05.mjs rename to tests/jerry/module-export-05.mjs diff --git a/tests/jerry/es.next/module-export-06.mjs b/tests/jerry/module-export-06.mjs similarity index 100% rename from tests/jerry/es.next/module-export-06.mjs rename to tests/jerry/module-export-06.mjs diff --git a/tests/jerry/es.next/module-export-07.mjs b/tests/jerry/module-export-07.mjs similarity index 100% rename from tests/jerry/es.next/module-export-07.mjs rename to tests/jerry/module-export-07.mjs diff --git a/tests/jerry/es.next/module-export-08.mjs b/tests/jerry/module-export-08.mjs similarity index 100% rename from tests/jerry/es.next/module-export-08.mjs rename to tests/jerry/module-export-08.mjs diff --git a/tests/jerry/es.next/module-export-09.mjs b/tests/jerry/module-export-09.mjs similarity index 100% rename from tests/jerry/es.next/module-export-09.mjs rename to tests/jerry/module-export-09.mjs diff --git a/tests/jerry/es.next/module-export-10.mjs b/tests/jerry/module-export-10.mjs similarity index 100% rename from tests/jerry/es.next/module-export-10.mjs rename to tests/jerry/module-export-10.mjs diff --git a/tests/jerry/es.next/module-export-default-1.mjs b/tests/jerry/module-export-default-1.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-1.mjs rename to tests/jerry/module-export-default-1.mjs diff --git a/tests/jerry/es.next/module-export-default-10.mjs b/tests/jerry/module-export-default-10.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-10.mjs rename to tests/jerry/module-export-default-10.mjs diff --git a/tests/jerry/es.next/module-export-default-2.mjs b/tests/jerry/module-export-default-2.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-2.mjs rename to tests/jerry/module-export-default-2.mjs diff --git a/tests/jerry/es.next/module-export-default-3.mjs b/tests/jerry/module-export-default-3.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-3.mjs rename to tests/jerry/module-export-default-3.mjs diff --git a/tests/jerry/es.next/module-export-default-4.mjs b/tests/jerry/module-export-default-4.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-4.mjs rename to tests/jerry/module-export-default-4.mjs diff --git a/tests/jerry/es.next/module-export-default-5.mjs b/tests/jerry/module-export-default-5.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-5.mjs rename to tests/jerry/module-export-default-5.mjs diff --git a/tests/jerry/es.next/module-export-default-6.mjs b/tests/jerry/module-export-default-6.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-6.mjs rename to tests/jerry/module-export-default-6.mjs diff --git a/tests/jerry/es.next/module-export-default-7.mjs b/tests/jerry/module-export-default-7.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-7.mjs rename to tests/jerry/module-export-default-7.mjs diff --git a/tests/jerry/es.next/module-export-default-8.mjs b/tests/jerry/module-export-default-8.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-8.mjs rename to tests/jerry/module-export-default-8.mjs diff --git a/tests/jerry/es.next/module-export-default-9.mjs b/tests/jerry/module-export-default-9.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-9.mjs rename to tests/jerry/module-export-default-9.mjs diff --git a/tests/jerry/es.next/module-export-default-main.mjs b/tests/jerry/module-export-default-main.mjs similarity index 100% rename from tests/jerry/es.next/module-export-default-main.mjs rename to tests/jerry/module-export-default-main.mjs diff --git a/tests/jerry/es.next/module-export-fail-test.mjs b/tests/jerry/module-export-fail-test.mjs similarity index 100% rename from tests/jerry/es.next/module-export-fail-test.mjs rename to tests/jerry/module-export-fail-test.mjs diff --git a/tests/jerry/es.next/module-import-01.mjs b/tests/jerry/module-import-01.mjs similarity index 100% rename from tests/jerry/es.next/module-import-01.mjs rename to tests/jerry/module-import-01.mjs diff --git a/tests/jerry/es.next/module-import-02.mjs b/tests/jerry/module-import-02.mjs similarity index 100% rename from tests/jerry/es.next/module-import-02.mjs rename to tests/jerry/module-import-02.mjs diff --git a/tests/jerry/es.next/module-import-03.mjs b/tests/jerry/module-import-03.mjs similarity index 100% rename from tests/jerry/es.next/module-import-03.mjs rename to tests/jerry/module-import-03.mjs diff --git a/tests/jerry/es.next/module-import-04.mjs b/tests/jerry/module-import-04.mjs similarity index 100% rename from tests/jerry/es.next/module-import-04.mjs rename to tests/jerry/module-import-04.mjs diff --git a/tests/jerry/es.next/module-import-05.mjs b/tests/jerry/module-import-05.mjs similarity index 100% rename from tests/jerry/es.next/module-import-05.mjs rename to tests/jerry/module-import-05.mjs diff --git a/tests/jerry/es.next/module-import-06.mjs b/tests/jerry/module-import-06.mjs similarity index 100% rename from tests/jerry/es.next/module-import-06.mjs rename to tests/jerry/module-import-06.mjs diff --git a/tests/jerry/es.next/module-import-07.mjs b/tests/jerry/module-import-07.mjs similarity index 100% rename from tests/jerry/es.next/module-import-07.mjs rename to tests/jerry/module-import-07.mjs diff --git a/tests/jerry/es.next/module-namespace-01.mjs b/tests/jerry/module-namespace-01.mjs similarity index 100% rename from tests/jerry/es.next/module-namespace-01.mjs rename to tests/jerry/module-namespace-01.mjs diff --git a/tests/jerry/es.next/module-namespace-02.mjs b/tests/jerry/module-namespace-02.mjs similarity index 100% rename from tests/jerry/es.next/module-namespace-02.mjs rename to tests/jerry/module-namespace-02.mjs diff --git a/tests/jerry/es.next/module-namespace-03.mjs b/tests/jerry/module-namespace-03.mjs similarity index 100% rename from tests/jerry/es.next/module-namespace-03.mjs rename to tests/jerry/module-namespace-03.mjs diff --git a/tests/jerry/es.next/module-namespace-04.mjs b/tests/jerry/module-namespace-04.mjs similarity index 100% rename from tests/jerry/es.next/module-namespace-04.mjs rename to tests/jerry/module-namespace-04.mjs diff --git a/tests/jerry/es.next/module-source-name-export.mjs b/tests/jerry/module-source-name-export.mjs similarity index 100% rename from tests/jerry/es.next/module-source-name-export.mjs rename to tests/jerry/module-source-name-export.mjs diff --git a/tests/jerry/es.next/module-source-name.mjs b/tests/jerry/module-source-name.mjs similarity index 100% rename from tests/jerry/es.next/module-source-name.mjs rename to tests/jerry/module-source-name.mjs diff --git a/tests/jerry/es.next/new-target-async.js b/tests/jerry/new-target-async.js similarity index 100% rename from tests/jerry/es.next/new-target-async.js rename to tests/jerry/new-target-async.js diff --git a/tests/jerry/es.next/new-target-class.js b/tests/jerry/new-target-class.js similarity index 100% rename from tests/jerry/es.next/new-target-class.js rename to tests/jerry/new-target-class.js diff --git a/tests/jerry/es.next/new-target-error.js b/tests/jerry/new-target-error.js similarity index 100% rename from tests/jerry/es.next/new-target-error.js rename to tests/jerry/new-target-error.js diff --git a/tests/jerry/es.next/new-target-for-boolean.js b/tests/jerry/new-target-for-boolean.js similarity index 100% rename from tests/jerry/es.next/new-target-for-boolean.js rename to tests/jerry/new-target-for-boolean.js diff --git a/tests/jerry/es.next/new-target-for-containers.js b/tests/jerry/new-target-for-containers.js similarity index 100% rename from tests/jerry/es.next/new-target-for-containers.js rename to tests/jerry/new-target-for-containers.js diff --git a/tests/jerry/es.next/new-target-for-dataview.js b/tests/jerry/new-target-for-dataview.js similarity index 100% rename from tests/jerry/es.next/new-target-for-dataview.js rename to tests/jerry/new-target-for-dataview.js diff --git a/tests/jerry/es.next/new-target-for-date-object.js b/tests/jerry/new-target-for-date-object.js similarity index 100% rename from tests/jerry/es.next/new-target-for-date-object.js rename to tests/jerry/new-target-for-date-object.js diff --git a/tests/jerry/es.next/new-target-for-number.js b/tests/jerry/new-target-for-number.js similarity index 100% rename from tests/jerry/es.next/new-target-for-number.js rename to tests/jerry/new-target-for-number.js diff --git a/tests/jerry/es.next/new-target-for-string.js b/tests/jerry/new-target-for-string.js similarity index 100% rename from tests/jerry/es.next/new-target-for-string.js rename to tests/jerry/new-target-for-string.js diff --git a/tests/jerry/es.next/new-target-for-typedarray-and-arraybuffer.js b/tests/jerry/new-target-for-typedarray-and-arraybuffer.js similarity index 100% rename from tests/jerry/es.next/new-target-for-typedarray-and-arraybuffer.js rename to tests/jerry/new-target-for-typedarray-and-arraybuffer.js diff --git a/tests/jerry/es.next/new-target-generator.js b/tests/jerry/new-target-generator.js similarity index 100% rename from tests/jerry/es.next/new-target-generator.js rename to tests/jerry/new-target-generator.js diff --git a/tests/jerry/es.next/new-target.js b/tests/jerry/new-target.js similarity index 100% rename from tests/jerry/es.next/new-target.js rename to tests/jerry/new-target.js diff --git a/tests/jerry/es.next/nullish-coalescing.js b/tests/jerry/nullish-coalescing.js similarity index 100% rename from tests/jerry/es.next/nullish-coalescing.js rename to tests/jerry/nullish-coalescing.js diff --git a/tests/jerry/es.next/number-constants.js b/tests/jerry/number-constants.js similarity index 100% rename from tests/jerry/es.next/number-constants.js rename to tests/jerry/number-constants.js diff --git a/tests/jerry/es.next/number-isfinite.js b/tests/jerry/number-isfinite.js similarity index 100% rename from tests/jerry/es.next/number-isfinite.js rename to tests/jerry/number-isfinite.js diff --git a/tests/jerry/es.next/number-isinteger.js b/tests/jerry/number-isinteger.js similarity index 100% rename from tests/jerry/es.next/number-isinteger.js rename to tests/jerry/number-isinteger.js diff --git a/tests/jerry/es.next/number-isnan.js b/tests/jerry/number-isnan.js similarity index 100% rename from tests/jerry/es.next/number-isnan.js rename to tests/jerry/number-isnan.js diff --git a/tests/jerry/es.next/number-issafeinteger.js b/tests/jerry/number-issafeinteger.js similarity index 100% rename from tests/jerry/es.next/number-issafeinteger.js rename to tests/jerry/number-issafeinteger.js diff --git a/tests/jerry/es.next/number-methods.js b/tests/jerry/number-methods.js similarity index 100% rename from tests/jerry/es.next/number-methods.js rename to tests/jerry/number-methods.js diff --git a/tests/jerry/es.next/numeric-separator.js b/tests/jerry/numeric-separator.js similarity index 100% rename from tests/jerry/es.next/numeric-separator.js rename to tests/jerry/numeric-separator.js diff --git a/tests/jerry/es.next/object-assign.js b/tests/jerry/object-assign.js similarity index 100% rename from tests/jerry/es.next/object-assign.js rename to tests/jerry/object-assign.js diff --git a/tests/jerry/es.next/object-computed-prescanner.js b/tests/jerry/object-computed-prescanner.js similarity index 100% rename from tests/jerry/es.next/object-computed-prescanner.js rename to tests/jerry/object-computed-prescanner.js diff --git a/tests/jerry/es.next/object-computed.js b/tests/jerry/object-computed.js similarity index 100% rename from tests/jerry/es.next/object-computed.js rename to tests/jerry/object-computed.js diff --git a/tests/jerry/es.next/object-copy-data.js b/tests/jerry/object-copy-data.js similarity index 100% rename from tests/jerry/es.next/object-copy-data.js rename to tests/jerry/object-copy-data.js diff --git a/tests/jerry/object-define-properties.js b/tests/jerry/object-define-properties.js index 0579e44bf..d74b81d71 100644 --- a/tests/jerry/object-define-properties.js +++ b/tests/jerry/object-define-properties.js @@ -207,3 +207,139 @@ assert(prop1_desc.value === 1); assert(prop1_desc.writable === true); assert(prop3_desc.value === 4); assert(prop3_desc.writable === true); + +var object = {}; +var symbol = Symbol("symbol"); + +Object.defineProperties(object, { + "foo": { + value: true, + writable: true + }, + [symbol]: { + value: "a symbol", + configurable: true + } +}); + +assert (object.foo === true); +assert (object[symbol] === "a symbol"); + +try { + Object.defineProperties(undefined, { + [symbol]: { + value: "a symbol", + writable: true + } + }); + assert (false); +} catch (e) { + assert (e instanceof TypeError); +} + +// If one of the properties is wrong than it shouldn't update the object. +var obj2 = { + a: 5 +}; +try { + Object.defineProperties(obj2, { + "foo": { + value: true, + writable: true + }, + [symbol]: { + value: "a symbol", + set: 3 + } + }); + assert (false); +} catch (e) { + assert (e instanceof TypeError); + assert (obj2.foo === undefined); + assert (obj2[symbol] === undefined); + assert (obj2.a === 5); +} + +// Define accessors +var object = {}; +Object.defineProperties(object, { + "foo": { + value: 42, + writable: true, + }, + [symbol]: { + get: function() { return this.foo }, + set: function(v) { this.foo = v } + } +}); + +assert (object[symbol] === 42); +object[symbol] = "baz"; +assert (object[symbol] === "baz"); + +// Define get method which throws error +var object = {}; +var props = { + [symbol]: { + value: 3, + writable: true + }, + get bar() { + throw new TypeError("foo"); + return { value : 2, writable : true }; + }, +}; + +try { + Object.defineProperties(object, props); + assert (false); +} catch (e) { + assert (e instanceof TypeError); + assert (e.message === "foo"); +} +// Define get method which deletes a property +var object = {}; +Object.defineProperties(object, { + "foo": { + value: 42, + writable: true, + }, + [symbol]: { + value: "a symbol", + configurable: true + }, + "bar": { + get: function() { + delete this[symbol]; + return this.foo; + }, + } +}); + +assert (object[symbol] === "a symbol"); +assert (object.bar === 42); +assert (object[symbol] === undefined); + +var object = {}; +var props = { + [symbol]: { + value: "a symbol", + configurable: true + }, + get bar() { + delete props[symbol]; + delete props.prop1; + return { value : 2, writable : true }; + }, + prop1: { + value: 3, + writable: true, + }, +}; + +Object.defineProperties(object, props); +var bar_desc = Object.getOwnPropertyDescriptor(object, 'bar'); +assert(bar_desc.value === 2); +assert(bar_desc.writable === true); +assert(object.prop1 === undefined); +assert(object[symbol] === undefined); diff --git a/tests/jerry/es.next/object-entries.js b/tests/jerry/object-entries.js similarity index 100% rename from tests/jerry/es.next/object-entries.js rename to tests/jerry/object-entries.js diff --git a/tests/jerry/es.next/object-freeze-with-symbol.js b/tests/jerry/object-freeze-with-symbol.js similarity index 100% rename from tests/jerry/es.next/object-freeze-with-symbol.js rename to tests/jerry/object-freeze-with-symbol.js diff --git a/tests/jerry/es.next/object-fromEntries.js b/tests/jerry/object-fromEntries.js similarity index 100% rename from tests/jerry/es.next/object-fromEntries.js rename to tests/jerry/object-fromEntries.js diff --git a/tests/jerry/es.next/object-get-own-property-descriptors.js b/tests/jerry/object-get-own-property-descriptors.js similarity index 100% rename from tests/jerry/es.next/object-get-own-property-descriptors.js rename to tests/jerry/object-get-own-property-descriptors.js diff --git a/tests/jerry/object-get-own-property-names.js b/tests/jerry/object-get-own-property-names.js index 0cb4ac2c8..c597af8f7 100644 --- a/tests/jerry/object-get-own-property-names.js +++ b/tests/jerry/object-get-own-property-names.js @@ -62,3 +62,12 @@ assert (props.indexOf("prop") !== -1); assert (props.indexOf("method") !== -1); assert (props.length === 2); + +// Check that Object.getOwnPropertyNames does NOT include Symbols by default. +var asd = Symbol ("asd"); +var foo = Symbol ("foo"); +var bar = Symbol ("bar"); +var result = Object.getOwnPropertyNames ({1: 5, "a": 6, [foo]: 7, [asd]: 8, [bar]: 9}); +assert (!Object.hasOwnProperty (result, foo)); +assert (!Object.hasOwnProperty (result, asd)); +assert (!Object.hasOwnProperty (result, bar)); diff --git a/tests/jerry/es.next/object-get-own-property-symbols.js b/tests/jerry/object-get-own-property-symbols.js similarity index 100% rename from tests/jerry/es.next/object-get-own-property-symbols.js rename to tests/jerry/object-get-own-property-symbols.js diff --git a/tests/jerry/es.next/object-getprototypeof.js b/tests/jerry/object-getprototypeof.js similarity index 100% rename from tests/jerry/es.next/object-getprototypeof.js rename to tests/jerry/object-getprototypeof.js diff --git a/tests/jerry/es.next/object-hasown.js b/tests/jerry/object-hasown.js similarity index 100% rename from tests/jerry/es.next/object-hasown.js rename to tests/jerry/object-hasown.js diff --git a/tests/jerry/es.next/object-initializer.js b/tests/jerry/object-initializer.js similarity index 100% rename from tests/jerry/es.next/object-initializer.js rename to tests/jerry/object-initializer.js diff --git a/tests/jerry/es.next/object-is.js b/tests/jerry/object-is.js similarity index 100% rename from tests/jerry/es.next/object-is.js rename to tests/jerry/object-is.js diff --git a/tests/jerry/object-keys.js b/tests/jerry/object-keys.js index e359233f9..533097b46 100644 --- a/tests/jerry/object-keys.js +++ b/tests/jerry/object-keys.js @@ -88,3 +88,36 @@ props = Object.keys(o); assert(props.length === 2); assert(o[props[0]] === "OK"); assert(o[props[1]] === "OK"); + +var object = {}; + +Object.defineProperties(object, { + a: { + value: "foo", + enumerable: false + }, + b: { + value: "bar", + enumerable: true, + writable: false + } +}); + +var proxy = new Proxy(object, { + getOwnPropertyDescriptor: function(o, v) { + handlers.push("D"); + return Object.getOwnPropertyDescriptor(o, v); + }, + get: function(o, v) { + handlers.push("G"); + return o[v]; + } +}); + +var handlers = []; +var keys = Object.keys(proxy); + +assert(keys.length === 1); +assert(keys[0] === "b"); +assert(handlers.length === 2); +assert(handlers.toString() === "D,D"); diff --git a/tests/jerry/es.next/object-literal-super.js b/tests/jerry/object-literal-super.js similarity index 100% rename from tests/jerry/es.next/object-literal-super.js rename to tests/jerry/object-literal-super.js diff --git a/tests/jerry/es.next/object-methods.js b/tests/jerry/object-methods.js similarity index 100% rename from tests/jerry/es.next/object-methods.js rename to tests/jerry/object-methods.js diff --git a/tests/jerry/es.next/object-pattern.js b/tests/jerry/object-pattern.js similarity index 100% rename from tests/jerry/es.next/object-pattern.js rename to tests/jerry/object-pattern.js diff --git a/tests/jerry/es.next/object-pattern2.js b/tests/jerry/object-pattern2.js similarity index 100% rename from tests/jerry/es.next/object-pattern2.js rename to tests/jerry/object-pattern2.js diff --git a/tests/jerry/es.next/object-property-redefiniton.js b/tests/jerry/object-property-redefiniton.js similarity index 100% rename from tests/jerry/es.next/object-property-redefiniton.js rename to tests/jerry/object-property-redefiniton.js diff --git a/tests/jerry/es.next/object-prototype-define-getter.js b/tests/jerry/object-prototype-define-getter.js similarity index 100% rename from tests/jerry/es.next/object-prototype-define-getter.js rename to tests/jerry/object-prototype-define-getter.js diff --git a/tests/jerry/es.next/object-prototype-define-setter.js b/tests/jerry/object-prototype-define-setter.js similarity index 100% rename from tests/jerry/es.next/object-prototype-define-setter.js rename to tests/jerry/object-prototype-define-setter.js diff --git a/tests/jerry/es.next/object-prototype-lookup-getter.js b/tests/jerry/object-prototype-lookup-getter.js similarity index 100% rename from tests/jerry/es.next/object-prototype-lookup-getter.js rename to tests/jerry/object-prototype-lookup-getter.js diff --git a/tests/jerry/es.next/object-prototype-lookup-setter.js b/tests/jerry/object-prototype-lookup-setter.js similarity index 100% rename from tests/jerry/es.next/object-prototype-lookup-setter.js rename to tests/jerry/object-prototype-lookup-setter.js diff --git a/tests/jerry/es.next/object-prototype-proto.js b/tests/jerry/object-prototype-proto.js similarity index 100% rename from tests/jerry/es.next/object-prototype-proto.js rename to tests/jerry/object-prototype-proto.js diff --git a/tests/jerry/es.next/object-prototype-tostring.js b/tests/jerry/object-prototype-tostring.js similarity index 100% rename from tests/jerry/es.next/object-prototype-tostring.js rename to tests/jerry/object-prototype-tostring.js diff --git a/tests/jerry/es.next/object-seal-with-symbol.js b/tests/jerry/object-seal-with-symbol.js similarity index 100% rename from tests/jerry/es.next/object-seal-with-symbol.js rename to tests/jerry/object-seal-with-symbol.js diff --git a/tests/jerry/es.next/object-values.js b/tests/jerry/object-values.js similarity index 100% rename from tests/jerry/es.next/object-values.js rename to tests/jerry/object-values.js diff --git a/tests/jerry/es.next/octal-literal.js b/tests/jerry/octal-literal.js similarity index 100% rename from tests/jerry/es.next/octal-literal.js rename to tests/jerry/octal-literal.js diff --git a/tests/jerry/es.next/parser-additive-op-assign.js b/tests/jerry/parser-additive-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-additive-op-assign.js rename to tests/jerry/parser-additive-op-assign.js diff --git a/tests/jerry/es.next/parser-binary-bitwise-op-assign-1.js b/tests/jerry/parser-binary-bitwise-op-assign-1.js similarity index 100% rename from tests/jerry/es.next/parser-binary-bitwise-op-assign-1.js rename to tests/jerry/parser-binary-bitwise-op-assign-1.js diff --git a/tests/jerry/es.next/parser-binary-bitwise-op-assign-2.js b/tests/jerry/parser-binary-bitwise-op-assign-2.js similarity index 100% rename from tests/jerry/es.next/parser-binary-bitwise-op-assign-2.js rename to tests/jerry/parser-binary-bitwise-op-assign-2.js diff --git a/tests/jerry/es.next/parser-binary-bitwise-op-assign-3.js b/tests/jerry/parser-binary-bitwise-op-assign-3.js similarity index 100% rename from tests/jerry/es.next/parser-binary-bitwise-op-assign-3.js rename to tests/jerry/parser-binary-bitwise-op-assign-3.js diff --git a/tests/jerry/es.next/parser-binary-logical-op-assign.js b/tests/jerry/parser-binary-logical-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-binary-logical-op-assign.js rename to tests/jerry/parser-binary-logical-op-assign.js diff --git a/tests/jerry/es.next/parser-covered-parenthesized-exp-assign.js b/tests/jerry/parser-covered-parenthesized-exp-assign.js similarity index 100% rename from tests/jerry/es.next/parser-covered-parenthesized-exp-assign.js rename to tests/jerry/parser-covered-parenthesized-exp-assign.js diff --git a/tests/jerry/es.next/parser-delete-op-assign.js b/tests/jerry/parser-delete-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-delete-op-assign.js rename to tests/jerry/parser-delete-op-assign.js diff --git a/tests/jerry/es.next/parser-equality-exp-assign-1.js b/tests/jerry/parser-equality-exp-assign-1.js similarity index 100% rename from tests/jerry/es.next/parser-equality-exp-assign-1.js rename to tests/jerry/parser-equality-exp-assign-1.js diff --git a/tests/jerry/es.next/parser-equality-exp-assign-2.js b/tests/jerry/parser-equality-exp-assign-2.js similarity index 100% rename from tests/jerry/es.next/parser-equality-exp-assign-2.js rename to tests/jerry/parser-equality-exp-assign-2.js diff --git a/tests/jerry/es.next/parser-mult-op-assign-1.js b/tests/jerry/parser-mult-op-assign-1.js similarity index 100% rename from tests/jerry/es.next/parser-mult-op-assign-1.js rename to tests/jerry/parser-mult-op-assign-1.js diff --git a/tests/jerry/es.next/parser-mult-op-assign-2.js b/tests/jerry/parser-mult-op-assign-2.js similarity index 100% rename from tests/jerry/es.next/parser-mult-op-assign-2.js rename to tests/jerry/parser-mult-op-assign-2.js diff --git a/tests/jerry/es.next/parser-mult-op-assign-3.js b/tests/jerry/parser-mult-op-assign-3.js similarity index 100% rename from tests/jerry/es.next/parser-mult-op-assign-3.js rename to tests/jerry/parser-mult-op-assign-3.js diff --git a/tests/jerry/es.next/parser-not-op-assign.js b/tests/jerry/parser-not-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-not-op-assign.js rename to tests/jerry/parser-not-op-assign.js diff --git a/tests/jerry/es.next/parser-plus-negation-op-assign.js b/tests/jerry/parser-plus-negation-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-plus-negation-op-assign.js rename to tests/jerry/parser-plus-negation-op-assign.js diff --git a/tests/jerry/es.next/parser-postfix-exp-assign.js b/tests/jerry/parser-postfix-exp-assign.js similarity index 100% rename from tests/jerry/es.next/parser-postfix-exp-assign.js rename to tests/jerry/parser-postfix-exp-assign.js diff --git a/tests/jerry/es.next/parser-prefix-exp-assign.js b/tests/jerry/parser-prefix-exp-assign.js similarity index 100% rename from tests/jerry/es.next/parser-prefix-exp-assign.js rename to tests/jerry/parser-prefix-exp-assign.js diff --git a/tests/jerry/es.next/parser-rational-exp-assign-1.js b/tests/jerry/parser-rational-exp-assign-1.js similarity index 100% rename from tests/jerry/es.next/parser-rational-exp-assign-1.js rename to tests/jerry/parser-rational-exp-assign-1.js diff --git a/tests/jerry/es.next/parser-rational-exp-assign-2.js b/tests/jerry/parser-rational-exp-assign-2.js similarity index 100% rename from tests/jerry/es.next/parser-rational-exp-assign-2.js rename to tests/jerry/parser-rational-exp-assign-2.js diff --git a/tests/jerry/es.next/parser-shift-exp-assign.js b/tests/jerry/parser-shift-exp-assign.js similarity index 100% rename from tests/jerry/es.next/parser-shift-exp-assign.js rename to tests/jerry/parser-shift-exp-assign.js diff --git a/tests/jerry/es.next/parser-typeof-op-assign.js b/tests/jerry/parser-typeof-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-typeof-op-assign.js rename to tests/jerry/parser-typeof-op-assign.js diff --git a/tests/jerry/es.next/parser-void-op-assign.js b/tests/jerry/parser-void-op-assign.js similarity index 100% rename from tests/jerry/es.next/parser-void-op-assign.js rename to tests/jerry/parser-void-op-assign.js diff --git a/tests/jerry/es.next/private_fields.js b/tests/jerry/private_fields.js similarity index 100% rename from tests/jerry/es.next/private_fields.js rename to tests/jerry/private_fields.js diff --git a/tests/jerry/es.next/promise-all-iterator.js b/tests/jerry/promise-all-iterator.js similarity index 100% rename from tests/jerry/es.next/promise-all-iterator.js rename to tests/jerry/promise-all-iterator.js diff --git a/tests/jerry/es.next/promise-all-settled.js b/tests/jerry/promise-all-settled.js similarity index 100% rename from tests/jerry/es.next/promise-all-settled.js rename to tests/jerry/promise-all-settled.js diff --git a/tests/jerry/es.next/promise-any.js b/tests/jerry/promise-any.js similarity index 100% rename from tests/jerry/es.next/promise-any.js rename to tests/jerry/promise-any.js diff --git a/tests/jerry/es.next/promise-new-target.js b/tests/jerry/promise-new-target.js similarity index 100% rename from tests/jerry/es.next/promise-new-target.js rename to tests/jerry/promise-new-target.js diff --git a/tests/jerry/es.next/promise-on-finally.js b/tests/jerry/promise-on-finally.js similarity index 100% rename from tests/jerry/es.next/promise-on-finally.js rename to tests/jerry/promise-on-finally.js diff --git a/tests/jerry/es.next/promise-race-iterator.js b/tests/jerry/promise-race-iterator.js similarity index 100% rename from tests/jerry/es.next/promise-race-iterator.js rename to tests/jerry/promise-race-iterator.js diff --git a/tests/jerry/es.next/promise-species.js b/tests/jerry/promise-species.js similarity index 100% rename from tests/jerry/es.next/promise-species.js rename to tests/jerry/promise-species.js diff --git a/tests/jerry/es.next/promise-thenable.js b/tests/jerry/promise-thenable.js similarity index 100% rename from tests/jerry/es.next/promise-thenable.js rename to tests/jerry/promise-thenable.js diff --git a/tests/jerry/es.next/proxy-date-prototype-json.js b/tests/jerry/proxy-date-prototype-json.js similarity index 100% rename from tests/jerry/es.next/proxy-date-prototype-json.js rename to tests/jerry/proxy-date-prototype-json.js diff --git a/tests/jerry/es.next/proxy-evil-recursion.js b/tests/jerry/proxy-evil-recursion.js similarity index 100% rename from tests/jerry/es.next/proxy-evil-recursion.js rename to tests/jerry/proxy-evil-recursion.js diff --git a/tests/jerry/es.next/proxy-extension.js b/tests/jerry/proxy-extension.js similarity index 100% rename from tests/jerry/es.next/proxy-extension.js rename to tests/jerry/proxy-extension.js diff --git a/tests/jerry/es.next/proxy-for-in.js b/tests/jerry/proxy-for-in.js similarity index 100% rename from tests/jerry/es.next/proxy-for-in.js rename to tests/jerry/proxy-for-in.js diff --git a/tests/jerry/es.next/proxy_call.js b/tests/jerry/proxy_call.js similarity index 100% rename from tests/jerry/es.next/proxy_call.js rename to tests/jerry/proxy_call.js diff --git a/tests/jerry/es.next/proxy_construct.js b/tests/jerry/proxy_construct.js similarity index 100% rename from tests/jerry/es.next/proxy_construct.js rename to tests/jerry/proxy_construct.js diff --git a/tests/jerry/es.next/proxy_create.js b/tests/jerry/proxy_create.js similarity index 100% rename from tests/jerry/es.next/proxy_create.js rename to tests/jerry/proxy_create.js diff --git a/tests/jerry/es.next/proxy_define_own_property.js b/tests/jerry/proxy_define_own_property.js similarity index 100% rename from tests/jerry/es.next/proxy_define_own_property.js rename to tests/jerry/proxy_define_own_property.js diff --git a/tests/jerry/es.next/proxy_delete.js b/tests/jerry/proxy_delete.js similarity index 100% rename from tests/jerry/es.next/proxy_delete.js rename to tests/jerry/proxy_delete.js diff --git a/tests/jerry/es.next/proxy_flags.js b/tests/jerry/proxy_flags.js similarity index 100% rename from tests/jerry/es.next/proxy_flags.js rename to tests/jerry/proxy_flags.js diff --git a/tests/jerry/es.next/proxy_get.js b/tests/jerry/proxy_get.js similarity index 100% rename from tests/jerry/es.next/proxy_get.js rename to tests/jerry/proxy_get.js diff --git a/tests/jerry/es.next/proxy_get_own_property_descriptor.js b/tests/jerry/proxy_get_own_property_descriptor.js similarity index 100% rename from tests/jerry/es.next/proxy_get_own_property_descriptor.js rename to tests/jerry/proxy_get_own_property_descriptor.js diff --git a/tests/jerry/es.next/proxy_get_prototoype_of.js b/tests/jerry/proxy_get_prototoype_of.js similarity index 100% rename from tests/jerry/es.next/proxy_get_prototoype_of.js rename to tests/jerry/proxy_get_prototoype_of.js diff --git a/tests/jerry/es.next/proxy_has.js b/tests/jerry/proxy_has.js similarity index 100% rename from tests/jerry/es.next/proxy_has.js rename to tests/jerry/proxy_has.js diff --git a/tests/jerry/es.next/proxy_is_extensible.js b/tests/jerry/proxy_is_extensible.js similarity index 100% rename from tests/jerry/es.next/proxy_is_extensible.js rename to tests/jerry/proxy_is_extensible.js diff --git a/tests/jerry/es.next/proxy_own_keys.js b/tests/jerry/proxy_own_keys.js similarity index 100% rename from tests/jerry/es.next/proxy_own_keys.js rename to tests/jerry/proxy_own_keys.js diff --git a/tests/jerry/es.next/proxy_prevent_extensions.js b/tests/jerry/proxy_prevent_extensions.js similarity index 100% rename from tests/jerry/es.next/proxy_prevent_extensions.js rename to tests/jerry/proxy_prevent_extensions.js diff --git a/tests/jerry/es.next/proxy_revocable.js b/tests/jerry/proxy_revocable.js similarity index 100% rename from tests/jerry/es.next/proxy_revocable.js rename to tests/jerry/proxy_revocable.js diff --git a/tests/jerry/es.next/proxy_set.js b/tests/jerry/proxy_set.js similarity index 100% rename from tests/jerry/es.next/proxy_set.js rename to tests/jerry/proxy_set.js diff --git a/tests/jerry/es.next/proxy_set_apply_receiver.js b/tests/jerry/proxy_set_apply_receiver.js similarity index 100% rename from tests/jerry/es.next/proxy_set_apply_receiver.js rename to tests/jerry/proxy_set_apply_receiver.js diff --git a/tests/jerry/es.next/proxy_set_prototoype_of.js b/tests/jerry/proxy_set_prototoype_of.js similarity index 100% rename from tests/jerry/es.next/proxy_set_prototoype_of.js rename to tests/jerry/proxy_set_prototoype_of.js diff --git a/tests/jerry/es.next/realms1.js b/tests/jerry/realms1.js similarity index 100% rename from tests/jerry/es.next/realms1.js rename to tests/jerry/realms1.js diff --git a/tests/jerry/es.next/realms2.js b/tests/jerry/realms2.js similarity index 100% rename from tests/jerry/es.next/realms2.js rename to tests/jerry/realms2.js diff --git a/tests/jerry/es.next/realms3.js b/tests/jerry/realms3.js similarity index 100% rename from tests/jerry/es.next/realms3.js rename to tests/jerry/realms3.js diff --git a/tests/jerry/es.next/realms4.js b/tests/jerry/realms4.js similarity index 100% rename from tests/jerry/es.next/realms4.js rename to tests/jerry/realms4.js diff --git a/tests/jerry/es.next/reflect-apply.js b/tests/jerry/reflect-apply.js similarity index 100% rename from tests/jerry/es.next/reflect-apply.js rename to tests/jerry/reflect-apply.js diff --git a/tests/jerry/es.next/reflect-construct.js b/tests/jerry/reflect-construct.js similarity index 100% rename from tests/jerry/es.next/reflect-construct.js rename to tests/jerry/reflect-construct.js diff --git a/tests/jerry/es.next/reflect-define-Property.js b/tests/jerry/reflect-define-Property.js similarity index 100% rename from tests/jerry/es.next/reflect-define-Property.js rename to tests/jerry/reflect-define-Property.js diff --git a/tests/jerry/es.next/reflect-deleteproperty.js b/tests/jerry/reflect-deleteproperty.js similarity index 100% rename from tests/jerry/es.next/reflect-deleteproperty.js rename to tests/jerry/reflect-deleteproperty.js diff --git a/tests/jerry/es.next/reflect-get-own-property-description.js b/tests/jerry/reflect-get-own-property-description.js similarity index 100% rename from tests/jerry/es.next/reflect-get-own-property-description.js rename to tests/jerry/reflect-get-own-property-description.js diff --git a/tests/jerry/es.next/reflect-get.js b/tests/jerry/reflect-get.js similarity index 100% rename from tests/jerry/es.next/reflect-get.js rename to tests/jerry/reflect-get.js diff --git a/tests/jerry/es.next/reflect-getPrototypeOf.js b/tests/jerry/reflect-getPrototypeOf.js similarity index 100% rename from tests/jerry/es.next/reflect-getPrototypeOf.js rename to tests/jerry/reflect-getPrototypeOf.js diff --git a/tests/jerry/es.next/reflect-has.js b/tests/jerry/reflect-has.js similarity index 100% rename from tests/jerry/es.next/reflect-has.js rename to tests/jerry/reflect-has.js diff --git a/tests/jerry/es.next/reflect-isextensible.js b/tests/jerry/reflect-isextensible.js similarity index 100% rename from tests/jerry/es.next/reflect-isextensible.js rename to tests/jerry/reflect-isextensible.js diff --git a/tests/jerry/es.next/reflect-own-keys.js b/tests/jerry/reflect-own-keys.js similarity index 100% rename from tests/jerry/es.next/reflect-own-keys.js rename to tests/jerry/reflect-own-keys.js diff --git a/tests/jerry/es.next/reflect-preventextensions.js b/tests/jerry/reflect-preventextensions.js similarity index 100% rename from tests/jerry/es.next/reflect-preventextensions.js rename to tests/jerry/reflect-preventextensions.js diff --git a/tests/jerry/es.next/reflect-set.js b/tests/jerry/reflect-set.js similarity index 100% rename from tests/jerry/es.next/reflect-set.js rename to tests/jerry/reflect-set.js diff --git a/tests/jerry/es.next/reflect-setPrototypeOf.js b/tests/jerry/reflect-setPrototypeOf.js similarity index 100% rename from tests/jerry/es.next/reflect-setPrototypeOf.js rename to tests/jerry/reflect-setPrototypeOf.js diff --git a/tests/jerry/es.next/regexp-accessors-descriptors.js b/tests/jerry/regexp-accessors-descriptors.js similarity index 100% rename from tests/jerry/es.next/regexp-accessors-descriptors.js rename to tests/jerry/regexp-accessors-descriptors.js diff --git a/tests/jerry/regexp-construct.js b/tests/jerry/regexp-construct.js index e33dbc8b9..3d8eac630 100644 --- a/tests/jerry/regexp-construct.js +++ b/tests/jerry/regexp-construct.js @@ -128,3 +128,47 @@ assert (r.multiline == false); /* RegExp properties */ assert (RegExp.length === 2); + +var r = RegExp ("a","gim"); +var r2 = RegExp (r,"gim"); +var r3 = RegExp (r); + +assert(r2.source === 'a'); +assert(r2.global === true); +assert(r2.ignoreCase === true); +assert(r2.multiline === true); + +assert(r3.source === 'a'); +assert(r3.global === true); +assert(r3.ignoreCase === true); +assert(r3.multiline === true); + +var obj = { get source() { throw 5 }, [Symbol.match] : true } + +try { + new RegExp (obj); + assert(false) +} catch (e) { + assert(e === 5); +} + +r = new RegExp ("a","gimuy"); +assert (r.global === true); +assert (r.ignoreCase === true); +assert (r.multiline === true); +assert (r.unicode === true); +assert (r.sticky === true); + +try { + new RegExp ("a", "uu"); + assert (false); +} catch (e) { + assert (e instanceof SyntaxError); +} + +try { + new RegExp ("a", "yy"); + assert (false); +} catch (e) { + assert (e instanceof SyntaxError); +} diff --git a/tests/jerry/es.next/regexp-dotAll.js b/tests/jerry/regexp-dotAll.js similarity index 100% rename from tests/jerry/es.next/regexp-dotAll.js rename to tests/jerry/regexp-dotAll.js diff --git a/tests/jerry/es.next/regexp-flags.js b/tests/jerry/regexp-flags.js similarity index 100% rename from tests/jerry/es.next/regexp-flags.js rename to tests/jerry/regexp-flags.js diff --git a/tests/jerry/es.next/regexp-lastindex.js b/tests/jerry/regexp-lastindex.js similarity index 100% rename from tests/jerry/es.next/regexp-lastindex.js rename to tests/jerry/regexp-lastindex.js diff --git a/tests/jerry/es.next/regexp-new-target.js b/tests/jerry/regexp-new-target.js similarity index 100% rename from tests/jerry/es.next/regexp-new-target.js rename to tests/jerry/regexp-new-target.js diff --git a/tests/jerry/es.next/regexp-prototype-match-all.js b/tests/jerry/regexp-prototype-match-all.js similarity index 100% rename from tests/jerry/es.next/regexp-prototype-match-all.js rename to tests/jerry/regexp-prototype-match-all.js diff --git a/tests/jerry/es.next/regexp-prototype-match.js b/tests/jerry/regexp-prototype-match.js similarity index 100% rename from tests/jerry/es.next/regexp-prototype-match.js rename to tests/jerry/regexp-prototype-match.js diff --git a/tests/jerry/es.next/regexp-prototype-source.js b/tests/jerry/regexp-prototype-source.js similarity index 100% rename from tests/jerry/es.next/regexp-prototype-source.js rename to tests/jerry/regexp-prototype-source.js diff --git a/tests/jerry/es.next/regexp-prototype-split.js b/tests/jerry/regexp-prototype-split.js similarity index 100% rename from tests/jerry/es.next/regexp-prototype-split.js rename to tests/jerry/regexp-prototype-split.js diff --git a/tests/jerry/es.next/regexp-prototype-test.js b/tests/jerry/regexp-prototype-test.js similarity index 100% rename from tests/jerry/es.next/regexp-prototype-test.js rename to tests/jerry/regexp-prototype-test.js diff --git a/tests/jerry/regexp-routines.js b/tests/jerry/regexp-routines.js index e4660f7ff..99e7885b8 100644 --- a/tests/jerry/regexp-routines.js +++ b/tests/jerry/regexp-routines.js @@ -115,3 +115,203 @@ try { } catch (e) { assert (e === "abrupt lastIndex"); } + + +var r = new RegExp('a', 'gimuy'); +assert (r.flags === 'gimuy'); +assert (r.toString() === '/a/gimuy'); + +try { + Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call(42); + assert (false); +} catch (e) { + assert (e instanceof TypeError); +} + +var o = { + global: true, + unicode: true, + sticky: true, + source: "str" +} + +Object.defineProperty(o, 'flags', Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags')); +assert(o.flags === "guy"); +assert (RegExp.prototype.toString.call (o) === "/str/guy"); + +Object.defineProperty(o, 'multiline', { 'get': function () {throw "abrupt flag get"; }}); +try { + o.flags + assert (false); +} catch (e) { + assert (e === "abrupt flag get"); +} + +try { + RegExp.prototype.toString.call(42); + assert (false); +} catch (e) { + assert (e instanceof TypeError); +} + +assert (RegExp.prototype.toString.call({}) === "/undefined/undefined"); + +var o = {}; +Object.defineProperty (o, 'source', { 'get' : function () {throw "abrupt source get"; } }); +try { + RegExp.prototype.toString.call(o); + assert (false); +} catch (e) { + assert (e === "abrupt source get"); +} + +var o = {source: {toString: function() {throw "abrupt source toString";}}}; +try { + RegExp.prototype.toString.call(o); + assert (false); +} catch (e) { + assert (e === "abrupt source toString"); +} + +var o = {source: "str"}; +Object.defineProperty (o, 'flags', { 'get' : function () {throw "abrupt flags get"; } }); +try { + RegExp.prototype.toString.call(o); + assert (false); +} catch (e) { + assert (e === "abrupt flags get"); +} + +var o = {source: "str", flags: {toString: function() {throw "abrupt flags toString";}}}; +try { + RegExp.prototype.toString.call(o); + assert (false); +} catch (e) { + assert (e === "abrupt flags toString"); +} + +var o = { + global: true, + source: "str" +} + +Object.defineProperty(o, 'unicode', { 'get': function () {throw "abrupt unicode get"; }}); +try { + RegExp.prototype[Symbol.match].call(o, "str"); + assert (false); +} catch (e) { + assert (e === "abrupt unicode get"); +} + +assert ("str𐲡fgh".replace(/(?:)/gu, "x") === 'xsxtxrx𐲡xfxgxhx'); +assert ("str𐲡fgh".replace(/(?:)/g, "x") === 'xsxtxrx\ud803x\udca1xfxgxhx'); + +r = /(?:)/gu; +/* Disable fast path. */ +r.exec = function (s) { return RegExp.prototype.exec.call(this, s); }; + +assert ("str𐲡fgh".replace(r, "x") === 'xsxtxrx𐲡xfxgxhx'); +Object.defineProperty(r, 'unicode', {value: false}); +assert ("str𐲡fgh".replace(r, "x") === 'xsxtxrx\ud803x\udca1xfxgxhx'); + +r = /(?:)/gu; +assert (RegExp.prototype[Symbol.match].call(r, "str𐲡fgh").length === 8); +Object.defineProperty(r, 'unicode', {value: false}); +assert (RegExp.prototype[Symbol.match].call(r, "str𐲡fgh").length === 9); + +r = /(?:)/gy; +r.lastIndex = 2; +assert ("asd".replace(r, "x") === "xaxsxdx"); +assert (r.lastIndex === 0); + +r.lastIndex = 5; +assert ("asd".replace(r, "x") === "xaxsxdx"); +assert (r.lastIndex === 0); + +r = /(?:)/y; +r.lastIndex = 2; +assert ("asd".replace(r, "x") === "asxd"); +assert (r.lastIndex === 2); + +r.lastIndex = 5; +assert ("asd".replace(r, "x") === "asd"); +assert (r.lastIndex === 0); + +r.lastIndex = 2; +/* Disable fast path. */ +r.exec = function (s) { return RegExp.prototype.exec.call(this, s); }; +assert ("asd".replace(r, "x") === "asxd"); +assert (r.lastIndex === 2); + +r.lastIndex = 5; +assert ("asd".replace(r, "x") === "asd"); +assert (r.lastIndex === 0); + +assert (RegExp.prototype[Symbol.match].call(/a/y, "aaa").length === 1); +assert (RegExp.prototype[Symbol.match].call(/a/gy, "aaa").length === 3); + +var length = Object.getOwnPropertyDescriptor(RegExp.prototype.compile, "length"); +assert(!length.enumerable); +assert(!length.writable); +assert(length.configurable); +assert(length.value === 2); + +var re = /./; +re.lastIndex = 23; + +try { + re.compile(re, null); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + re.compile(re, 0); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + re.compile(re, ''); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + re.compile(re, false); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + re.compile(re, {}); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +try { + re.compile(re, []); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +assert(re.lastIndex === 23); + +var subject = /initial/; +Object.defineProperty(subject, 'lastIndex', { value: 45, writable: false }); + +try { + subject.compile(/updated/gi); + assert(false); +} catch (e) { + assert(e instanceof TypeError); +} + +assert(subject.toString() === new RegExp('updated', 'gi').toString()); +assert(subject.lastIndex === 45); diff --git a/tests/jerry/es.next/regexp-unicode.js b/tests/jerry/regexp-unicode.js similarity index 100% rename from tests/jerry/es.next/regexp-unicode.js rename to tests/jerry/regexp-unicode.js diff --git a/tests/jerry/es.next/regression-test-issue-1616.js b/tests/jerry/regression-test-issue-1616.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1616.js rename to tests/jerry/regression-test-issue-1616.js diff --git a/tests/jerry/es.next/regression-test-issue-1622.js b/tests/jerry/regression-test-issue-1622.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1622.js rename to tests/jerry/regression-test-issue-1622.js diff --git a/tests/jerry/es.next/regression-test-issue-1633.js b/tests/jerry/regression-test-issue-1633.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1633.js rename to tests/jerry/regression-test-issue-1633.js diff --git a/tests/jerry/es.next/regression-test-issue-1670.js b/tests/jerry/regression-test-issue-1670.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1670.js rename to tests/jerry/regression-test-issue-1670.js diff --git a/tests/jerry/es.next/regression-test-issue-1763.js b/tests/jerry/regression-test-issue-1763.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1763.js rename to tests/jerry/regression-test-issue-1763.js diff --git a/tests/jerry/es.next/regression-test-issue-1765.js b/tests/jerry/regression-test-issue-1765.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1765.js rename to tests/jerry/regression-test-issue-1765.js diff --git a/tests/jerry/es.next/regression-test-issue-1881.js b/tests/jerry/regression-test-issue-1881.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1881.js rename to tests/jerry/regression-test-issue-1881.js diff --git a/tests/jerry/es.next/regression-test-issue-1936.js b/tests/jerry/regression-test-issue-1936.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1936.js rename to tests/jerry/regression-test-issue-1936.js diff --git a/tests/jerry/es.next/regression-test-issue-1995.js b/tests/jerry/regression-test-issue-1995.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1995.js rename to tests/jerry/regression-test-issue-1995.js diff --git a/tests/jerry/es.next/regression-test-issue-1996.js b/tests/jerry/regression-test-issue-1996.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1996.js rename to tests/jerry/regression-test-issue-1996.js diff --git a/tests/jerry/es.next/regression-test-issue-1997.js b/tests/jerry/regression-test-issue-1997.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-1997.js rename to tests/jerry/regression-test-issue-1997.js diff --git a/tests/jerry/es.next/regression-test-issue-2058.js b/tests/jerry/regression-test-issue-2058.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2058.js rename to tests/jerry/regression-test-issue-2058.js diff --git a/tests/jerry/es.next/regression-test-issue-2107.js b/tests/jerry/regression-test-issue-2107.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2107.js rename to tests/jerry/regression-test-issue-2107.js diff --git a/tests/jerry/es.next/regression-test-issue-2110.js b/tests/jerry/regression-test-issue-2110.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2110.js rename to tests/jerry/regression-test-issue-2110.js diff --git a/tests/jerry/es.next/regression-test-issue-2111.js b/tests/jerry/regression-test-issue-2111.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2111.js rename to tests/jerry/regression-test-issue-2111.js diff --git a/tests/jerry/es.next/regression-test-issue-2143.js b/tests/jerry/regression-test-issue-2143.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2143.js rename to tests/jerry/regression-test-issue-2143.js diff --git a/tests/jerry/es.next/regression-test-issue-2181.js b/tests/jerry/regression-test-issue-2181.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2181.js rename to tests/jerry/regression-test-issue-2181.js diff --git a/tests/jerry/es.next/regression-test-issue-2414.js b/tests/jerry/regression-test-issue-2414.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2414.js rename to tests/jerry/regression-test-issue-2414.js diff --git a/tests/jerry/es.next/regression-test-issue-2435.js b/tests/jerry/regression-test-issue-2435.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2435.js rename to tests/jerry/regression-test-issue-2435.js diff --git a/tests/jerry/es.next/regression-test-issue-2465.js b/tests/jerry/regression-test-issue-2465.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2465.js rename to tests/jerry/regression-test-issue-2465.js diff --git a/tests/jerry/es.next/regression-test-issue-2468.js b/tests/jerry/regression-test-issue-2468.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2468.js rename to tests/jerry/regression-test-issue-2468.js diff --git a/tests/jerry/es.next/regression-test-issue-2486.js b/tests/jerry/regression-test-issue-2486.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2486.js rename to tests/jerry/regression-test-issue-2486.js diff --git a/tests/jerry/es.next/regression-test-issue-2487.js b/tests/jerry/regression-test-issue-2487.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2487.js rename to tests/jerry/regression-test-issue-2487.js diff --git a/tests/jerry/es.next/regression-test-issue-2488.js b/tests/jerry/regression-test-issue-2488.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2488.js rename to tests/jerry/regression-test-issue-2488.js diff --git a/tests/jerry/es.next/regression-test-issue-2489-original.js b/tests/jerry/regression-test-issue-2489-original.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2489-original.js rename to tests/jerry/regression-test-issue-2489-original.js diff --git a/tests/jerry/es.next/regression-test-issue-2490.js b/tests/jerry/regression-test-issue-2490.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2490.js rename to tests/jerry/regression-test-issue-2490.js diff --git a/tests/jerry/es.next/regression-test-issue-2528.js b/tests/jerry/regression-test-issue-2528.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2528.js rename to tests/jerry/regression-test-issue-2528.js diff --git a/tests/jerry/es.next/regression-test-issue-2544.js b/tests/jerry/regression-test-issue-2544.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2544.js rename to tests/jerry/regression-test-issue-2544.js diff --git a/tests/jerry/es.next/regression-test-issue-2587.js b/tests/jerry/regression-test-issue-2587.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2587.js rename to tests/jerry/regression-test-issue-2587.js diff --git a/tests/jerry/es.next/regression-test-issue-2602.js b/tests/jerry/regression-test-issue-2602.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2602.js rename to tests/jerry/regression-test-issue-2602.js diff --git a/tests/jerry/es.next/regression-test-issue-2603.js b/tests/jerry/regression-test-issue-2603.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2603.js rename to tests/jerry/regression-test-issue-2603.js diff --git a/tests/jerry/es.next/regression-test-issue-2657.js b/tests/jerry/regression-test-issue-2657.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2657.js rename to tests/jerry/regression-test-issue-2657.js diff --git a/tests/jerry/es.next/regression-test-issue-2658.js b/tests/jerry/regression-test-issue-2658.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2658.js rename to tests/jerry/regression-test-issue-2658.js diff --git a/tests/jerry/es.next/regression-test-issue-2664.js b/tests/jerry/regression-test-issue-2664.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2664.js rename to tests/jerry/regression-test-issue-2664.js diff --git a/tests/jerry/es.next/regression-test-issue-2666.js b/tests/jerry/regression-test-issue-2666.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2666.js rename to tests/jerry/regression-test-issue-2666.js diff --git a/tests/jerry/es.next/regression-test-issue-2667.js b/tests/jerry/regression-test-issue-2667.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2667.js rename to tests/jerry/regression-test-issue-2667.js diff --git a/tests/jerry/es.next/regression-test-issue-2671.js b/tests/jerry/regression-test-issue-2671.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2671.js rename to tests/jerry/regression-test-issue-2671.js diff --git a/tests/jerry/es.next/regression-test-issue-2693.js b/tests/jerry/regression-test-issue-2693.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2693.js rename to tests/jerry/regression-test-issue-2693.js diff --git a/tests/jerry/es.next/regression-test-issue-2698.js b/tests/jerry/regression-test-issue-2698.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2698.js rename to tests/jerry/regression-test-issue-2698.js diff --git a/tests/jerry/es.next/regression-test-issue-2724.js b/tests/jerry/regression-test-issue-2724.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2724.js rename to tests/jerry/regression-test-issue-2724.js diff --git a/tests/jerry/es.next/regression-test-issue-2743.js b/tests/jerry/regression-test-issue-2743.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2743.js rename to tests/jerry/regression-test-issue-2743.js diff --git a/tests/jerry/es.next/regression-test-issue-2757.js b/tests/jerry/regression-test-issue-2757.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2757.js rename to tests/jerry/regression-test-issue-2757.js diff --git a/tests/jerry/es.next/regression-test-issue-2768.js b/tests/jerry/regression-test-issue-2768.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2768.js rename to tests/jerry/regression-test-issue-2768.js diff --git a/tests/jerry/es.next/regression-test-issue-2769.js b/tests/jerry/regression-test-issue-2769.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2769.js rename to tests/jerry/regression-test-issue-2769.js diff --git a/tests/jerry/es.next/regression-test-issue-2770.js b/tests/jerry/regression-test-issue-2770.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2770.js rename to tests/jerry/regression-test-issue-2770.js diff --git a/tests/jerry/es.next/regression-test-issue-2777.js b/tests/jerry/regression-test-issue-2777.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2777.js rename to tests/jerry/regression-test-issue-2777.js diff --git a/tests/jerry/es.next/regression-test-issue-2779.js b/tests/jerry/regression-test-issue-2779.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2779.js rename to tests/jerry/regression-test-issue-2779.js diff --git a/tests/jerry/es.next/regression-test-issue-2782.js b/tests/jerry/regression-test-issue-2782.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2782.js rename to tests/jerry/regression-test-issue-2782.js diff --git a/tests/jerry/es.next/regression-test-issue-2783.js b/tests/jerry/regression-test-issue-2783.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2783.js rename to tests/jerry/regression-test-issue-2783.js diff --git a/tests/jerry/es.next/regression-test-issue-2822.js b/tests/jerry/regression-test-issue-2822.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2822.js rename to tests/jerry/regression-test-issue-2822.js diff --git a/tests/jerry/es.next/regression-test-issue-2823.js b/tests/jerry/regression-test-issue-2823.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2823.js rename to tests/jerry/regression-test-issue-2823.js diff --git a/tests/jerry/es.next/regression-test-issue-2825.js b/tests/jerry/regression-test-issue-2825.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2825.js rename to tests/jerry/regression-test-issue-2825.js diff --git a/tests/jerry/es.next/regression-test-issue-2842.mjs b/tests/jerry/regression-test-issue-2842.mjs similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2842.mjs rename to tests/jerry/regression-test-issue-2842.mjs diff --git a/tests/jerry/es.next/regression-test-issue-2848.js b/tests/jerry/regression-test-issue-2848.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2848.js rename to tests/jerry/regression-test-issue-2848.js diff --git a/tests/jerry/es.next/regression-test-issue-2850.js b/tests/jerry/regression-test-issue-2850.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2850.js rename to tests/jerry/regression-test-issue-2850.js diff --git a/tests/jerry/es.next/regression-test-issue-2851.js b/tests/jerry/regression-test-issue-2851.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2851.js rename to tests/jerry/regression-test-issue-2851.js diff --git a/tests/jerry/es.next/regression-test-issue-2852.js b/tests/jerry/regression-test-issue-2852.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2852.js rename to tests/jerry/regression-test-issue-2852.js diff --git a/tests/jerry/es.next/regression-test-issue-2853.js b/tests/jerry/regression-test-issue-2853.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2853.js rename to tests/jerry/regression-test-issue-2853.js diff --git a/tests/jerry/es.next/regression-test-issue-2854.js b/tests/jerry/regression-test-issue-2854.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2854.js rename to tests/jerry/regression-test-issue-2854.js diff --git a/tests/jerry/es.next/regression-test-issue-2891.js b/tests/jerry/regression-test-issue-2891.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2891.js rename to tests/jerry/regression-test-issue-2891.js diff --git a/tests/jerry/es.next/regression-test-issue-2895.js b/tests/jerry/regression-test-issue-2895.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2895.js rename to tests/jerry/regression-test-issue-2895.js diff --git a/tests/jerry/es.next/regression-test-issue-2910.js b/tests/jerry/regression-test-issue-2910.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2910.js rename to tests/jerry/regression-test-issue-2910.js diff --git a/tests/jerry/es.next/regression-test-issue-2911.js b/tests/jerry/regression-test-issue-2911.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2911.js rename to tests/jerry/regression-test-issue-2911.js diff --git a/tests/jerry/es.next/regression-test-issue-2947.js b/tests/jerry/regression-test-issue-2947.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2947.js rename to tests/jerry/regression-test-issue-2947.js diff --git a/tests/jerry/es.next/regression-test-issue-2948.js b/tests/jerry/regression-test-issue-2948.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2948.js rename to tests/jerry/regression-test-issue-2948.js diff --git a/tests/jerry/es.next/regression-test-issue-2950.js b/tests/jerry/regression-test-issue-2950.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2950.js rename to tests/jerry/regression-test-issue-2950.js diff --git a/tests/jerry/es.next/regression-test-issue-2951.js b/tests/jerry/regression-test-issue-2951.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2951.js rename to tests/jerry/regression-test-issue-2951.js diff --git a/tests/jerry/es.next/regression-test-issue-2975.js b/tests/jerry/regression-test-issue-2975.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2975.js rename to tests/jerry/regression-test-issue-2975.js diff --git a/tests/jerry/es.next/regression-test-issue-2990.js b/tests/jerry/regression-test-issue-2990.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-2990.js rename to tests/jerry/regression-test-issue-2990.js diff --git a/tests/jerry/es.next/regression-test-issue-3040.js b/tests/jerry/regression-test-issue-3040.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3040.js rename to tests/jerry/regression-test-issue-3040.js diff --git a/tests/jerry/es.next/regression-test-issue-3043-3046.js b/tests/jerry/regression-test-issue-3043-3046.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3043-3046.js rename to tests/jerry/regression-test-issue-3043-3046.js diff --git a/tests/jerry/es.next/regression-test-issue-3045.js b/tests/jerry/regression-test-issue-3045.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3045.js rename to tests/jerry/regression-test-issue-3045.js diff --git a/tests/jerry/es.next/regression-test-issue-3049.js b/tests/jerry/regression-test-issue-3049.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3049.js rename to tests/jerry/regression-test-issue-3049.js diff --git a/tests/jerry/es.next/regression-test-issue-3050.js b/tests/jerry/regression-test-issue-3050.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3050.js rename to tests/jerry/regression-test-issue-3050.js diff --git a/tests/jerry/es.next/regression-test-issue-3062.js b/tests/jerry/regression-test-issue-3062.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3062.js rename to tests/jerry/regression-test-issue-3062.js diff --git a/tests/jerry/es.next/regression-test-issue-3063.js b/tests/jerry/regression-test-issue-3063.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3063.js rename to tests/jerry/regression-test-issue-3063.js diff --git a/tests/jerry/es.next/regression-test-issue-3067.js b/tests/jerry/regression-test-issue-3067.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3067.js rename to tests/jerry/regression-test-issue-3067.js diff --git a/tests/jerry/es.next/regression-test-issue-3070.js b/tests/jerry/regression-test-issue-3070.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3070.js rename to tests/jerry/regression-test-issue-3070.js diff --git a/tests/jerry/regression-test-issue-3072.js b/tests/jerry/regression-test-issue-3072.js index 4defdee63..2e35e4cad 100644 --- a/tests/jerry/regression-test-issue-3072.js +++ b/tests/jerry/regression-test-issue-3072.js @@ -16,3 +16,13 @@ var arr = [ , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]; arr [4294967294] = 0 assert (arr.length === 4294967295); assert (arr[4294967294] === 0); + +var arrb = new ArrayBuffer(13); + +try { + var d = new DataView(arrb, 12, -Infinity); + d.setFloat32(1, 1); + assert (false); +} catch (e) { + assert (e instanceof RangeError); +} diff --git a/tests/jerry/es.next/regression-test-issue-3078.js b/tests/jerry/regression-test-issue-3078.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3078.js rename to tests/jerry/regression-test-issue-3078.js diff --git a/tests/jerry/es.next/regression-test-issue-3079.js b/tests/jerry/regression-test-issue-3079.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3079.js rename to tests/jerry/regression-test-issue-3079.js diff --git a/tests/jerry/es.next/regression-test-issue-3084.js b/tests/jerry/regression-test-issue-3084.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3084.js rename to tests/jerry/regression-test-issue-3084.js diff --git a/tests/jerry/es.next/regression-test-issue-3095.js b/tests/jerry/regression-test-issue-3095.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3095.js rename to tests/jerry/regression-test-issue-3095.js diff --git a/tests/jerry/es.next/regression-test-issue-3097.js b/tests/jerry/regression-test-issue-3097.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3097.js rename to tests/jerry/regression-test-issue-3097.js diff --git a/tests/jerry/es.next/regression-test-issue-3105.js b/tests/jerry/regression-test-issue-3105.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3105.js rename to tests/jerry/regression-test-issue-3105.js diff --git a/tests/jerry/es.next/regression-test-issue-3106.js b/tests/jerry/regression-test-issue-3106.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3106.js rename to tests/jerry/regression-test-issue-3106.js diff --git a/tests/jerry/es.next/regression-test-issue-3107.js b/tests/jerry/regression-test-issue-3107.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3107.js rename to tests/jerry/regression-test-issue-3107.js diff --git a/tests/jerry/es.next/regression-test-issue-3109.js b/tests/jerry/regression-test-issue-3109.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3109.js rename to tests/jerry/regression-test-issue-3109.js diff --git a/tests/jerry/es.next/regression-test-issue-3129.js b/tests/jerry/regression-test-issue-3129.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3129.js rename to tests/jerry/regression-test-issue-3129.js diff --git a/tests/jerry/es.next/regression-test-issue-3162.js b/tests/jerry/regression-test-issue-3162.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3162.js rename to tests/jerry/regression-test-issue-3162.js diff --git a/tests/jerry/es.next/regression-test-issue-3204.js b/tests/jerry/regression-test-issue-3204.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3204.js rename to tests/jerry/regression-test-issue-3204.js diff --git a/tests/jerry/es.next/regression-test-issue-3222.js b/tests/jerry/regression-test-issue-3222.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3222.js rename to tests/jerry/regression-test-issue-3222.js diff --git a/tests/jerry/es.next/regression-test-issue-3237.js b/tests/jerry/regression-test-issue-3237.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3237.js rename to tests/jerry/regression-test-issue-3237.js diff --git a/tests/jerry/es.next/regression-test-issue-3243.js b/tests/jerry/regression-test-issue-3243.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3243.js rename to tests/jerry/regression-test-issue-3243.js diff --git a/tests/jerry/es.next/regression-test-issue-3250.js b/tests/jerry/regression-test-issue-3250.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3250.js rename to tests/jerry/regression-test-issue-3250.js diff --git a/tests/jerry/es.next/regression-test-issue-3252.js b/tests/jerry/regression-test-issue-3252.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3252.js rename to tests/jerry/regression-test-issue-3252.js diff --git a/tests/jerry/es.next/regression-test-issue-3262.js b/tests/jerry/regression-test-issue-3262.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3262.js rename to tests/jerry/regression-test-issue-3262.js diff --git a/tests/jerry/es.next/regression-test-issue-3267.js b/tests/jerry/regression-test-issue-3267.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3267.js rename to tests/jerry/regression-test-issue-3267.js diff --git a/tests/jerry/es.next/regression-test-issue-3298.js b/tests/jerry/regression-test-issue-3298.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3298.js rename to tests/jerry/regression-test-issue-3298.js diff --git a/tests/jerry/es.next/regression-test-issue-3302.js b/tests/jerry/regression-test-issue-3302.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3302.js rename to tests/jerry/regression-test-issue-3302.js diff --git a/tests/jerry/es.next/regression-test-issue-3306.js b/tests/jerry/regression-test-issue-3306.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3306.js rename to tests/jerry/regression-test-issue-3306.js diff --git a/tests/jerry/es.next/regression-test-issue-3348.js b/tests/jerry/regression-test-issue-3348.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3348.js rename to tests/jerry/regression-test-issue-3348.js diff --git a/tests/jerry/es.next/regression-test-issue-3355.js b/tests/jerry/regression-test-issue-3355.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3355.js rename to tests/jerry/regression-test-issue-3355.js diff --git a/tests/jerry/es.next/regression-test-issue-3356.js b/tests/jerry/regression-test-issue-3356.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3356.js rename to tests/jerry/regression-test-issue-3356.js diff --git a/tests/jerry/es.next/regression-test-issue-3360.js b/tests/jerry/regression-test-issue-3360.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3360.js rename to tests/jerry/regression-test-issue-3360.js diff --git a/tests/jerry/es.next/regression-test-issue-3361.js b/tests/jerry/regression-test-issue-3361.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3361.js rename to tests/jerry/regression-test-issue-3361.js diff --git a/tests/jerry/es.next/regression-test-issue-3363.js b/tests/jerry/regression-test-issue-3363.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3363.js rename to tests/jerry/regression-test-issue-3363.js diff --git a/tests/jerry/es.next/regression-test-issue-3364.js b/tests/jerry/regression-test-issue-3364.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3364.js rename to tests/jerry/regression-test-issue-3364.js diff --git a/tests/jerry/es.next/regression-test-issue-3376.js b/tests/jerry/regression-test-issue-3376.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3376.js rename to tests/jerry/regression-test-issue-3376.js diff --git a/tests/jerry/es.next/regression-test-issue-3381.js b/tests/jerry/regression-test-issue-3381.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3381.js rename to tests/jerry/regression-test-issue-3381.js diff --git a/tests/jerry/es.next/regression-test-issue-3383.js b/tests/jerry/regression-test-issue-3383.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3383.js rename to tests/jerry/regression-test-issue-3383.js diff --git a/tests/jerry/es.next/regression-test-issue-3390.js b/tests/jerry/regression-test-issue-3390.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3390.js rename to tests/jerry/regression-test-issue-3390.js diff --git a/tests/jerry/es.next/regression-test-issue-3395.js b/tests/jerry/regression-test-issue-3395.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3395.js rename to tests/jerry/regression-test-issue-3395.js diff --git a/tests/jerry/es.next/regression-test-issue-3396.js b/tests/jerry/regression-test-issue-3396.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3396.js rename to tests/jerry/regression-test-issue-3396.js diff --git a/tests/jerry/es.next/regression-test-issue-3408.js b/tests/jerry/regression-test-issue-3408.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3408.js rename to tests/jerry/regression-test-issue-3408.js diff --git a/tests/jerry/es.next/regression-test-issue-3409.js b/tests/jerry/regression-test-issue-3409.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3409.js rename to tests/jerry/regression-test-issue-3409.js diff --git a/tests/jerry/es.next/regression-test-issue-3411.js b/tests/jerry/regression-test-issue-3411.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3411.js rename to tests/jerry/regression-test-issue-3411.js diff --git a/tests/jerry/es.next/regression-test-issue-3419.js b/tests/jerry/regression-test-issue-3419.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3419.js rename to tests/jerry/regression-test-issue-3419.js diff --git a/tests/jerry/es.next/regression-test-issue-3420.js b/tests/jerry/regression-test-issue-3420.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3420.js rename to tests/jerry/regression-test-issue-3420.js diff --git a/tests/jerry/es.next/regression-test-issue-3421.js b/tests/jerry/regression-test-issue-3421.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3421.js rename to tests/jerry/regression-test-issue-3421.js diff --git a/tests/jerry/es.next/regression-test-issue-3422.js b/tests/jerry/regression-test-issue-3422.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3422.js rename to tests/jerry/regression-test-issue-3422.js diff --git a/tests/jerry/es.next/regression-test-issue-3431.js b/tests/jerry/regression-test-issue-3431.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3431.js rename to tests/jerry/regression-test-issue-3431.js diff --git a/tests/jerry/es.next/regression-test-issue-3434.js b/tests/jerry/regression-test-issue-3434.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3434.js rename to tests/jerry/regression-test-issue-3434.js diff --git a/tests/jerry/es.next/regression-test-issue-3437.js b/tests/jerry/regression-test-issue-3437.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3437.js rename to tests/jerry/regression-test-issue-3437.js diff --git a/tests/jerry/es.next/regression-test-issue-3454.js b/tests/jerry/regression-test-issue-3454.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3454.js rename to tests/jerry/regression-test-issue-3454.js diff --git a/tests/jerry/es.next/regression-test-issue-3455.js b/tests/jerry/regression-test-issue-3455.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3455.js rename to tests/jerry/regression-test-issue-3455.js diff --git a/tests/jerry/es.next/regression-test-issue-3458.js b/tests/jerry/regression-test-issue-3458.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3458.js rename to tests/jerry/regression-test-issue-3458.js diff --git a/tests/jerry/es.next/regression-test-issue-3459.js b/tests/jerry/regression-test-issue-3459.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3459.js rename to tests/jerry/regression-test-issue-3459.js diff --git a/tests/jerry/es.next/regression-test-issue-3478.js b/tests/jerry/regression-test-issue-3478.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3478.js rename to tests/jerry/regression-test-issue-3478.js diff --git a/tests/jerry/es.next/regression-test-issue-3479.js b/tests/jerry/regression-test-issue-3479.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3479.js rename to tests/jerry/regression-test-issue-3479.js diff --git a/tests/jerry/es.next/regression-test-issue-3483.js b/tests/jerry/regression-test-issue-3483.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3483.js rename to tests/jerry/regression-test-issue-3483.js diff --git a/tests/jerry/es.next/regression-test-issue-3485.js b/tests/jerry/regression-test-issue-3485.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3485.js rename to tests/jerry/regression-test-issue-3485.js diff --git a/tests/jerry/es.next/regression-test-issue-3519.js b/tests/jerry/regression-test-issue-3519.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3519.js rename to tests/jerry/regression-test-issue-3519.js diff --git a/tests/jerry/es.next/regression-test-issue-3527.js b/tests/jerry/regression-test-issue-3527.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3527.js rename to tests/jerry/regression-test-issue-3527.js diff --git a/tests/jerry/es.next/regression-test-issue-3534.js b/tests/jerry/regression-test-issue-3534.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3534.js rename to tests/jerry/regression-test-issue-3534.js diff --git a/tests/jerry/es.next/regression-test-issue-3536.js b/tests/jerry/regression-test-issue-3536.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3536.js rename to tests/jerry/regression-test-issue-3536.js diff --git a/tests/jerry/es.next/regression-test-issue-3580.js b/tests/jerry/regression-test-issue-3580.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3580.js rename to tests/jerry/regression-test-issue-3580.js diff --git a/tests/jerry/es.next/regression-test-issue-3588.js b/tests/jerry/regression-test-issue-3588.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3588.js rename to tests/jerry/regression-test-issue-3588.js diff --git a/tests/jerry/es.next/regression-test-issue-3589.js b/tests/jerry/regression-test-issue-3589.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3589.js rename to tests/jerry/regression-test-issue-3589.js diff --git a/tests/jerry/es.next/regression-test-issue-3595.js b/tests/jerry/regression-test-issue-3595.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3595.js rename to tests/jerry/regression-test-issue-3595.js diff --git a/tests/jerry/es.next/regression-test-issue-3606.js b/tests/jerry/regression-test-issue-3606.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3606.js rename to tests/jerry/regression-test-issue-3606.js diff --git a/tests/jerry/es.next/regression-test-issue-3611.js b/tests/jerry/regression-test-issue-3611.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3611.js rename to tests/jerry/regression-test-issue-3611.js diff --git a/tests/jerry/es.next/regression-test-issue-3625.js b/tests/jerry/regression-test-issue-3625.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3625.js rename to tests/jerry/regression-test-issue-3625.js diff --git a/tests/jerry/es.next/regression-test-issue-3628.js b/tests/jerry/regression-test-issue-3628.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3628.js rename to tests/jerry/regression-test-issue-3628.js diff --git a/tests/jerry/es.next/regression-test-issue-3630.js b/tests/jerry/regression-test-issue-3630.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3630.js rename to tests/jerry/regression-test-issue-3630.js diff --git a/tests/jerry/es.next/regression-test-issue-3636.js b/tests/jerry/regression-test-issue-3636.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3636.js rename to tests/jerry/regression-test-issue-3636.js diff --git a/tests/jerry/es.next/regression-test-issue-3637.js b/tests/jerry/regression-test-issue-3637.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3637.js rename to tests/jerry/regression-test-issue-3637.js diff --git a/tests/jerry/es.next/regression-test-issue-3640.js b/tests/jerry/regression-test-issue-3640.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3640.js rename to tests/jerry/regression-test-issue-3640.js diff --git a/tests/jerry/es.next/regression-test-issue-3641.js b/tests/jerry/regression-test-issue-3641.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3641.js rename to tests/jerry/regression-test-issue-3641.js diff --git a/tests/jerry/es.next/regression-test-issue-3647.js b/tests/jerry/regression-test-issue-3647.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3647.js rename to tests/jerry/regression-test-issue-3647.js diff --git a/tests/jerry/es.next/regression-test-issue-3655.js b/tests/jerry/regression-test-issue-3655.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3655.js rename to tests/jerry/regression-test-issue-3655.js diff --git a/tests/jerry/es.next/regression-test-issue-3656.js b/tests/jerry/regression-test-issue-3656.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3656.js rename to tests/jerry/regression-test-issue-3656.js diff --git a/tests/jerry/es.next/regression-test-issue-3658.js b/tests/jerry/regression-test-issue-3658.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3658.js rename to tests/jerry/regression-test-issue-3658.js diff --git a/tests/jerry/es.next/regression-test-issue-3665.js b/tests/jerry/regression-test-issue-3665.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3665.js rename to tests/jerry/regression-test-issue-3665.js diff --git a/tests/jerry/es.next/regression-test-issue-3671.js b/tests/jerry/regression-test-issue-3671.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3671.js rename to tests/jerry/regression-test-issue-3671.js diff --git a/tests/jerry/es.next/regression-test-issue-3713.js b/tests/jerry/regression-test-issue-3713.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3713.js rename to tests/jerry/regression-test-issue-3713.js diff --git a/tests/jerry/es.next/regression-test-issue-3715.js b/tests/jerry/regression-test-issue-3715.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3715.js rename to tests/jerry/regression-test-issue-3715.js diff --git a/tests/jerry/es.next/regression-test-issue-3727.js b/tests/jerry/regression-test-issue-3727.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3727.js rename to tests/jerry/regression-test-issue-3727.js diff --git a/tests/jerry/es.next/regression-test-issue-3751.js b/tests/jerry/regression-test-issue-3751.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3751.js rename to tests/jerry/regression-test-issue-3751.js diff --git a/tests/jerry/es.next/regression-test-issue-3760.js b/tests/jerry/regression-test-issue-3760.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3760.js rename to tests/jerry/regression-test-issue-3760.js diff --git a/tests/jerry/es.next/regression-test-issue-3784.js b/tests/jerry/regression-test-issue-3784.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3784.js rename to tests/jerry/regression-test-issue-3784.js diff --git a/tests/jerry/es.next/regression-test-issue-3785.js b/tests/jerry/regression-test-issue-3785.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3785.js rename to tests/jerry/regression-test-issue-3785.js diff --git a/tests/jerry/es.next/regression-test-issue-3787.js b/tests/jerry/regression-test-issue-3787.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3787.js rename to tests/jerry/regression-test-issue-3787.js diff --git a/tests/jerry/es.next/regression-test-issue-3812.js b/tests/jerry/regression-test-issue-3812.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3812.js rename to tests/jerry/regression-test-issue-3812.js diff --git a/tests/jerry/es.next/regression-test-issue-3814.js b/tests/jerry/regression-test-issue-3814.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3814.js rename to tests/jerry/regression-test-issue-3814.js diff --git a/tests/jerry/es.next/regression-test-issue-3815.js b/tests/jerry/regression-test-issue-3815.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3815.js rename to tests/jerry/regression-test-issue-3815.js diff --git a/tests/jerry/es.next/regression-test-issue-3817.js b/tests/jerry/regression-test-issue-3817.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3817.js rename to tests/jerry/regression-test-issue-3817.js diff --git a/tests/jerry/es.next/regression-test-issue-3819.js b/tests/jerry/regression-test-issue-3819.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3819.js rename to tests/jerry/regression-test-issue-3819.js diff --git a/tests/jerry/es.next/regression-test-issue-3820.js b/tests/jerry/regression-test-issue-3820.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3820.js rename to tests/jerry/regression-test-issue-3820.js diff --git a/tests/jerry/es.next/regression-test-issue-3822.js b/tests/jerry/regression-test-issue-3822.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3822.js rename to tests/jerry/regression-test-issue-3822.js diff --git a/tests/jerry/es.next/regression-test-issue-3823.js b/tests/jerry/regression-test-issue-3823.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3823.js rename to tests/jerry/regression-test-issue-3823.js diff --git a/tests/jerry/es.next/regression-test-issue-3824.js b/tests/jerry/regression-test-issue-3824.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3824.js rename to tests/jerry/regression-test-issue-3824.js diff --git a/tests/jerry/es.next/regression-test-issue-3825.js b/tests/jerry/regression-test-issue-3825.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3825.js rename to tests/jerry/regression-test-issue-3825.js diff --git a/tests/jerry/es.next/regression-test-issue-3836.js b/tests/jerry/regression-test-issue-3836.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3836.js rename to tests/jerry/regression-test-issue-3836.js diff --git a/tests/jerry/es.next/regression-test-issue-3837.js b/tests/jerry/regression-test-issue-3837.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3837.js rename to tests/jerry/regression-test-issue-3837.js diff --git a/tests/jerry/es.next/regression-test-issue-3841.js b/tests/jerry/regression-test-issue-3841.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3841.js rename to tests/jerry/regression-test-issue-3841.js diff --git a/tests/jerry/es.next/regression-test-issue-3842.js b/tests/jerry/regression-test-issue-3842.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3842.js rename to tests/jerry/regression-test-issue-3842.js diff --git a/tests/jerry/es.next/regression-test-issue-3845.js b/tests/jerry/regression-test-issue-3845.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3845.js rename to tests/jerry/regression-test-issue-3845.js diff --git a/tests/jerry/es.next/regression-test-issue-3849.js b/tests/jerry/regression-test-issue-3849.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3849.js rename to tests/jerry/regression-test-issue-3849.js diff --git a/tests/jerry/es.next/regression-test-issue-3856.js b/tests/jerry/regression-test-issue-3856.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3856.js rename to tests/jerry/regression-test-issue-3856.js diff --git a/tests/jerry/es.next/regression-test-issue-3857.js b/tests/jerry/regression-test-issue-3857.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3857.js rename to tests/jerry/regression-test-issue-3857.js diff --git a/tests/jerry/es.next/regression-test-issue-3860.js b/tests/jerry/regression-test-issue-3860.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3860.js rename to tests/jerry/regression-test-issue-3860.js diff --git a/tests/jerry/es.next/regression-test-issue-3861.js b/tests/jerry/regression-test-issue-3861.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3861.js rename to tests/jerry/regression-test-issue-3861.js diff --git a/tests/jerry/es.next/regression-test-issue-3862.js b/tests/jerry/regression-test-issue-3862.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3862.js rename to tests/jerry/regression-test-issue-3862.js diff --git a/tests/jerry/es.next/regression-test-issue-3866.js b/tests/jerry/regression-test-issue-3866.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3866.js rename to tests/jerry/regression-test-issue-3866.js diff --git a/tests/jerry/es.next/regression-test-issue-3868.js b/tests/jerry/regression-test-issue-3868.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3868.js rename to tests/jerry/regression-test-issue-3868.js diff --git a/tests/jerry/es.next/regression-test-issue-3869.js b/tests/jerry/regression-test-issue-3869.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3869.js rename to tests/jerry/regression-test-issue-3869.js diff --git a/tests/jerry/es.next/regression-test-issue-3870.js b/tests/jerry/regression-test-issue-3870.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3870.js rename to tests/jerry/regression-test-issue-3870.js diff --git a/tests/jerry/es.next/regression-test-issue-3871.js b/tests/jerry/regression-test-issue-3871.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3871.js rename to tests/jerry/regression-test-issue-3871.js diff --git a/tests/jerry/es.next/regression-test-issue-3880.js b/tests/jerry/regression-test-issue-3880.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3880.js rename to tests/jerry/regression-test-issue-3880.js diff --git a/tests/jerry/es.next/regression-test-issue-3888.js b/tests/jerry/regression-test-issue-3888.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3888.js rename to tests/jerry/regression-test-issue-3888.js diff --git a/tests/jerry/es.next/regression-test-issue-3893.js b/tests/jerry/regression-test-issue-3893.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3893.js rename to tests/jerry/regression-test-issue-3893.js diff --git a/tests/jerry/es.next/regression-test-issue-3908.js b/tests/jerry/regression-test-issue-3908.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3908.js rename to tests/jerry/regression-test-issue-3908.js diff --git a/tests/jerry/es.next/regression-test-issue-3935.js b/tests/jerry/regression-test-issue-3935.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3935.js rename to tests/jerry/regression-test-issue-3935.js diff --git a/tests/jerry/es.next/regression-test-issue-3945.js b/tests/jerry/regression-test-issue-3945.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3945.js rename to tests/jerry/regression-test-issue-3945.js diff --git a/tests/jerry/es.next/regression-test-issue-3950.js b/tests/jerry/regression-test-issue-3950.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3950.js rename to tests/jerry/regression-test-issue-3950.js diff --git a/tests/jerry/es.next/regression-test-issue-3975.js b/tests/jerry/regression-test-issue-3975.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-3975.js rename to tests/jerry/regression-test-issue-3975.js diff --git a/tests/jerry/es.next/regression-test-issue-4013.js b/tests/jerry/regression-test-issue-4013.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4013.js rename to tests/jerry/regression-test-issue-4013.js diff --git a/tests/jerry/es.next/regression-test-issue-4016-4019.js b/tests/jerry/regression-test-issue-4016-4019.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4016-4019.js rename to tests/jerry/regression-test-issue-4016-4019.js diff --git a/tests/jerry/es.next/regression-test-issue-4017.js b/tests/jerry/regression-test-issue-4017.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4017.js rename to tests/jerry/regression-test-issue-4017.js diff --git a/tests/jerry/es.next/regression-test-issue-4018.js b/tests/jerry/regression-test-issue-4018.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4018.js rename to tests/jerry/regression-test-issue-4018.js diff --git a/tests/jerry/es.next/regression-test-issue-4043.js b/tests/jerry/regression-test-issue-4043.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4043.js rename to tests/jerry/regression-test-issue-4043.js diff --git a/tests/jerry/es.next/regression-test-issue-4044.js b/tests/jerry/regression-test-issue-4044.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4044.js rename to tests/jerry/regression-test-issue-4044.js diff --git a/tests/jerry/es.next/regression-test-issue-4045.js b/tests/jerry/regression-test-issue-4045.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4045.js rename to tests/jerry/regression-test-issue-4045.js diff --git a/tests/jerry/es.next/regression-test-issue-4048.js b/tests/jerry/regression-test-issue-4048.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4048.js rename to tests/jerry/regression-test-issue-4048.js diff --git a/tests/jerry/es.next/regression-test-issue-4050.js b/tests/jerry/regression-test-issue-4050.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4050.js rename to tests/jerry/regression-test-issue-4050.js diff --git a/tests/jerry/es.next/regression-test-issue-4051.js b/tests/jerry/regression-test-issue-4051.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4051.js rename to tests/jerry/regression-test-issue-4051.js diff --git a/tests/jerry/es.next/regression-test-issue-4052.js b/tests/jerry/regression-test-issue-4052.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4052.js rename to tests/jerry/regression-test-issue-4052.js diff --git a/tests/jerry/es.next/regression-test-issue-4054.js b/tests/jerry/regression-test-issue-4054.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4054.js rename to tests/jerry/regression-test-issue-4054.js diff --git a/tests/jerry/es.next/regression-test-issue-4059.js b/tests/jerry/regression-test-issue-4059.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4059.js rename to tests/jerry/regression-test-issue-4059.js diff --git a/tests/jerry/es.next/regression-test-issue-4093.js b/tests/jerry/regression-test-issue-4093.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4093.js rename to tests/jerry/regression-test-issue-4093.js diff --git a/tests/jerry/es.next/regression-test-issue-4094.js b/tests/jerry/regression-test-issue-4094.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4094.js rename to tests/jerry/regression-test-issue-4094.js diff --git a/tests/jerry/es.next/regression-test-issue-4097.js b/tests/jerry/regression-test-issue-4097.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4097.js rename to tests/jerry/regression-test-issue-4097.js diff --git a/tests/jerry/es.next/regression-test-issue-4129.js b/tests/jerry/regression-test-issue-4129.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4129.js rename to tests/jerry/regression-test-issue-4129.js diff --git a/tests/jerry/es.next/regression-test-issue-4131.js b/tests/jerry/regression-test-issue-4131.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4131.js rename to tests/jerry/regression-test-issue-4131.js diff --git a/tests/jerry/es.next/regression-test-issue-4132.js b/tests/jerry/regression-test-issue-4132.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4132.js rename to tests/jerry/regression-test-issue-4132.js diff --git a/tests/jerry/es.next/regression-test-issue-4138.js b/tests/jerry/regression-test-issue-4138.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4138.js rename to tests/jerry/regression-test-issue-4138.js diff --git a/tests/jerry/es.next/regression-test-issue-4139.js b/tests/jerry/regression-test-issue-4139.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4139.js rename to tests/jerry/regression-test-issue-4139.js diff --git a/tests/jerry/es.next/regression-test-issue-4146.js b/tests/jerry/regression-test-issue-4146.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4146.js rename to tests/jerry/regression-test-issue-4146.js diff --git a/tests/jerry/es.next/regression-test-issue-4147.js b/tests/jerry/regression-test-issue-4147.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4147.js rename to tests/jerry/regression-test-issue-4147.js diff --git a/tests/jerry/es.next/regression-test-issue-4148.js b/tests/jerry/regression-test-issue-4148.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4148.js rename to tests/jerry/regression-test-issue-4148.js diff --git a/tests/jerry/es.next/regression-test-issue-4149.js b/tests/jerry/regression-test-issue-4149.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4149.js rename to tests/jerry/regression-test-issue-4149.js diff --git a/tests/jerry/es.next/regression-test-issue-4213.js b/tests/jerry/regression-test-issue-4213.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4213.js rename to tests/jerry/regression-test-issue-4213.js diff --git a/tests/jerry/es.next/regression-test-issue-4214.js b/tests/jerry/regression-test-issue-4214.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4214.js rename to tests/jerry/regression-test-issue-4214.js diff --git a/tests/jerry/es.next/regression-test-issue-4234.js b/tests/jerry/regression-test-issue-4234.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4234.js rename to tests/jerry/regression-test-issue-4234.js diff --git a/tests/jerry/es.next/regression-test-issue-4265.js b/tests/jerry/regression-test-issue-4265.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4265.js rename to tests/jerry/regression-test-issue-4265.js diff --git a/tests/jerry/es.next/regression-test-issue-4341.js b/tests/jerry/regression-test-issue-4341.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4341.js rename to tests/jerry/regression-test-issue-4341.js diff --git a/tests/jerry/es.next/regression-test-issue-4375.js b/tests/jerry/regression-test-issue-4375.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4375.js rename to tests/jerry/regression-test-issue-4375.js diff --git a/tests/jerry/es.next/regression-test-issue-4385.js b/tests/jerry/regression-test-issue-4385.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4385.js rename to tests/jerry/regression-test-issue-4385.js diff --git a/tests/jerry/es.next/regression-test-issue-4396.js b/tests/jerry/regression-test-issue-4396.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4396.js rename to tests/jerry/regression-test-issue-4396.js diff --git a/tests/jerry/es.next/regression-test-issue-4397.js b/tests/jerry/regression-test-issue-4397.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4397.js rename to tests/jerry/regression-test-issue-4397.js diff --git a/tests/jerry/es.next/regression-test-issue-4398.js b/tests/jerry/regression-test-issue-4398.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4398.js rename to tests/jerry/regression-test-issue-4398.js diff --git a/tests/jerry/es.next/regression-test-issue-4402.js b/tests/jerry/regression-test-issue-4402.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4402.js rename to tests/jerry/regression-test-issue-4402.js diff --git a/tests/jerry/es.next/regression-test-issue-4405.js b/tests/jerry/regression-test-issue-4405.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4405.js rename to tests/jerry/regression-test-issue-4405.js diff --git a/tests/jerry/es.next/regression-test-issue-4408.js b/tests/jerry/regression-test-issue-4408.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4408.js rename to tests/jerry/regression-test-issue-4408.js diff --git a/tests/jerry/es.next/regression-test-issue-4413.js b/tests/jerry/regression-test-issue-4413.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4413.js rename to tests/jerry/regression-test-issue-4413.js diff --git a/tests/jerry/es.next/regression-test-issue-4432.js b/tests/jerry/regression-test-issue-4432.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4432.js rename to tests/jerry/regression-test-issue-4432.js diff --git a/tests/jerry/es.next/regression-test-issue-4440.js b/tests/jerry/regression-test-issue-4440.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4440.js rename to tests/jerry/regression-test-issue-4440.js diff --git a/tests/jerry/es.next/regression-test-issue-4441.js b/tests/jerry/regression-test-issue-4441.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4441.js rename to tests/jerry/regression-test-issue-4441.js diff --git a/tests/jerry/es.next/regression-test-issue-4442.js b/tests/jerry/regression-test-issue-4442.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4442.js rename to tests/jerry/regression-test-issue-4442.js diff --git a/tests/jerry/es.next/regression-test-issue-4445.js b/tests/jerry/regression-test-issue-4445.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4445.js rename to tests/jerry/regression-test-issue-4445.js diff --git a/tests/jerry/es.next/regression-test-issue-4446.js b/tests/jerry/regression-test-issue-4446.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4446.js rename to tests/jerry/regression-test-issue-4446.js diff --git a/tests/jerry/es.next/regression-test-issue-4463.js b/tests/jerry/regression-test-issue-4463.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4463.js rename to tests/jerry/regression-test-issue-4463.js diff --git a/tests/jerry/es.next/regression-test-issue-4464.js b/tests/jerry/regression-test-issue-4464.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4464.js rename to tests/jerry/regression-test-issue-4464.js diff --git a/tests/jerry/es.next/regression-test-issue-4466.js b/tests/jerry/regression-test-issue-4466.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4466.js rename to tests/jerry/regression-test-issue-4466.js diff --git a/tests/jerry/es.next/regression-test-issue-4468.js b/tests/jerry/regression-test-issue-4468.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4468.js rename to tests/jerry/regression-test-issue-4468.js diff --git a/tests/jerry/es.next/regression-test-issue-4469.js b/tests/jerry/regression-test-issue-4469.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4469.js rename to tests/jerry/regression-test-issue-4469.js diff --git a/tests/jerry/es.next/regression-test-issue-4532.js b/tests/jerry/regression-test-issue-4532.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4532.js rename to tests/jerry/regression-test-issue-4532.js diff --git a/tests/jerry/es.next/regression-test-issue-4747.js b/tests/jerry/regression-test-issue-4747.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4747.js rename to tests/jerry/regression-test-issue-4747.js diff --git a/tests/jerry/es.next/regression-test-issue-4781.js b/tests/jerry/regression-test-issue-4781.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4781.js rename to tests/jerry/regression-test-issue-4781.js diff --git a/tests/jerry/es.next/regression-test-issue-4793.js b/tests/jerry/regression-test-issue-4793.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4793.js rename to tests/jerry/regression-test-issue-4793.js diff --git a/tests/jerry/es.next/regression-test-issue-4871.js b/tests/jerry/regression-test-issue-4871.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4871.js rename to tests/jerry/regression-test-issue-4871.js diff --git a/tests/jerry/es.next/regression-test-issue-4872.js b/tests/jerry/regression-test-issue-4872.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4872.js rename to tests/jerry/regression-test-issue-4872.js diff --git a/tests/jerry/es.next/regression-test-issue-4874.js b/tests/jerry/regression-test-issue-4874.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4874.js rename to tests/jerry/regression-test-issue-4874.js diff --git a/tests/jerry/es.next/regression-test-issue-4875.js b/tests/jerry/regression-test-issue-4875.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4875.js rename to tests/jerry/regression-test-issue-4875.js diff --git a/tests/jerry/es.next/regression-test-issue-4876.js b/tests/jerry/regression-test-issue-4876.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4876.js rename to tests/jerry/regression-test-issue-4876.js diff --git a/tests/jerry/es.next/regression-test-issue-4884.js b/tests/jerry/regression-test-issue-4884.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4884.js rename to tests/jerry/regression-test-issue-4884.js diff --git a/tests/jerry/es.next/regression-test-issue-4890.js b/tests/jerry/regression-test-issue-4890.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4890.js rename to tests/jerry/regression-test-issue-4890.js diff --git a/tests/jerry/es.next/regression-test-issue-4892.js b/tests/jerry/regression-test-issue-4892.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-4892.js rename to tests/jerry/regression-test-issue-4892.js diff --git a/tests/jerry/es.next/regression-test-issue-612.js b/tests/jerry/regression-test-issue-612.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-612.js rename to tests/jerry/regression-test-issue-612.js diff --git a/tests/jerry/es.next/regression-test-issue-782.js b/tests/jerry/regression-test-issue-782.js similarity index 100% rename from tests/jerry/es.next/regression-test-issue-782.js rename to tests/jerry/regression-test-issue-782.js diff --git a/tests/jerry/es.next/restricted-properties.js b/tests/jerry/restricted-properties.js similarity index 100% rename from tests/jerry/es.next/restricted-properties.js rename to tests/jerry/restricted-properties.js diff --git a/tests/jerry/es.next/set-iterators.js b/tests/jerry/set-iterators.js similarity index 100% rename from tests/jerry/es.next/set-iterators.js rename to tests/jerry/set-iterators.js diff --git a/tests/jerry/es.next/set.js b/tests/jerry/set.js similarity index 100% rename from tests/jerry/es.next/set.js rename to tests/jerry/set.js diff --git a/tests/jerry/es.next/string-fromcodepoint.js b/tests/jerry/string-fromcodepoint.js similarity index 100% rename from tests/jerry/es.next/string-fromcodepoint.js rename to tests/jerry/string-fromcodepoint.js diff --git a/tests/jerry/es.next/string-iterator.js b/tests/jerry/string-iterator.js similarity index 100% rename from tests/jerry/es.next/string-iterator.js rename to tests/jerry/string-iterator.js diff --git a/tests/jerry/es.next/string-prototype-at.js b/tests/jerry/string-prototype-at.js similarity index 100% rename from tests/jerry/es.next/string-prototype-at.js rename to tests/jerry/string-prototype-at.js diff --git a/tests/jerry/es.next/string-prototype-codepointat.js b/tests/jerry/string-prototype-codepointat.js similarity index 100% rename from tests/jerry/es.next/string-prototype-codepointat.js rename to tests/jerry/string-prototype-codepointat.js diff --git a/tests/jerry/es.next/string-prototype-endswith.js b/tests/jerry/string-prototype-endswith.js similarity index 100% rename from tests/jerry/es.next/string-prototype-endswith.js rename to tests/jerry/string-prototype-endswith.js diff --git a/tests/jerry/es.next/string-prototype-includes.js b/tests/jerry/string-prototype-includes.js similarity index 100% rename from tests/jerry/es.next/string-prototype-includes.js rename to tests/jerry/string-prototype-includes.js diff --git a/tests/jerry/es.next/string-prototype-match-all.js b/tests/jerry/string-prototype-match-all.js similarity index 100% rename from tests/jerry/es.next/string-prototype-match-all.js rename to tests/jerry/string-prototype-match-all.js diff --git a/tests/jerry/string-prototype-match.js b/tests/jerry/string-prototype-match.js index 5318d2a3c..b3ade2325 100644 --- a/tests/jerry/string-prototype-match.js +++ b/tests/jerry/string-prototype-match.js @@ -106,3 +106,72 @@ var re = /a/g; re.lastIndex = 3; assert (match_equals ("a".match(re), ["a"])); + +class NewRegExp extends RegExp { + [Symbol.match](str) { + var result = RegExp.prototype[Symbol.match].call(this, str); + var successful = 0; + if (result) { + successful = 1; + } + return successful; + } +} + +var str = 'This is a random string.'; +var regexp = new NewRegExp(/[A-Z]/g); +assert(str.match(regexp) === 1); + +try { +String.prototype.match.call(null, regexp); +assert(false); +} catch (e) { +assert(e instanceof TypeError); +} + +var regexp2 = /[A-Z]/g; +regexp2[Symbol.match] = "foo"; + +try { +str.match(regexp2); +assert(false); +} catch (e) { +assert(e instanceof TypeError); +} + +Object.defineProperty (regexp2, Symbol.match, { get () { throw 5 }}); + +try { +str.match(regexp2); +assert(false); +} catch (e) { +assert(e === 5); +} + +var wrong_sytnax = "str.match(/[A-5]/g"; + +try { +eval(wrong_sytnax); +assert(false); +} catch (e) { +assert(e instanceof SyntaxError); +} + +delete(RegExp.prototype[Symbol.match]); + +try { +str.match(regexp); +assert(false); +} catch (e) { +assert(e instanceof TypeError); +} + +var regexp3 = "foo"; +RegExp.prototype[Symbol.match] = 3; + +try { +str.match(regexp3); +assert(false); +} catch (e) { +assert(e instanceof TypeError); +} diff --git a/tests/jerry/es.next/string-prototype-padding.js b/tests/jerry/string-prototype-padding.js similarity index 100% rename from tests/jerry/es.next/string-prototype-padding.js rename to tests/jerry/string-prototype-padding.js diff --git a/tests/jerry/es.next/string-prototype-repeat.js b/tests/jerry/string-prototype-repeat.js similarity index 100% rename from tests/jerry/es.next/string-prototype-repeat.js rename to tests/jerry/string-prototype-repeat.js diff --git a/tests/jerry/es.next/string-prototype-replace-all.js b/tests/jerry/string-prototype-replace-all.js similarity index 100% rename from tests/jerry/es.next/string-prototype-replace-all.js rename to tests/jerry/string-prototype-replace-all.js diff --git a/tests/jerry/string-prototype-split.js b/tests/jerry/string-prototype-split.js index f216c3262..c18f31b33 100644 --- a/tests/jerry/string-prototype-split.js +++ b/tests/jerry/string-prototype-split.js @@ -149,3 +149,13 @@ catch (e) assert (e instanceof ReferenceError); assert (e.message === "foo"); } + +var str = "foo//bar/baz//foo"; +res = str.split("a", Infinity); +assert (res.length === 0); + +res = str.split(/\/\//, -1); +assert (res.length === 3); +assert (res[0] === "foo"); +assert (res[1] === "bar/baz"); +assert (res[2] === "foo"); diff --git a/tests/jerry/es.next/string-prototype-startswith.js b/tests/jerry/string-prototype-startswith.js similarity index 100% rename from tests/jerry/es.next/string-prototype-startswith.js rename to tests/jerry/string-prototype-startswith.js diff --git a/tests/jerry/string-prototype-trim.js b/tests/jerry/string-prototype-trim.js index 640207e4e..b969730bc 100644 --- a/tests/jerry/string-prototype-trim.js +++ b/tests/jerry/string-prototype-trim.js @@ -89,3 +89,19 @@ assert("\u000A\u000D\u2028\u202911\u000A\u000D\u2028\u2029".trim() === "11"); assert ("\u200B".trim() === '\u200B') assert ("\u200A".trim() === '') assert ("\u00A0".trim() === '') + +var test = " asd "; +assert(test.trimStart() === "asd ") +assert(test.trimStart().length === 5) +assert(test.trimLeft() === "asd ") +assert(test.trimLeft().length === 5) +assert(String.prototype.trimStart === String.prototype.trimLeft) + +assert(test.trimEnd() === " asd") +assert(test.trimEnd().length === 5) +assert(test.trimRight() === " asd") +assert(test.trimRight().length === 5) +assert(String.prototype.trimEnd === String.prototype.trimRight) + +assert(test.trim() === "asd") +assert(test.trim().length === 3) diff --git a/tests/jerry/es.next/string-raw-crash-escaping-backslash.js b/tests/jerry/string-raw-crash-escaping-backslash.js similarity index 100% rename from tests/jerry/es.next/string-raw-crash-escaping-backslash.js rename to tests/jerry/string-raw-crash-escaping-backslash.js diff --git a/tests/jerry/es.next/string-raw.js b/tests/jerry/string-raw.js similarity index 100% rename from tests/jerry/es.next/string-raw.js rename to tests/jerry/string-raw.js diff --git a/tests/jerry/string-upper-lower-case-conversion.js b/tests/jerry/string-upper-lower-case-conversion.js index 1e592e86b..e194f8793 100644 --- a/tests/jerry/string-upper-lower-case-conversion.js +++ b/tests/jerry/string-upper-lower-case-conversion.js @@ -102,3 +102,56 @@ catch (e) { assert (e instanceof TypeError); } + +let start = 0x10000 +let end = 0x10FFFF + +const lower_expected = [66560, 66561, 66562, 66563, 66564, 66565, 66566, 66567, 66568, 66569, 66570, 66571, 66572, + 66573, 66574, 66575, 66576, 66577, 66578, 66579, 66580, 66581, 66582, 66583, 66584, 66585, + 66586, 66587, 66588, 66589, 66590, 66591, 66592, 66593, 66594, 66595, 66596, 66597, 66598, + 66599, 66736, 66737, 66738, 66739, 66740, 66741, 66742, 66743, 66744, 66745, 66746, 66747, + 66748, 66749, 66750, 66751, 66752, 66753, 66754, 66755, 66756, 66757, 66758, 66759, 66760, + 66761, 66762, 66763, 66764, 66765, 66766, 66767, 66768, 66769, 66770, 66771, 68736, 68737, + 68738, 68739, 68740, 68741, 68742, 68743, 68744, 68745, 68746, 68747, 68748, 68749, 68750, + 68751, 68752, 68753, 68754, 68755, 68756, 68757, 68758, 68759, 68760, 68761, 68762, 68763, + 68764, 68765, 68766, 68767, 68768, 68769, 68770, 68771, 68772, 68773, 68774, 68775, 68776, + 68777, 68778, 68779, 68780, 68781, 68782, 68783, 68784, 68785, 68786, 71840, 71841, 71842, + 71843, 71844, 71845, 71846, 71847, 71848, 71849, 71850, 71851, 71852, 71853, 71854, 71855, + 71856, 71857, 71858, 71859, 71860, 71861, 71862, 71863, 71864, 71865, 71866, 71867, 71868, + 71869, 71870, 71871, 93760, 93761, 93762, 93763, 93764, 93765, 93766, 93767, 93768, 93769, + 93770, 93771, 93772, 93773, 93774, 93775, 93776, 93777, 93778, 93779, 93780, 93781, 93782, + 93783, 93784, 93785, 93786, 93787, 93788, 93789, 93790, 93791, 125184, 125185, 125186, 125187, + 125188, 125189, 125190, 125191, 125192, 125193, 125194, 125195, 125196, 125197, 125198, 125199, + 125200, 125201, 125202, 125203, 125204, 125205, 125206, 125207, 125208, 125209, 125210, 125211, + 125212, 125213, 125214, 125215, 125216, 125217]; + +const upper_expected = [66600, 66601, 66602, 66603, 66604, 66605, 66606, 66607, 66608, 66609, 66610, 66611, 66612, + 66613, 66614, 66615, 66616, 66617, 66618, 66619, 66620, 66621, 66622, 66623, 66624, 66625, + 66626, 66627, 66628, 66629, 66630, 66631, 66632, 66633, 66634, 66635, 66636, 66637, 66638, + 66639, 66776, 66777, 66778, 66779, 66780, 66781, 66782, 66783, 66784, 66785, 66786, 66787, + 66788, 66789, 66790, 66791, 66792, 66793, 66794, 66795, 66796, 66797, 66798, 66799, 66800, + 66801, 66802, 66803, 66804, 66805, 66806, 66807, 66808, 66809, 66810, 66811, 68800, 68801, + 68802, 68803, 68804, 68805, 68806, 68807, 68808, 68809, 68810, 68811, 68812, 68813, 68814, + 68815, 68816, 68817, 68818, 68819, 68820, 68821, 68822, 68823, 68824, 68825, 68826, 68827, + 68828, 68829, 68830, 68831, 68832, 68833, 68834, 68835, 68836, 68837, 68838, 68839, 68840, + 68841, 68842, 68843, 68844, 68845, 68846, 68847, 68848, 68849, 68850, 71872, 71873, 71874, + 71875, 71876, 71877, 71878, 71879, 71880, 71881, 71882, 71883, 71884, 71885, 71886, 71887, + 71888, 71889, 71890, 71891, 71892, 71893, 71894, 71895, 71896, 71897, 71898, 71899, 71900, + 71901, 71902, 71903, 93792, 93793, 93794, 93795, 93796, 93797, 93798, 93799, 93800, 93801, + 93802, 93803, 93804, 93805, 93806, 93807, 93808, 93809, 93810, 93811, 93812, 93813, 93814, + 93815, 93816, 93817, 93818, 93819, 93820, 93821, 93822, 93823, 125218, 125219, 125220, 125221, + 125222, 125223, 125224, 125225, 125226, 125227, 125228, 125229, 125230, 125231, 125232, 125233, + 125234, 125235, 125236, 125237, 125238, 125239, 125240, 125241, 125242, 125243, 125244, 125245, + 125246, 125247, 125248, 125249, 125250, 125251]; + +for (let iter of lower_expected) { + let cp = String.fromCodePoint(iter); + assert(cp !== cp.toLowerCase()); +} + +for (let iter of upper_expected) { + let cp = String.fromCodePoint(iter); + assert(cp !== cp.toUpperCase()); +} + +assert("\ud801A".toLowerCase() === "\ud801a"); diff --git a/tests/jerry/es.next/super-assignment.js b/tests/jerry/super-assignment.js similarity index 100% rename from tests/jerry/es.next/super-assignment.js rename to tests/jerry/super-assignment.js diff --git a/tests/jerry/es.next/symbol-computed-object-literal.js b/tests/jerry/symbol-computed-object-literal.js similarity index 100% rename from tests/jerry/es.next/symbol-computed-object-literal.js rename to tests/jerry/symbol-computed-object-literal.js diff --git a/tests/jerry/es.next/symbol-exception.js b/tests/jerry/symbol-exception.js similarity index 100% rename from tests/jerry/es.next/symbol-exception.js rename to tests/jerry/symbol-exception.js diff --git a/tests/jerry/es.next/symbol-in.js b/tests/jerry/symbol-in.js similarity index 100% rename from tests/jerry/es.next/symbol-in.js rename to tests/jerry/symbol-in.js diff --git a/tests/jerry/es.next/symbol-isconcatspreadable.js b/tests/jerry/symbol-isconcatspreadable.js similarity index 100% rename from tests/jerry/es.next/symbol-isconcatspreadable.js rename to tests/jerry/symbol-isconcatspreadable.js diff --git a/tests/jerry/es.next/symbol-key-keyfor.js b/tests/jerry/symbol-key-keyfor.js similarity index 100% rename from tests/jerry/es.next/symbol-key-keyfor.js rename to tests/jerry/symbol-key-keyfor.js diff --git a/tests/jerry/es.next/symbol-prototype-description.js b/tests/jerry/symbol-prototype-description.js similarity index 100% rename from tests/jerry/es.next/symbol-prototype-description.js rename to tests/jerry/symbol-prototype-description.js diff --git a/tests/jerry/es.next/symbol-prototype-symbol-toprimitive.js b/tests/jerry/symbol-prototype-symbol-toprimitive.js similarity index 100% rename from tests/jerry/es.next/symbol-prototype-symbol-toprimitive.js rename to tests/jerry/symbol-prototype-symbol-toprimitive.js diff --git a/tests/jerry/es.next/symbol-prototype-tostring.js b/tests/jerry/symbol-prototype-tostring.js similarity index 100% rename from tests/jerry/es.next/symbol-prototype-tostring.js rename to tests/jerry/symbol-prototype-tostring.js diff --git a/tests/jerry/es.next/symbol-prototype-valueof.js b/tests/jerry/symbol-prototype-valueof.js similarity index 100% rename from tests/jerry/es.next/symbol-prototype-valueof.js rename to tests/jerry/symbol-prototype-valueof.js diff --git a/tests/jerry/es.next/symbol-prototype.toprimitive.js b/tests/jerry/symbol-prototype.toprimitive.js similarity index 100% rename from tests/jerry/es.next/symbol-prototype.toprimitive.js rename to tests/jerry/symbol-prototype.toprimitive.js diff --git a/tests/jerry/es.next/symbol-replace.js b/tests/jerry/symbol-replace.js similarity index 100% rename from tests/jerry/es.next/symbol-replace.js rename to tests/jerry/symbol-replace.js diff --git a/tests/jerry/es.next/symbol-search.js b/tests/jerry/symbol-search.js similarity index 100% rename from tests/jerry/es.next/symbol-search.js rename to tests/jerry/symbol-search.js diff --git a/tests/jerry/es.next/symbol-split.js b/tests/jerry/symbol-split.js similarity index 100% rename from tests/jerry/es.next/symbol-split.js rename to tests/jerry/symbol-split.js diff --git a/tests/jerry/es.next/symbol-unscopables.js b/tests/jerry/symbol-unscopables.js similarity index 100% rename from tests/jerry/es.next/symbol-unscopables.js rename to tests/jerry/symbol-unscopables.js diff --git a/tests/jerry/es.next/symbol.js b/tests/jerry/symbol.js similarity index 100% rename from tests/jerry/es.next/symbol.js rename to tests/jerry/symbol.js diff --git a/tests/jerry/es.next/tagged-template-literal.js b/tests/jerry/tagged-template-literal.js similarity index 100% rename from tests/jerry/es.next/tagged-template-literal.js rename to tests/jerry/tagged-template-literal.js diff --git a/tests/jerry/es.next/template_string.js b/tests/jerry/template_string.js similarity index 100% rename from tests/jerry/es.next/template_string.js rename to tests/jerry/template_string.js diff --git a/tests/jerry/test_suite_15.js b/tests/jerry/test_suite_15.js index 2a6a15445..48cebe6a4 100644 --- a/tests/jerry/test_suite_15.js +++ b/tests/jerry/test_suite_15.js @@ -2460,3 +2460,9 @@ var a = new Array(1, 2, 5); assert(a.length === 3); })(); + +(function tc_15_03_04_02__001() { + assert(Function.prototype.toString.hasOwnProperty('length')); + assert(delete Function.prototype.toString.length); + assert(!Function.prototype.toString.hasOwnProperty('length')); +})(); diff --git a/tests/jerry/es.next/test_suite_19.js b/tests/jerry/test_suite_19.js similarity index 100% rename from tests/jerry/es.next/test_suite_19.js rename to tests/jerry/test_suite_19.js diff --git a/tests/jerry/es.next/test_suite_22.js b/tests/jerry/test_suite_22.js similarity index 100% rename from tests/jerry/es.next/test_suite_22.js rename to tests/jerry/test_suite_22.js diff --git a/tests/jerry/es.next/test_suite_24.js b/tests/jerry/test_suite_24.js similarity index 100% rename from tests/jerry/es.next/test_suite_24.js rename to tests/jerry/test_suite_24.js diff --git a/tests/jerry/es.next/test_suite_25.js b/tests/jerry/test_suite_25.js similarity index 100% rename from tests/jerry/es.next/test_suite_25.js rename to tests/jerry/test_suite_25.js diff --git a/tests/jerry/es.next/to-length.js b/tests/jerry/to-length.js similarity index 100% rename from tests/jerry/es.next/to-length.js rename to tests/jerry/to-length.js diff --git a/tests/jerry/es.next/to-number-string.js b/tests/jerry/to-number-string.js similarity index 100% rename from tests/jerry/es.next/to-number-string.js rename to tests/jerry/to-number-string.js diff --git a/tests/jerry/es.next/to-property-key.js b/tests/jerry/to-property-key.js similarity index 100% rename from tests/jerry/es.next/to-property-key.js rename to tests/jerry/to-property-key.js diff --git a/tests/jerry/es.next/try-catch.js b/tests/jerry/try-catch.js similarity index 100% rename from tests/jerry/es.next/try-catch.js rename to tests/jerry/try-catch.js diff --git a/tests/jerry/es.next/try-pattern.js b/tests/jerry/try-pattern.js similarity index 100% rename from tests/jerry/es.next/try-pattern.js rename to tests/jerry/try-pattern.js diff --git a/tests/jerry/es.next/typedArray-constructor.js b/tests/jerry/typedArray-constructor.js similarity index 100% rename from tests/jerry/es.next/typedArray-constructor.js rename to tests/jerry/typedArray-constructor.js diff --git a/tests/jerry/es.next/typedArray-fill.js b/tests/jerry/typedArray-fill.js similarity index 100% rename from tests/jerry/es.next/typedArray-fill.js rename to tests/jerry/typedArray-fill.js diff --git a/tests/jerry/es.next/typedArray-find-index.js b/tests/jerry/typedArray-find-index.js similarity index 100% rename from tests/jerry/es.next/typedArray-find-index.js rename to tests/jerry/typedArray-find-index.js diff --git a/tests/jerry/es.next/typedArray-find.js b/tests/jerry/typedArray-find.js similarity index 100% rename from tests/jerry/es.next/typedArray-find.js rename to tests/jerry/typedArray-find.js diff --git a/tests/jerry/es.next/typedArray-join.js b/tests/jerry/typedArray-join.js similarity index 100% rename from tests/jerry/es.next/typedArray-join.js rename to tests/jerry/typedArray-join.js diff --git a/tests/jerry/es.next/typedArray-set-with-typedArray.js b/tests/jerry/typedArray-set-with-typedArray.js similarity index 100% rename from tests/jerry/es.next/typedArray-set-with-typedArray.js rename to tests/jerry/typedArray-set-with-typedArray.js diff --git a/tests/jerry/es.next/typedArray-sort.js b/tests/jerry/typedArray-sort.js similarity index 100% rename from tests/jerry/es.next/typedArray-sort.js rename to tests/jerry/typedArray-sort.js diff --git a/tests/jerry/es.next/typedArray-stringify.js b/tests/jerry/typedArray-stringify.js similarity index 100% rename from tests/jerry/es.next/typedArray-stringify.js rename to tests/jerry/typedArray-stringify.js diff --git a/tests/jerry/es.next/typedArray-subarray.js b/tests/jerry/typedArray-subarray.js similarity index 100% rename from tests/jerry/es.next/typedArray-subarray.js rename to tests/jerry/typedArray-subarray.js diff --git a/tests/jerry/es.next/typedArray-tostring.js b/tests/jerry/typedArray-tostring.js similarity index 100% rename from tests/jerry/es.next/typedArray-tostring.js rename to tests/jerry/typedArray-tostring.js diff --git a/tests/jerry/es.next/typedarray-from.js b/tests/jerry/typedarray-from.js similarity index 100% rename from tests/jerry/es.next/typedarray-from.js rename to tests/jerry/typedarray-from.js diff --git a/tests/jerry/es.next/typedarray-of.js b/tests/jerry/typedarray-of.js similarity index 100% rename from tests/jerry/es.next/typedarray-of.js rename to tests/jerry/typedarray-of.js diff --git a/tests/jerry/es.next/typedarray-offset-modulo.js b/tests/jerry/typedarray-offset-modulo.js similarity index 100% rename from tests/jerry/es.next/typedarray-offset-modulo.js rename to tests/jerry/typedarray-offset-modulo.js diff --git a/tests/jerry/es.next/typedarray-prototype-at.js b/tests/jerry/typedarray-prototype-at.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-at.js rename to tests/jerry/typedarray-prototype-at.js diff --git a/tests/jerry/es.next/typedarray-prototype-copy-within.js b/tests/jerry/typedarray-prototype-copy-within.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-copy-within.js rename to tests/jerry/typedarray-prototype-copy-within.js diff --git a/tests/jerry/es.next/typedarray-prototype-entries.js b/tests/jerry/typedarray-prototype-entries.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-entries.js rename to tests/jerry/typedarray-prototype-entries.js diff --git a/tests/jerry/es.next/typedarray-prototype-includes.js b/tests/jerry/typedarray-prototype-includes.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-includes.js rename to tests/jerry/typedarray-prototype-includes.js diff --git a/tests/jerry/es.next/typedarray-prototype-indexof.js b/tests/jerry/typedarray-prototype-indexof.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-indexof.js rename to tests/jerry/typedarray-prototype-indexof.js diff --git a/tests/jerry/es.next/typedarray-prototype-keys.js b/tests/jerry/typedarray-prototype-keys.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-keys.js rename to tests/jerry/typedarray-prototype-keys.js diff --git a/tests/jerry/es.next/typedarray-prototype-lastindexof.js b/tests/jerry/typedarray-prototype-lastindexof.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-lastindexof.js rename to tests/jerry/typedarray-prototype-lastindexof.js diff --git a/tests/jerry/es.next/typedarray-prototype-slice-ext-arraybuffer.js b/tests/jerry/typedarray-prototype-slice-ext-arraybuffer.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-slice-ext-arraybuffer.js rename to tests/jerry/typedarray-prototype-slice-ext-arraybuffer.js diff --git a/tests/jerry/es.next/typedarray-prototype-slice.js b/tests/jerry/typedarray-prototype-slice.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-slice.js rename to tests/jerry/typedarray-prototype-slice.js diff --git a/tests/jerry/es.next/typedarray-prototype-tolocalestring.js b/tests/jerry/typedarray-prototype-tolocalestring.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-tolocalestring.js rename to tests/jerry/typedarray-prototype-tolocalestring.js diff --git a/tests/jerry/es.next/typedarray-prototype-values.js b/tests/jerry/typedarray-prototype-values.js similarity index 100% rename from tests/jerry/es.next/typedarray-prototype-values.js rename to tests/jerry/typedarray-prototype-values.js diff --git a/tests/jerry/es.next/typedarray-put.js b/tests/jerry/typedarray-put.js similarity index 100% rename from tests/jerry/es.next/typedarray-put.js rename to tests/jerry/typedarray-put.js diff --git a/tests/jerry/es.next/typedarray-symbol-properties.js b/tests/jerry/typedarray-symbol-properties.js similarity index 100% rename from tests/jerry/es.next/typedarray-symbol-properties.js rename to tests/jerry/typedarray-symbol-properties.js diff --git a/tests/jerry/es.next/unicode-escape-identifiers.js b/tests/jerry/unicode-escape-identifiers.js similarity index 100% rename from tests/jerry/es.next/unicode-escape-identifiers.js rename to tests/jerry/unicode-escape-identifiers.js diff --git a/tests/jerry/es.next/weakmap.js b/tests/jerry/weakmap.js similarity index 100% rename from tests/jerry/es.next/weakmap.js rename to tests/jerry/weakmap.js diff --git a/tests/jerry/es.next/weakref.js b/tests/jerry/weakref.js similarity index 100% rename from tests/jerry/es.next/weakref.js rename to tests/jerry/weakref.js diff --git a/tests/jerry/es.next/weakset.js b/tests/jerry/weakset.js similarity index 100% rename from tests/jerry/es.next/weakset.js rename to tests/jerry/weakset.js diff --git a/tests/snapshot-tests-skiplist.txt b/tests/snapshot-tests-skiplist.txt new file mode 100644 index 000000000..687808ea5 --- /dev/null +++ b/tests/snapshot-tests-skiplist.txt @@ -0,0 +1,61 @@ +tests/jerry/bigint-typedarray-prototype-filter.js +tests/jerry/bigint5.js +tests/jerry/bigint6.js +tests/jerry/bigint7.js +tests/jerry/bigint8.js +tests/jerry/bigint9.js +tests/jerry/logical-assignment.js +tests/jerry/module-circular-01.mjs +tests/jerry/module-circular-02.mjs +tests/jerry/module-circular-03.mjs +tests/jerry/module-circular-04.mjs +tests/jerry/module-circular-05.mjs +tests/jerry/module-circular-06.mjs +tests/jerry/module-circular-07.mjs +tests/jerry/module-circular-08.mjs +tests/jerry/module-circular-09.mjs +tests/jerry/module-export-01.mjs +tests/jerry/module-export-02.mjs +tests/jerry/module-export-03.mjs +tests/jerry/module-export-04.mjs +tests/jerry/module-export-05.mjs +tests/jerry/module-export-06.mjs +tests/jerry/module-export-07.mjs +tests/jerry/module-export-08.mjs +tests/jerry/module-export-09.mjs +tests/jerry/module-export-10.mjs +tests/jerry/module-export-default-1.mjs +tests/jerry/module-export-default-2.mjs +tests/jerry/module-export-default-3.mjs +tests/jerry/module-export-default-4.mjs +tests/jerry/module-export-default-5.mjs +tests/jerry/module-export-default-6.mjs +tests/jerry/module-export-default-7.mjs +tests/jerry/module-export-default-8.mjs +tests/jerry/module-export-default-9.mjs +tests/jerry/module-export-default-10.mjs +tests/jerry/module-export-default-main.mjs +tests/jerry/module-export-fail-test.mjs +tests/jerry/module-import-01.mjs +tests/jerry/module-import-02.mjs +tests/jerry/module-import-03.mjs +tests/jerry/module-import-04.mjs +tests/jerry/module-import-05.mjs +tests/jerry/module-import-06.mjs +tests/jerry/module-import-07.mjs +tests/jerry/module-namespace-01.mjs +tests/jerry/module-namespace-02.mjs +tests/jerry/module-namespace-03.mjs +tests/jerry/module-namespace-04.mjs +tests/jerry/module-source-name-export.mjs +tests/jerry/module-source-name.mjs +tests/jerry/regexp-dotAll.js +tests/jerry/regression-test-issue-2842.mjs +tests/jerry/regression-test-issue-3812.js +tests/jerry/regression-test-issue-3866.js +tests/jerry/regression-test-issue-3893.js +tests/jerry/regression-test-issue-4138.js +tests/jerry/regression-test-issue-4139.js +tests/jerry/regression-test-issue-4432.js +tests/jerry/string-raw.js +tests/jerry/tagged-template-literal.js diff --git a/tests/test262-es6-excludelist.xml b/tests/test262-es6-excludelist.xml deleted file mode 100644 index 2b203c4fb..000000000 --- a/tests/test262-es6-excludelist.xml +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Promise.all no longer uses @@species - Promise.race no longer uses @@species - - - For-in supports proxy - For-in supports proxy - For-in supports proxy - For-in supports proxy - For-in supports proxy - - - For-in supports proxy - ES2016 change: Reflect.enumerate has been removed - ES2016 change: Reflect.enumerate has been removed - ES2016 change: Reflect.enumerate has been removed - ES2016 change: Reflect.enumerate has been removed - ES2016 change: Reflect.enumerate has been removed - ES2016 change: Reflect.enumerate has been removed - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - lastIndex no longer needs to be updated if not sticky or global - lastIndex no longer needs to be updated if not sticky or global - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - RegExpBuiltinExec no longer uses accessors to get flags - Test is outdated: ES11, 21.2.5.13 13 - RegExpBuiltinExec no longer uses accessors to get flags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No longer a SyntaxError in ES11 - - - - - - - - - - - - - - - - - - - - - - - - - ES2016 change: Generator methods isn't constructor - https://github.com/tc39/ecma262/pull/171 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No longer a SyntaxError in ES11 - No longer a SyntaxError in ES11 - ES2018 change: next method must be cached - - - - - ES2019 change: catch without parameter is allowed - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - Unicode 13: 0x180E is no longer whitespace character - lastIndex handling in Symbol.search has changed since ES6 - lastIndex handling in Symbol.search has changed since ES6 - RegExp accessors should no longer throw when called on the RegExp prototype - RegExp accessors should no longer throw when called on the RegExp prototype - RegExp accessors should no longer throw when called on the RegExp prototype - RegExp accessors should no longer throw when called on the RegExp prototype - ES11: arguments object no longer has caller property - ES11: arguments object no longer has caller property - ES11: arguments object no longer has caller property - ES11: arguments object no longer has caller property - ES11: arguments object no longer has caller property - ES11: arguments object no longer has caller property - ES11: arguments object no longer has caller property - ES11+: ProxyCreate does not check Proxy handler and target. - ES11+: ProxyCreate does not check Proxy handler and target. - Outdated test, anonymous functions should now have a name property - Outdated test, anonymous functions should now have a name property - Outdated test, anonymous functions should now have a name property - Outdated test, anonymous functions should now have a name property - ES12 15.7.14.15.d: The evaluation order has been changed - ES12 15.7.14.15.d: The evaluation order has been changed - ES12 15.7.14.15.d: The evaluation order has been changed - diff --git a/tests/test262-esnext-excludelist.xml b/tests/test262-excludelist.xml similarity index 100% rename from tests/test262-esnext-excludelist.xml rename to tests/test262-excludelist.xml diff --git a/tests/unit-core/test-api-object-property-names.c b/tests/unit-core/test-api-object-property-names.c index 783b1b528..2bbe08bb9 100644 --- a/tests/unit-core/test-api-object-property-names.c +++ b/tests/unit-core/test-api-object-property-names.c @@ -80,11 +80,6 @@ define_property (const jerry_value_t object, int main (void) { - if (!jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - return 0; - } - TEST_INIT (); jerry_init (JERRY_INIT_EMPTY); diff --git a/tests/unit-core/test-api-promise.c b/tests/unit-core/test-api-promise.c index 3ad7050e9..1b8d86bd8 100644 --- a/tests/unit-core/test-api-promise.c +++ b/tests/unit-core/test-api-promise.c @@ -181,12 +181,6 @@ test_promise_from_js (void) int main (void) { - if (!jerry_feature_enabled (JERRY_FEATURE_PROMISE)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "Promise is disabled!\n"); - return 0; - } - jerry_init (JERRY_INIT_EMPTY); test_promise_resolve_fail (); diff --git a/tests/unit-core/test-api-value-type.c b/tests/unit-core/test-api-value-type.c index b3b2c82ba..9890c1ead 100644 --- a/tests/unit-core/test-api-value-type.c +++ b/tests/unit-core/test-api-value-type.c @@ -85,18 +85,15 @@ main (void) jerry_value_free (entries[idx].value); } - if (jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_value_t symbol_desc_value = jerry_string_sz ("foo"); - jerry_value_t symbol_value = jerry_symbol_with_description (symbol_desc_value); - jerry_type_t type_info = jerry_value_type (symbol_value); + jerry_value_t symbol_desc_value = jerry_string_sz ("foo"); + jerry_value_t symbol_value = jerry_symbol_with_description (symbol_desc_value); + jerry_type_t type_info = jerry_value_type (symbol_value); - TEST_ASSERT (type_info != JERRY_TYPE_NONE); - TEST_ASSERT (type_info == JERRY_TYPE_SYMBOL); + TEST_ASSERT (type_info != JERRY_TYPE_NONE); + TEST_ASSERT (type_info == JERRY_TYPE_SYMBOL); - jerry_value_free (symbol_value); - jerry_value_free (symbol_desc_value); - } + jerry_value_free (symbol_value); + jerry_value_free (symbol_desc_value); if (jerry_feature_enabled (JERRY_FEATURE_BIGINT)) { diff --git a/tests/unit-core/test-api.c b/tests/unit-core/test-api.c index b77f2733e..a433a8a9f 100644 --- a/tests/unit-core/test-api.c +++ b/tests/unit-core/test-api.c @@ -866,8 +866,6 @@ main (void) jerry_cleanup (); } - /* Test parsing/executing scripts with lexically scoped global variables multiple times. */ - if (jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) { jerry_init (JERRY_INIT_EMPTY); const jerry_char_t scoped_src_p[] = "let a; this.b = 5"; diff --git a/tests/unit-core/test-get-own-property.c b/tests/unit-core/test-get-own-property.c index 82d955869..4802dffc4 100644 --- a/tests/unit-core/test-get-own-property.c +++ b/tests/unit-core/test-get-own-property.c @@ -182,26 +182,23 @@ main (void) jerry_value_free (object); } - if (jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - object = create_object ("'use strict'\n" - "var sym = Symbol();\n" - "({ pp:sym, [sym]:'Prop' })"); + object = create_object ("'use strict'\n" + "var sym = Symbol();\n" + "({ pp:sym, [sym]:'Prop' })"); - found = false; - jerry_value_t symbol = jerry_object_find_own (object, pp_string, object, &found); - TEST_ASSERT (jerry_value_is_symbol (symbol)); - TEST_ASSERT (found); + found = false; + jerry_value_t symbol = jerry_object_find_own (object, pp_string, object, &found); + TEST_ASSERT (jerry_value_is_symbol (symbol)); + TEST_ASSERT (found); - found = false; - result = jerry_object_find_own (object, symbol, object, &found); - compare_string (result, "Prop"); - TEST_ASSERT (found); - jerry_value_free (result); + found = false; + result = jerry_object_find_own (object, symbol, object, &found); + compare_string (result, "Prop"); + TEST_ASSERT (found); + jerry_value_free (result); - jerry_value_free (symbol); - jerry_value_free (object); - } + jerry_value_free (symbol); + jerry_value_free (object); jerry_value_free (pp_string); jerry_value_free (qq_string); diff --git a/tests/unit-core/test-internal-properties.c b/tests/unit-core/test-internal-properties.c index a0010fac1..2995a9169 100644 --- a/tests/unit-core/test-internal-properties.c +++ b/tests/unit-core/test-internal-properties.c @@ -29,31 +29,17 @@ main (void) jerry_value_t prop_name_2 = jerry_string_sz ("non_hidden_prop"); jerry_value_t prop_name_3; - if (jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_value_t prop_name_3_desc = jerry_string_sz ("bar"); - prop_name_3 = jerry_symbol_with_description (prop_name_3_desc); - jerry_value_free (prop_name_3_desc); - } - else - { - prop_name_3 = jerry_string_sz ("non_hidden_string_prop"); - } + jerry_value_t prop_name_3_desc = jerry_string_sz ("bar"); + prop_name_3 = jerry_symbol_with_description (prop_name_3_desc); + jerry_value_free (prop_name_3_desc); jerry_value_t internal_prop_name_1 = jerry_string_sz ("hidden_foo"); jerry_value_t internal_prop_name_2 = jerry_string_sz ("hidden_prop"); jerry_value_t internal_prop_name_3; - if (jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_value_t internal_prop_name_3_desc = jerry_string_sz ("bar"); - internal_prop_name_3 = jerry_symbol_with_description (internal_prop_name_3_desc); - jerry_value_free (internal_prop_name_3_desc); - } - else - { - internal_prop_name_3 = jerry_string_sz ("hidden_string_prop"); - } + jerry_value_t internal_prop_name_3_desc = jerry_string_sz ("bar"); + internal_prop_name_3 = jerry_symbol_with_description (internal_prop_name_3_desc); + jerry_value_free (internal_prop_name_3_desc); jerry_value_t prop_value_1 = jerry_number (5.5); jerry_value_t prop_value_2 = jerry_number (6.5); diff --git a/tests/unit-core/test-newtarget.c b/tests/unit-core/test-newtarget.c index 031916c88..d5b28240f 100644 --- a/tests/unit-core/test-newtarget.c +++ b/tests/unit-core/test-newtarget.c @@ -108,13 +108,6 @@ construct_handler (const jerry_call_info_t *call_info_p, /**< call information * int main (void) { - /* Test JERRY_FEATURE_SYMBOL feature as it is a must-have in ES.next */ - if (!jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "Skipping test, ES.next support is disabled.\n"); - return 0; - } - jerry_init (JERRY_INIT_EMPTY); jerry_value_t demo_func = register_js_function ("Demo", construct_handler); diff --git a/tests/unit-core/test-promise-callback.c b/tests/unit-core/test-promise-callback.c index 8686cd6f3..f99b5f610 100644 --- a/tests/unit-core/test-promise-callback.c +++ b/tests/unit-core/test-promise-callback.c @@ -123,12 +123,6 @@ main (void) { TEST_INIT (); - if (!jerry_feature_enabled (JERRY_FEATURE_PROMISE)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "Promise is disabled!\n"); - return 0; - } - /* The test system enables this feature when Promises are enabled. */ TEST_ASSERT (jerry_feature_enabled (JERRY_FEATURE_PROMISE_CALLBACK)); diff --git a/tests/unit-core/test-promise.c b/tests/unit-core/test-promise.c index 2800f6e9a..b66ce791c 100644 --- a/tests/unit-core/test-promise.c +++ b/tests/unit-core/test-promise.c @@ -107,13 +107,6 @@ main (void) { jerry_init (JERRY_INIT_EMPTY); - if (!jerry_feature_enabled (JERRY_FEATURE_PROMISE)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "Promise is disabled!\n"); - jerry_cleanup (); - return 0; - } - register_js_function ("create_promise1", create_promise1_handler); register_js_function ("create_promise2", create_promise2_handler); register_js_function ("assert", assert_handler); diff --git a/tests/unit-core/test-regexp-dotall-unicode.c b/tests/unit-core/test-regexp-dotall-unicode.c index 1a54aeec8..64453523c 100644 --- a/tests/unit-core/test-regexp-dotall-unicode.c +++ b/tests/unit-core/test-regexp-dotall-unicode.c @@ -23,15 +23,9 @@ main (void) TEST_INIT (); jerry_init (JERRY_INIT_EMPTY); - if (!jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "ES.next support is disabled\n"); - jerry_cleanup (); - return 0; - } - jerry_value_t undefined_this_arg = jerry_undefined (); char pattern2[] = "\\u{61}.\\u{62}"; + uint16_t flags = JERRY_REGEXP_FLAG_DOTALL | JERRY_REGEXP_FLAG_UNICODE | JERRY_REGEXP_FLAG_STICKY; jerry_value_t regex_obj = jerry_regexp_sz (pattern2, flags); TEST_ASSERT (jerry_value_is_object (regex_obj)); diff --git a/tests/unit-core/test-regression-3588.c b/tests/unit-core/test-regression-3588.c index 35eb55387..87a2dea19 100644 --- a/tests/unit-core/test-regression-3588.c +++ b/tests/unit-core/test-regression-3588.c @@ -37,13 +37,6 @@ construct_handler (const jerry_call_info_t *call_info_p, /**< call information * int main (void) { - /* Test JERRY_FEATURE_SYMBOL feature as it is a must-have in ES.next */ - if (!jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "Skipping test, ES.next support is disabled.\n"); - return 0; - } - jerry_init (JERRY_INIT_EMPTY); { diff --git a/tests/unit-core/test-script-user-value.c b/tests/unit-core/test-script-user-value.c index 9538f5ebc..8effb6eca 100644 --- a/tests/unit-core/test-script-user-value.c +++ b/tests/unit-core/test-script-user-value.c @@ -130,13 +130,9 @@ main (void) parse_options.options = JERRY_PARSE_HAS_USER_VALUE; test_parse_function (source_p, &parse_options, true); - /* There is no test for ESNEXT, using SYMBOL instead. */ - if (jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - source_p = TEST_STRING_LITERAL ("(class {})"); - parse_options.options = JERRY_PARSE_HAS_USER_VALUE; - test_parse (source_p, &parse_options, true); - } + source_p = TEST_STRING_LITERAL ("(class {})"); + parse_options.options = JERRY_PARSE_HAS_USER_VALUE; + test_parse (source_p, &parse_options, true); source_p = TEST_STRING_LITERAL ("eval('function f() {}')\n" "f"); diff --git a/tests/unit-core/test-symbol.c b/tests/unit-core/test-symbol.c index 20b196c20..bbbc0c017 100644 --- a/tests/unit-core/test-symbol.c +++ b/tests/unit-core/test-symbol.c @@ -33,12 +33,6 @@ int main (void) { - if (!jerry_feature_enabled (JERRY_FEATURE_SYMBOL)) - { - jerry_log (JERRY_LOG_LEVEL_ERROR, "Symbol support is disabled!\n"); - return 0; - } - jerry_init (JERRY_INIT_EMPTY); jerry_value_t object = jerry_object (); diff --git a/tests/unit-core/test-to-length.c b/tests/unit-core/test-to-length.c index c2b43701d..a091188e5 100644 --- a/tests/unit-core/test-to-length.c +++ b/tests/unit-core/test-to-length.c @@ -78,11 +78,7 @@ main (void) ecma_free_value (negative); TEST_ASSERT (!ECMA_IS_VALUE_ERROR (result)); -#if JERRY_ESNEXT TEST_ASSERT (num == 0); -#else /* !JERRY_ESNEXT */ - TEST_ASSERT (num == 4294967270); -#endif /* JERRY_ESNEXT */ /* +infinity */ ecma_value_t positive_infinity = ecma_make_number_value (ecma_number_make_infinity (false)); @@ -92,11 +88,7 @@ main (void) ecma_free_value (positive_infinity); TEST_ASSERT (!ECMA_IS_VALUE_ERROR (result)); -#if JERRY_ESNEXT TEST_ASSERT ((ecma_number_t) num == ECMA_NUMBER_MAX_SAFE_INTEGER); -#else /* !JERRY_ESNEXT */ - TEST_ASSERT (num == 0); -#endif /* JERRY_ESNEXT */ /* -infinity */ ecma_value_t negative_infinity = ecma_make_number_value (ecma_number_make_infinity (true)); diff --git a/tools/run-tests.py b/tools/run-tests.py index d3485e247..92550cbf9 100755 --- a/tools/run-tests.py +++ b/tools/run-tests.py @@ -39,10 +39,8 @@ Options.__new__.__defaults__ = ([], [], False) def skip_if(condition, desc): return desc if condition else False -OPTIONS_COMMON = ['--lto=off'] +OPTIONS_COMMON = ['--lto=off', '--function-to-string=on'] OPTIONS_PROFILE_MIN = ['--profile=minimal'] -OPTIONS_PROFILE_ES51 = ['--profile=es5.1'] -OPTIONS_PROFILE_ESNEXT = ['--profile=es.next', '--function-to-string=on'] OPTIONS_STACK_LIMIT = ['--stack-limit=96'] OPTIONS_GC_MARK_LIMIT = ['--gc-mark-limit=16'] OPTIONS_MEM_STRESS = ['--mem-stress-test=on'] @@ -50,57 +48,43 @@ OPTIONS_DEBUG = ['--debug'] OPTIONS_SNAPSHOT = ['--snapshot-save=on', '--snapshot-exec=on', '--jerry-cmdline-snapshot=on'] OPTIONS_UNITTESTS = ['--unittests=on', '--jerry-cmdline=off', '--error-messages=on', '--snapshot-save=on', '--snapshot-exec=on', '--vm-exec-stop=on', - '--vm-throw=on', '--line-info=on', '--mem-stats=on'] + '--vm-throw=on', '--line-info=on', '--mem-stats=on', '--promise-callback=on'] OPTIONS_DOCTESTS = ['--doctests=on', '--jerry-cmdline=off', '--error-messages=on', '--snapshot-save=on', '--snapshot-exec=on', '--vm-exec-stop=on'] +OPTIONS_PROMISE_CALLBACK = ['--promise-callback=on'] # Test options for unittests JERRY_UNITTESTS_OPTIONS = [ - Options('unittests-es.next', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ESNEXT - + ['--promise-callback=on']), - Options('doctests-es.next', - OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROFILE_ESNEXT - + ['--promise-callback=on']), - Options('unittests-es5.1', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51), - Options('doctests-es5.1', - OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROFILE_ES51), - Options('unittests-es5.1-init-fini', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 + Options('doctests', + OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROMISE_CALLBACK), + Options('unittests', + OPTIONS_COMMON + OPTIONS_UNITTESTS), + Options('unittests-init-fini', + OPTIONS_COMMON + OPTIONS_UNITTESTS + ['--cmake-param=-DFEATURE_INIT_FINI=ON']), - Options('unittests-es5.1-math', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 - + ['--jerry-math=on']), + Options('unittests-math', + OPTIONS_COMMON + OPTIONS_UNITTESTS + ['--jerry-math=on']), ] # Test options for jerry-tests JERRY_TESTS_OPTIONS = [ - Options('jerry_tests-es.next', - OPTIONS_COMMON + OPTIONS_PROFILE_ESNEXT + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT - + OPTIONS_MEM_STRESS), - Options('jerry_tests-es5.1', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT), - Options('jerry_tests-es5.1-snapshot', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_SNAPSHOT + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT, + Options('jerry_tests', + OPTIONS_COMMON + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + OPTIONS_MEM_STRESS), + Options('jerry_tests-snapshot', + OPTIONS_COMMON + OPTIONS_SNAPSHOT + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT, ['--snapshot']), - Options('jerry_tests-es5.1-cpointer_32bit', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + Options('jerry_tests-cpointer_32bit', + OPTIONS_COMMON + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + ['--cpointer-32bit=on', '--mem-heap=1024']), - Options('jerry_tests-es5.1-external_context', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + Options('jerry_tests-external_context', + OPTIONS_COMMON + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + ['--external-context=on']), ] # Test options for test262 TEST262_TEST_SUITE_OPTIONS = [ - Options('test262_tests', OPTIONS_PROFILE_ES51), -] - -# Test options for test262-esnext -TEST262_ESNEXT_TEST_SUITE_OPTIONS = [ - Options('test262_tests_esnext', OPTIONS_PROFILE_ESNEXT - + ['--line-info=on', '--error-messages=on', '--mem-heap=20480']), + Options('test262', + OPTIONS_COMMON + ['--line-info=on', '--error-messages=on', '--mem-heap=20480']), ] # Test options for jerry-debugger @@ -192,11 +176,9 @@ def get_arguments(): help='Run jerry-debugger tests') parser.add_argument('--jerry-tests', action='store_true', help='Run jerry-tests') - parser.add_argument('--test262', action='store_true', - help='Run test262 - ES5.1') - parser.add_argument('--test262-esnext', default=False, const='default', + parser.add_argument('--test262', default=False, const='default', nargs='?', choices=['default', 'all', 'update'], - help='Run test262 - ESnext. default: all tests except excludelist, ' + + help='Run test262 - default: all tests except excludelist, ' + 'all: all tests, update: all tests and update excludelist') parser.add_argument('--test262-test-list', metavar='LIST', help='Add a comma separated list of tests or directories to run in test262 test suite') @@ -213,12 +195,6 @@ def get_arguments(): script_args = parser.parse_args() - if script_args.test262_test_list and not \ - (script_args.test262 or script_args.test262_esnext): - print("--test262-test-list is only allowed with --test262 or --test262-esnext\n") - parser.print_help() - sys.exit(1) - return script_args BINARY_CACHE = {} @@ -379,10 +355,10 @@ def run_jerry_tests(options): skip_list = [] - if '--profile=es.next' in job.build_args: - skip_list.append(os.path.join('es5.1', '')) - else: - skip_list.append(os.path.join('es.next', '')) + if job.name == 'jerry_tests-snapshot': + with open(settings.SNAPSHOT_TESTS_SKIPLIST, 'r') as snapshot_skip_list: + for line in snapshot_skip_list: + skip_list.append(line.rstrip()) if options.skip_list: skip_list.append(options.skip_list) @@ -400,11 +376,7 @@ def run_jerry_tests(options): def run_test262_test_suite(options): ret_build = ret_test = 0 - jobs = [] - if options.test262: - jobs.extend(TEST262_TEST_SUITE_OPTIONS) - if options.test262_esnext: - jobs.extend(TEST262_ESNEXT_TEST_SUITE_OPTIONS) + jobs = TEST262_TEST_SUITE_OPTIONS for job in jobs: ret_build, build_dir_path = create_binary(job, options) @@ -416,15 +388,10 @@ def run_test262_test_suite(options): settings.TEST262_RUNNER_SCRIPT, '--engine', get_binary_path(build_dir_path), '--test262-object', - '--test-dir', settings.TEST262_TEST_SUITE_DIR + '--test-dir', settings.TEST262_TEST_SUITE_DIR, + '--mode', options.test262 ] - if job.name.endswith('esnext'): - test_cmd.append('--esnext') - test_cmd.append(options.test262_esnext) - else: - test_cmd.append('--es51') - if job.test_args: test_cmd.extend(job.test_args) @@ -492,7 +459,7 @@ def main(options): Check(options.check_strings, run_check, [settings.STRINGS_SCRIPT]), Check(options.jerry_debugger, run_jerry_debugger_tests, options), Check(options.jerry_tests, run_jerry_tests, options), - Check(options.test262 or options.test262_esnext, run_test262_test_suite, options), + Check(options.test262, run_test262_test_suite, options), Check(options.unittests, run_unittests, options), Check(options.buildoption_test, run_buildoption_test, options), ] diff --git a/tools/runners/run-test-suite-test262.py b/tools/runners/run-test-suite-test262.py index 06a727a51..240c863fa 100755 --- a/tools/runners/run-test-suite-test262.py +++ b/tools/runners/run-test-suite-test262.py @@ -18,7 +18,6 @@ from __future__ import print_function import argparse import os import re -import shutil import subprocess import sys @@ -42,28 +41,19 @@ def get_arguments(): parser.add_argument('--test-dir', metavar='DIR', required=True, help='Directory contains test262 test suite') group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('--es51', action='store_true', - help='Run test262 ES5.1 version') - group.add_argument('--esnext', default=False, const='default', - nargs='?', choices=['default', 'all', 'update'], - help='Run test262 - ES.next. default: all tests except excludelist, ' + - 'all: all tests, update: all tests and update excludelist') parser.add_argument('--test262-test-list', metavar='LIST', help='Add a comma separated list of tests or directories to run in test262 test suite') + group.add_argument('--mode', default=False, const='default', + nargs='?', choices=['default', 'all', 'update'], + help='Run test262 - default: all tests except excludelist, ' + + 'all: all tests, update: all tests and update excludelist') args = parser.parse_args() - if args.esnext: - args.test_dir = os.path.join(args.test_dir, 'esnext') - args.test262_harness_dir = os.path.abspath(os.path.dirname(__file__)) - args.test262_git_hash = '00f682e7467bd5cb0e5b1f02a7d26420f450aee0' - args.excludelist_path = os.path.join('tests', 'test262-esnext-excludelist.xml') - else: - args.test_dir = os.path.join(args.test_dir, 'es51') - args.test262_harness_dir = args.test_dir - args.test262_git_hash = 'es5-tests' - - args.mode = args.esnext + args.test_dir = os.path.join(args.test_dir, 'esnext') + args.test262_harness_dir = os.path.abspath(os.path.dirname(__file__)) + args.test262_git_hash = '00f682e7467bd5cb0e5b1f02a7d26420f450aee0' + args.excludelist_path = os.path.join('tests', 'test262-excludelist.xml') return args @@ -81,18 +71,8 @@ def prepare_test262_test_suite(args): return_code = subprocess.call(['git', 'checkout', args.test262_git_hash], cwd=args.test_dir) assert not return_code, 'Cloning test262 repository failed - invalid git revision.' - if args.es51: - path_to_remove = os.path.join(args.test_dir, 'test', 'suite', 'bestPractice') - if os.path.isdir(path_to_remove): - shutil.rmtree(path_to_remove) - - path_to_remove = os.path.join(args.test_dir, 'test', 'suite', 'intl402') - if os.path.isdir(path_to_remove): - shutil.rmtree(path_to_remove) - return 0 - def update_exclude_list(args): print("=== Summary - updating excludelist ===\n") passing_tests = set() @@ -173,10 +153,7 @@ def main(args): if sys.version_info.major >= 3: kwargs['errors'] = 'ignore' - if args.es51: - test262_harness_path = os.path.join(args.test262_harness_dir, 'tools/packaging/test262.py') - else: - test262_harness_path = os.path.join(args.test262_harness_dir, 'test262-harness.py') + test262_harness_path = os.path.join(args.test262_harness_dir, 'test262-harness.py') test262_command = get_platform_cmd_prefix() + \ [test262_harness_path, diff --git a/tools/settings.py b/tools/settings.py index 5e48d89a2..7d8d98ea4 100755 --- a/tools/settings.py +++ b/tools/settings.py @@ -21,6 +21,7 @@ PROJECT_DIR = path.normpath(path.join(TOOLS_DIR, '..')) DEBUGGER_TESTS_DIR = path.join(PROJECT_DIR, 'tests/debugger') JERRY_TESTS_DIR = path.join(PROJECT_DIR, 'tests/jerry') TEST262_TEST_SUITE_DIR = path.join(PROJECT_DIR, 'tests/test262') +SNAPSHOT_TESTS_SKIPLIST = path.join(PROJECT_DIR, 'tests/snapshot-tests-skiplist.txt') BUILD_SCRIPT = path.join(TOOLS_DIR, 'build.py') CPPCHECK_SCRIPT = path.join(TOOLS_DIR, 'check-cppcheck.sh')