@engine262/engine262 0.0.1-07c72085c73f960bcf0aa06db807321f3b446518
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +179 -0
- package/bin/engine262.js +6 -0
- package/declaration/abstract-ops/all.d.mts +35 -0
- package/declaration/abstract-ops/all.d.mts.map +1 -0
- package/declaration/abstract-ops/arguments-operations.d.mts +17 -0
- package/declaration/abstract-ops/arguments-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/array-objects.d.mts +23 -0
- package/declaration/abstract-ops/array-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/arraybuffer-objects.d.mts +44 -0
- package/declaration/abstract-ops/arraybuffer-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/async-function-operations.d.mts +9 -0
- package/declaration/abstract-ops/async-function-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/async-generator-objects.d.mts +42 -0
- package/declaration/abstract-ops/async-generator-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/data-types-and-values.d.mts +6 -0
- package/declaration/abstract-ops/data-types-and-values.d.mts.map +1 -0
- package/declaration/abstract-ops/dataview-objects.d.mts +32 -0
- package/declaration/abstract-ops/dataview-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/date-objects.d.mts +46 -0
- package/declaration/abstract-ops/date-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/error-objects.d.mts +5 -0
- package/declaration/abstract-ops/error-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/execution-contexts.d.mts +22 -0
- package/declaration/abstract-ops/execution-contexts.d.mts.map +1 -0
- package/declaration/abstract-ops/function-operations.d.mts +85 -0
- package/declaration/abstract-ops/function-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/generator-operations.d.mts +37 -0
- package/declaration/abstract-ops/generator-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/global-object.d.mts +7 -0
- package/declaration/abstract-ops/global-object.d.mts.map +1 -0
- package/declaration/abstract-ops/immutable-prototype-objects.d.mts +7 -0
- package/declaration/abstract-ops/immutable-prototype-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/import-calls.d.mts +5 -0
- package/declaration/abstract-ops/import-calls.d.mts.map +1 -0
- package/declaration/abstract-ops/iterator-operations.d.mts +56 -0
- package/declaration/abstract-ops/iterator-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/module-namespace-exotic-objects.d.mts +13 -0
- package/declaration/abstract-ops/module-namespace-exotic-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/module-records.d.mts +34 -0
- package/declaration/abstract-ops/module-records.d.mts.map +1 -0
- package/declaration/abstract-ops/notational-conventions.d.mts +8 -0
- package/declaration/abstract-ops/notational-conventions.d.mts.map +1 -0
- package/declaration/abstract-ops/object-operations.d.mts +96 -0
- package/declaration/abstract-ops/object-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/objects.d.mts +31 -0
- package/declaration/abstract-ops/objects.d.mts.map +1 -0
- package/declaration/abstract-ops/private-names.d.mts +36 -0
- package/declaration/abstract-ops/private-names.d.mts.map +1 -0
- package/declaration/abstract-ops/promise-operations.d.mts +62 -0
- package/declaration/abstract-ops/promise-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/proxy-objects.d.mts +7 -0
- package/declaration/abstract-ops/proxy-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/realms.d.mts +174 -0
- package/declaration/abstract-ops/realms.d.mts.map +1 -0
- package/declaration/abstract-ops/reference-operations.d.mts +27 -0
- package/declaration/abstract-ops/reference-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/regexp-objects.d.mts +40 -0
- package/declaration/abstract-ops/regexp-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/spec-types.d.mts +39 -0
- package/declaration/abstract-ops/spec-types.d.mts.map +1 -0
- package/declaration/abstract-ops/string-objects.d.mts +8 -0
- package/declaration/abstract-ops/string-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/symbol-objects.d.mts +6 -0
- package/declaration/abstract-ops/symbol-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/testing-comparison.d.mts +46 -0
- package/declaration/abstract-ops/testing-comparison.d.mts.map +1 -0
- package/declaration/abstract-ops/type-conversion.d.mts +55 -0
- package/declaration/abstract-ops/type-conversion.d.mts.map +1 -0
- package/declaration/abstract-ops/typedarray-objects.d.mts +33 -0
- package/declaration/abstract-ops/typedarray-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/weak-operations.d.mts +16 -0
- package/declaration/abstract-ops/weak-operations.d.mts.map +1 -0
- package/declaration/api-types.d.mts +3 -0
- package/declaration/api-types.d.mts.map +1 -0
- package/declaration/api.d.mts +63 -0
- package/declaration/api.d.mts.map +1 -0
- package/declaration/completion.d.mts +163 -0
- package/declaration/completion.d.mts.map +1 -0
- package/declaration/engine.d.mts +143 -0
- package/declaration/engine.d.mts.map +1 -0
- package/declaration/environment.d.mts +209 -0
- package/declaration/environment.d.mts.map +1 -0
- package/declaration/evaluator.d.mts +14 -0
- package/declaration/evaluator.d.mts.map +1 -0
- package/declaration/helpers.d.mts +92 -0
- package/declaration/helpers.d.mts.map +1 -0
- package/declaration/inspect.d.mts +4 -0
- package/declaration/inspect.d.mts.map +1 -0
- package/declaration/intrinsics/AggregateError.d.mts +3 -0
- package/declaration/intrinsics/AggregateError.d.mts.map +1 -0
- package/declaration/intrinsics/AggregateErrorPrototype.d.mts +3 -0
- package/declaration/intrinsics/AggregateErrorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Array.d.mts +3 -0
- package/declaration/intrinsics/Array.d.mts.map +1 -0
- package/declaration/intrinsics/ArrayBuffer.d.mts +3 -0
- package/declaration/intrinsics/ArrayBuffer.d.mts.map +1 -0
- package/declaration/intrinsics/ArrayBufferPrototype.d.mts +3 -0
- package/declaration/intrinsics/ArrayBufferPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/ArrayIteratorPrototype.d.mts +3 -0
- package/declaration/intrinsics/ArrayIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/ArrayPrototype.d.mts +3 -0
- package/declaration/intrinsics/ArrayPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/ArrayPrototypeShared.d.mts +10 -0
- package/declaration/intrinsics/ArrayPrototypeShared.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncFromSyncIteratorPrototype.d.mts +6 -0
- package/declaration/intrinsics/AsyncFromSyncIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncFunction.d.mts +3 -0
- package/declaration/intrinsics/AsyncFunction.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncFunctionPrototype.d.mts +3 -0
- package/declaration/intrinsics/AsyncFunctionPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncGeneratorFunction.d.mts +3 -0
- package/declaration/intrinsics/AsyncGeneratorFunction.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncGeneratorFunctionPrototype.d.mts +3 -0
- package/declaration/intrinsics/AsyncGeneratorFunctionPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncGeneratorFunctionPrototypePrototype.d.mts +3 -0
- package/declaration/intrinsics/AsyncGeneratorFunctionPrototypePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncIteratorPrototype.d.mts +3 -0
- package/declaration/intrinsics/AsyncIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/BigInt.d.mts +8 -0
- package/declaration/intrinsics/BigInt.d.mts.map +1 -0
- package/declaration/intrinsics/BigIntPrototype.d.mts +3 -0
- package/declaration/intrinsics/BigIntPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Boolean.d.mts +8 -0
- package/declaration/intrinsics/Boolean.d.mts.map +1 -0
- package/declaration/intrinsics/BooleanPrototype.d.mts +3 -0
- package/declaration/intrinsics/BooleanPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/DataView.d.mts +11 -0
- package/declaration/intrinsics/DataView.d.mts.map +1 -0
- package/declaration/intrinsics/DataViewPrototype.d.mts +3 -0
- package/declaration/intrinsics/DataViewPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Date.d.mts +7 -0
- package/declaration/intrinsics/Date.d.mts.map +1 -0
- package/declaration/intrinsics/DatePrototype.d.mts +10 -0
- package/declaration/intrinsics/DatePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Error.d.mts +3 -0
- package/declaration/intrinsics/Error.d.mts.map +1 -0
- package/declaration/intrinsics/ErrorPrototype.d.mts +3 -0
- package/declaration/intrinsics/ErrorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/FinalizationRegistry.d.mts +16 -0
- package/declaration/intrinsics/FinalizationRegistry.d.mts.map +1 -0
- package/declaration/intrinsics/FinalizationRegistryPrototype.d.mts +3 -0
- package/declaration/intrinsics/FinalizationRegistryPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/ForInIteratorPrototype.d.mts +13 -0
- package/declaration/intrinsics/ForInIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Function.d.mts +3 -0
- package/declaration/intrinsics/Function.d.mts.map +1 -0
- package/declaration/intrinsics/FunctionPrototype.d.mts +10 -0
- package/declaration/intrinsics/FunctionPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/GeneratorFunction.d.mts +3 -0
- package/declaration/intrinsics/GeneratorFunction.d.mts.map +1 -0
- package/declaration/intrinsics/GeneratorFunctionPrototype.d.mts +3 -0
- package/declaration/intrinsics/GeneratorFunctionPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/GeneratorFunctionPrototypePrototype.d.mts +3 -0
- package/declaration/intrinsics/GeneratorFunctionPrototypePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/IteratorPrototype.d.mts +3 -0
- package/declaration/intrinsics/IteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/JSON.d.mts +3 -0
- package/declaration/intrinsics/JSON.d.mts.map +1 -0
- package/declaration/intrinsics/Map.d.mts +12 -0
- package/declaration/intrinsics/Map.d.mts.map +1 -0
- package/declaration/intrinsics/MapIteratorPrototype.d.mts +7 -0
- package/declaration/intrinsics/MapIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/MapPrototype.d.mts +3 -0
- package/declaration/intrinsics/MapPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Math.d.mts +4 -0
- package/declaration/intrinsics/Math.d.mts.map +1 -0
- package/declaration/intrinsics/NativeError.d.mts +6 -0
- package/declaration/intrinsics/NativeError.d.mts.map +1 -0
- package/declaration/intrinsics/Number.d.mts +7 -0
- package/declaration/intrinsics/Number.d.mts.map +1 -0
- package/declaration/intrinsics/NumberPrototype.d.mts +3 -0
- package/declaration/intrinsics/NumberPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Object.d.mts +3 -0
- package/declaration/intrinsics/Object.d.mts.map +1 -0
- package/declaration/intrinsics/ObjectPrototype.d.mts +3 -0
- package/declaration/intrinsics/ObjectPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Promise.d.mts +12 -0
- package/declaration/intrinsics/Promise.d.mts.map +1 -0
- package/declaration/intrinsics/PromisePrototype.d.mts +3 -0
- package/declaration/intrinsics/PromisePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Proxy.d.mts +11 -0
- package/declaration/intrinsics/Proxy.d.mts.map +1 -0
- package/declaration/intrinsics/Reflect.d.mts +3 -0
- package/declaration/intrinsics/Reflect.d.mts.map +1 -0
- package/declaration/intrinsics/RegExp.d.mts +12 -0
- package/declaration/intrinsics/RegExp.d.mts.map +1 -0
- package/declaration/intrinsics/RegExpPrototype.d.mts +18 -0
- package/declaration/intrinsics/RegExpPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/RegExpStringIteratorPrototype.d.mts +7 -0
- package/declaration/intrinsics/RegExpStringIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Set.d.mts +7 -0
- package/declaration/intrinsics/Set.d.mts.map +1 -0
- package/declaration/intrinsics/SetIteratorPrototype.d.mts +7 -0
- package/declaration/intrinsics/SetIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/SetPrototype.d.mts +3 -0
- package/declaration/intrinsics/SetPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/String.d.mts +9 -0
- package/declaration/intrinsics/String.d.mts.map +1 -0
- package/declaration/intrinsics/StringIteratorPrototype.d.mts +3 -0
- package/declaration/intrinsics/StringIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/StringPrototype.d.mts +3 -0
- package/declaration/intrinsics/StringPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Symbol.d.mts +12 -0
- package/declaration/intrinsics/Symbol.d.mts.map +1 -0
- package/declaration/intrinsics/SymbolPrototype.d.mts +3 -0
- package/declaration/intrinsics/SymbolPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/ThrowTypeError.d.mts +3 -0
- package/declaration/intrinsics/ThrowTypeError.d.mts.map +1 -0
- package/declaration/intrinsics/TypedArray.d.mts +181 -0
- package/declaration/intrinsics/TypedArray.d.mts.map +1 -0
- package/declaration/intrinsics/TypedArrayConstructors.d.mts +3 -0
- package/declaration/intrinsics/TypedArrayConstructors.d.mts.map +1 -0
- package/declaration/intrinsics/TypedArrayPrototype.d.mts +3 -0
- package/declaration/intrinsics/TypedArrayPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/TypedArrayPrototypes.d.mts +4 -0
- package/declaration/intrinsics/TypedArrayPrototypes.d.mts.map +1 -0
- package/declaration/intrinsics/URIHandling.d.mts +3 -0
- package/declaration/intrinsics/URIHandling.d.mts.map +1 -0
- package/declaration/intrinsics/WeakMap.d.mts +11 -0
- package/declaration/intrinsics/WeakMap.d.mts.map +1 -0
- package/declaration/intrinsics/WeakMapPrototype.d.mts +3 -0
- package/declaration/intrinsics/WeakMapPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/WeakRef.d.mts +8 -0
- package/declaration/intrinsics/WeakRef.d.mts.map +1 -0
- package/declaration/intrinsics/WeakRefPrototype.d.mts +3 -0
- package/declaration/intrinsics/WeakRefPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/WeakSet.d.mts +8 -0
- package/declaration/intrinsics/WeakSet.d.mts.map +1 -0
- package/declaration/intrinsics/WeakSetPrototype.d.mts +3 -0
- package/declaration/intrinsics/WeakSetPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/bootstrap.d.mts +14 -0
- package/declaration/intrinsics/bootstrap.d.mts.map +1 -0
- package/declaration/intrinsics/eval.d.mts +3 -0
- package/declaration/intrinsics/eval.d.mts.map +1 -0
- package/declaration/intrinsics/isFinite.d.mts +3 -0
- package/declaration/intrinsics/isFinite.d.mts.map +1 -0
- package/declaration/intrinsics/isNaN.d.mts +3 -0
- package/declaration/intrinsics/isNaN.d.mts.map +1 -0
- package/declaration/intrinsics/parseFloat.d.mts +3 -0
- package/declaration/intrinsics/parseFloat.d.mts.map +1 -0
- package/declaration/intrinsics/parseInt.d.mts +3 -0
- package/declaration/intrinsics/parseInt.d.mts.map +1 -0
- package/declaration/messages.d.mts +160 -0
- package/declaration/messages.d.mts.map +1 -0
- package/declaration/modules.d.mts +115 -0
- package/declaration/modules.d.mts.map +1 -0
- package/declaration/parse.d.mts +34 -0
- package/declaration/parse.d.mts.map +1 -0
- package/declaration/parser/BaseParser.d.mts +24 -0
- package/declaration/parser/BaseParser.d.mts.map +1 -0
- package/declaration/parser/ExpressionParser.d.mts +52 -0
- package/declaration/parser/ExpressionParser.d.mts.map +1 -0
- package/declaration/parser/FunctionParser.d.mts +43 -0
- package/declaration/parser/FunctionParser.d.mts.map +1 -0
- package/declaration/parser/IdentifierParser.d.mts +12 -0
- package/declaration/parser/IdentifierParser.d.mts.map +1 -0
- package/declaration/parser/LanguageParser.d.mts +10 -0
- package/declaration/parser/LanguageParser.d.mts.map +1 -0
- package/declaration/parser/Lexer.d.mts +71 -0
- package/declaration/parser/Lexer.d.mts.map +1 -0
- package/declaration/parser/ModuleParser.d.mts +16 -0
- package/declaration/parser/ModuleParser.d.mts.map +1 -0
- package/declaration/parser/ParseNode.d.mts +976 -0
- package/declaration/parser/ParseNode.d.mts.map +1 -0
- package/declaration/parser/Parser.d.mts +32 -0
- package/declaration/parser/Parser.d.mts.map +1 -0
- package/declaration/parser/RegExpParser.d.mts +46 -0
- package/declaration/parser/RegExpParser.d.mts.map +1 -0
- package/declaration/parser/Scope.d.mts +106 -0
- package/declaration/parser/Scope.d.mts.map +1 -0
- package/declaration/parser/StatementParser.d.mts +49 -0
- package/declaration/parser/StatementParser.d.mts.map +1 -0
- package/declaration/parser/tokens.d.mts +32 -0
- package/declaration/parser/tokens.d.mts.map +1 -0
- package/declaration/runtime-semantics/AdditiveExpression.d.mts +3 -0
- package/declaration/runtime-semantics/AdditiveExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts +11 -0
- package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts.map +1 -0
- package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts +6 -0
- package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/ArrayLiteral.d.mts +5 -0
- package/declaration/runtime-semantics/ArrayLiteral.d.mts.map +1 -0
- package/declaration/runtime-semantics/ArrowFunction.d.mts +4 -0
- package/declaration/runtime-semantics/ArrowFunction.d.mts.map +1 -0
- package/declaration/runtime-semantics/AssignmentExpression.d.mts +14 -0
- package/declaration/runtime-semantics/AssignmentExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/AsyncArrowFunction.d.mts +4 -0
- package/declaration/runtime-semantics/AsyncArrowFunction.d.mts.map +1 -0
- package/declaration/runtime-semantics/AsyncFunctionExpression.d.mts +4 -0
- package/declaration/runtime-semantics/AsyncFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/AsyncGeneratorExpression.d.mts +4 -0
- package/declaration/runtime-semantics/AsyncGeneratorExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/AwaitExpression.d.mts +5 -0
- package/declaration/runtime-semantics/AwaitExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/BindingInitialization.d.mts +8 -0
- package/declaration/runtime-semantics/BindingInitialization.d.mts.map +1 -0
- package/declaration/runtime-semantics/BitwiseOperators.d.mts +5 -0
- package/declaration/runtime-semantics/BitwiseOperators.d.mts.map +1 -0
- package/declaration/runtime-semantics/Block.d.mts +20 -0
- package/declaration/runtime-semantics/Block.d.mts.map +1 -0
- package/declaration/runtime-semantics/BreakStatement.d.mts +4 -0
- package/declaration/runtime-semantics/BreakStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/BreakableStatement.d.mts +4 -0
- package/declaration/runtime-semantics/BreakableStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/CallExpression.d.mts +5 -0
- package/declaration/runtime-semantics/CallExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ClassDeclaration.d.mts +8 -0
- package/declaration/runtime-semantics/ClassDeclaration.d.mts.map +1 -0
- package/declaration/runtime-semantics/ClassDefinitionEvaluation.d.mts +12 -0
- package/declaration/runtime-semantics/ClassDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/ClassExpression.d.mts +5 -0
- package/declaration/runtime-semantics/ClassExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts +10 -0
- package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts +10 -0
- package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/CoalesceExpression.d.mts +5 -0
- package/declaration/runtime-semantics/CoalesceExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/CommaOperator.d.mts +5 -0
- package/declaration/runtime-semantics/CommaOperator.d.mts.map +1 -0
- package/declaration/runtime-semantics/ConditionalExpression.d.mts +5 -0
- package/declaration/runtime-semantics/ConditionalExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ContinueStatement.d.mts +4 -0
- package/declaration/runtime-semantics/ContinueStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/CreateDynamicFunction.d.mts +10 -0
- package/declaration/runtime-semantics/CreateDynamicFunction.d.mts.map +1 -0
- package/declaration/runtime-semantics/DebuggerStatement.d.mts +5 -0
- package/declaration/runtime-semantics/DebuggerStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/DefineMethod.d.mts +10 -0
- package/declaration/runtime-semantics/DefineMethod.d.mts.map +1 -0
- package/declaration/runtime-semantics/DestructuringAssignmentEvaluation.d.mts +5 -0
- package/declaration/runtime-semantics/DestructuringAssignmentEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/EmptyStatement.d.mts +5 -0
- package/declaration/runtime-semantics/EmptyStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/EqualityExpression.d.mts +5 -0
- package/declaration/runtime-semantics/EqualityExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/EvaluateBody.d.mts +69 -0
- package/declaration/runtime-semantics/EvaluateBody.d.mts.map +1 -0
- package/declaration/runtime-semantics/EvaluateCall.d.mts +11 -0
- package/declaration/runtime-semantics/EvaluateCall.d.mts.map +1 -0
- package/declaration/runtime-semantics/EvaluatePropertyAccess.d.mts +9 -0
- package/declaration/runtime-semantics/EvaluatePropertyAccess.d.mts.map +1 -0
- package/declaration/runtime-semantics/EvaluateStringOrNumericBinaryExpression.d.mts +6 -0
- package/declaration/runtime-semantics/EvaluateStringOrNumericBinaryExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ExponentiationExpression.d.mts +5 -0
- package/declaration/runtime-semantics/ExponentiationExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ExportDeclaration.d.mts +17 -0
- package/declaration/runtime-semantics/ExportDeclaration.d.mts.map +1 -0
- package/declaration/runtime-semantics/ExpressionStatement.d.mts +5 -0
- package/declaration/runtime-semantics/ExpressionStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/FunctionDeclaration.d.mts +5 -0
- package/declaration/runtime-semantics/FunctionDeclaration.d.mts.map +1 -0
- package/declaration/runtime-semantics/FunctionDeclarationInstantiation.d.mts +6 -0
- package/declaration/runtime-semantics/FunctionDeclarationInstantiation.d.mts.map +1 -0
- package/declaration/runtime-semantics/FunctionExpression.d.mts +4 -0
- package/declaration/runtime-semantics/FunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/FunctionStatementList.d.mts +15 -0
- package/declaration/runtime-semantics/FunctionStatementList.d.mts.map +1 -0
- package/declaration/runtime-semantics/GeneratorExpression.d.mts +4 -0
- package/declaration/runtime-semantics/GeneratorExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/GetSubstitution.d.mts +5 -0
- package/declaration/runtime-semantics/GetSubstitution.d.mts.map +1 -0
- package/declaration/runtime-semantics/GlobalDeclarationInstantiation.d.mts +12 -0
- package/declaration/runtime-semantics/GlobalDeclarationInstantiation.d.mts.map +1 -0
- package/declaration/runtime-semantics/HoistableDeclaration.d.mts +5 -0
- package/declaration/runtime-semantics/HoistableDeclaration.d.mts.map +1 -0
- package/declaration/runtime-semantics/IdentifierReference.d.mts +6 -0
- package/declaration/runtime-semantics/IdentifierReference.d.mts.map +1 -0
- package/declaration/runtime-semantics/IfStatement.d.mts +17 -0
- package/declaration/runtime-semantics/IfStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/ImportCall.d.mts +6 -0
- package/declaration/runtime-semantics/ImportCall.d.mts.map +1 -0
- package/declaration/runtime-semantics/ImportDeclaration.d.mts +5 -0
- package/declaration/runtime-semantics/ImportDeclaration.d.mts.map +1 -0
- package/declaration/runtime-semantics/ImportMeta.d.mts +5 -0
- package/declaration/runtime-semantics/ImportMeta.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateArrowFunctionExpression.d.mts +5 -0
- package/declaration/runtime-semantics/InstantiateArrowFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateAsyncArrowFunctionExpression.d.mts +5 -0
- package/declaration/runtime-semantics/InstantiateAsyncArrowFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateAsyncFunctionExpression.d.mts +5 -0
- package/declaration/runtime-semantics/InstantiateAsyncFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.d.mts +5 -0
- package/declaration/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateFunctionObject.d.mts +12 -0
- package/declaration/runtime-semantics/InstantiateFunctionObject.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateGeneratorFunctionExpression.d.mts +5 -0
- package/declaration/runtime-semantics/InstantiateGeneratorFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/InstantiateOrdinaryFunctionExpression.d.mts +5 -0
- package/declaration/runtime-semantics/InstantiateOrdinaryFunctionExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/IteratorBindingInitialization.d.mts +9 -0
- package/declaration/runtime-semantics/IteratorBindingInitialization.d.mts.map +1 -0
- package/declaration/runtime-semantics/KeyedBindingInitialization.d.mts +6 -0
- package/declaration/runtime-semantics/KeyedBindingInitialization.d.mts.map +1 -0
- package/declaration/runtime-semantics/LabelledEvaluation.d.mts +9 -0
- package/declaration/runtime-semantics/LabelledEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/LabelledStatement.d.mts +4 -0
- package/declaration/runtime-semantics/LabelledStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/LexicalDeclaration.d.mts +10 -0
- package/declaration/runtime-semantics/LexicalDeclaration.d.mts.map +1 -0
- package/declaration/runtime-semantics/Literal.d.mts +6 -0
- package/declaration/runtime-semantics/Literal.d.mts.map +1 -0
- package/declaration/runtime-semantics/LogicalANDExpression.d.mts +5 -0
- package/declaration/runtime-semantics/LogicalANDExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/LogicalORExpression.d.mts +5 -0
- package/declaration/runtime-semantics/LogicalORExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/MV.d.mts +3 -0
- package/declaration/runtime-semantics/MV.d.mts.map +1 -0
- package/declaration/runtime-semantics/MemberExpression.d.mts +7 -0
- package/declaration/runtime-semantics/MemberExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts +16 -0
- package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/Module.d.mts +17 -0
- package/declaration/runtime-semantics/Module.d.mts.map +1 -0
- package/declaration/runtime-semantics/ModuleBody.d.mts +15 -0
- package/declaration/runtime-semantics/ModuleBody.d.mts.map +1 -0
- package/declaration/runtime-semantics/MultiplicativeExpression.d.mts +5 -0
- package/declaration/runtime-semantics/MultiplicativeExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/NamedEvaluation.d.mts +4 -0
- package/declaration/runtime-semantics/NamedEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/NewExpression.d.mts +5 -0
- package/declaration/runtime-semantics/NewExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/NewTarget.d.mts +3 -0
- package/declaration/runtime-semantics/NewTarget.d.mts.map +1 -0
- package/declaration/runtime-semantics/NumberToBigInt.d.mts +10 -0
- package/declaration/runtime-semantics/NumberToBigInt.d.mts.map +1 -0
- package/declaration/runtime-semantics/ObjectLiteral.d.mts +5 -0
- package/declaration/runtime-semantics/ObjectLiteral.d.mts.map +1 -0
- package/declaration/runtime-semantics/OptionalExpression.d.mts +5 -0
- package/declaration/runtime-semantics/OptionalExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/ParenthesizedExpression.d.mts +4 -0
- package/declaration/runtime-semantics/ParenthesizedExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/PropertyBindingInitialization.d.mts +6 -0
- package/declaration/runtime-semantics/PropertyBindingInitialization.d.mts.map +1 -0
- package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts +7 -0
- package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/PropertyName.d.mts +6 -0
- package/declaration/runtime-semantics/PropertyName.d.mts.map +1 -0
- package/declaration/runtime-semantics/RegExp.d.mts +17 -0
- package/declaration/runtime-semantics/RegExp.d.mts.map +1 -0
- package/declaration/runtime-semantics/RegularExpressionLiteral.d.mts +4 -0
- package/declaration/runtime-semantics/RegularExpressionLiteral.d.mts.map +1 -0
- package/declaration/runtime-semantics/RelationalExpression.d.mts +26 -0
- package/declaration/runtime-semantics/RelationalExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/RestBindingInitialization.d.mts +5 -0
- package/declaration/runtime-semantics/RestBindingInitialization.d.mts.map +1 -0
- package/declaration/runtime-semantics/ReturnStatement.d.mts +6 -0
- package/declaration/runtime-semantics/ReturnStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/Script.d.mts +17 -0
- package/declaration/runtime-semantics/Script.d.mts.map +1 -0
- package/declaration/runtime-semantics/ScriptBody.d.mts +14 -0
- package/declaration/runtime-semantics/ScriptBody.d.mts.map +1 -0
- package/declaration/runtime-semantics/ShiftExpression.d.mts +7 -0
- package/declaration/runtime-semantics/ShiftExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/StatementList.d.mts +16 -0
- package/declaration/runtime-semantics/StatementList.d.mts.map +1 -0
- package/declaration/runtime-semantics/StringIndexOf.d.mts +3 -0
- package/declaration/runtime-semantics/StringIndexOf.d.mts.map +1 -0
- package/declaration/runtime-semantics/StringPad.d.mts +5 -0
- package/declaration/runtime-semantics/StringPad.d.mts.map +1 -0
- package/declaration/runtime-semantics/SuperCall.d.mts +11 -0
- package/declaration/runtime-semantics/SuperCall.d.mts.map +1 -0
- package/declaration/runtime-semantics/SuperProperty.d.mts +5 -0
- package/declaration/runtime-semantics/SuperProperty.d.mts.map +1 -0
- package/declaration/runtime-semantics/SwitchStatement.d.mts +20 -0
- package/declaration/runtime-semantics/SwitchStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/TaggedTemplateExpression.d.mts +5 -0
- package/declaration/runtime-semantics/TaggedTemplateExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/TemplateLiteral.d.mts +5 -0
- package/declaration/runtime-semantics/TemplateLiteral.d.mts.map +1 -0
- package/declaration/runtime-semantics/This.d.mts +5 -0
- package/declaration/runtime-semantics/This.d.mts.map +1 -0
- package/declaration/runtime-semantics/ThrowStatement.d.mts +10 -0
- package/declaration/runtime-semantics/ThrowStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/TrimString.d.mts +5 -0
- package/declaration/runtime-semantics/TrimString.d.mts.map +1 -0
- package/declaration/runtime-semantics/TryStatement.d.mts +16 -0
- package/declaration/runtime-semantics/TryStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/UnaryExpression.d.mts +4 -0
- package/declaration/runtime-semantics/UnaryExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/Unicode.d.mts +118 -0
- package/declaration/runtime-semantics/Unicode.d.mts.map +1 -0
- package/declaration/runtime-semantics/UpdateExpression.d.mts +4 -0
- package/declaration/runtime-semantics/UpdateExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/VariableStatement.d.mts +9 -0
- package/declaration/runtime-semantics/VariableStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/WithStatement.d.mts +16 -0
- package/declaration/runtime-semantics/WithStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/YieldExpression.d.mts +6 -0
- package/declaration/runtime-semantics/YieldExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/all.d.mts +109 -0
- package/declaration/runtime-semantics/all.d.mts.map +1 -0
- package/declaration/static-semantics/BodyText.d.mts +4 -0
- package/declaration/static-semantics/BodyText.d.mts.map +1 -0
- package/declaration/static-semantics/BoundNames.d.mts +4 -0
- package/declaration/static-semantics/BoundNames.d.mts.map +1 -0
- package/declaration/static-semantics/CharacterValue.d.mts +3 -0
- package/declaration/static-semantics/CharacterValue.d.mts.map +1 -0
- package/declaration/static-semantics/CodePointAt.d.mts +7 -0
- package/declaration/static-semantics/CodePointAt.d.mts.map +1 -0
- package/declaration/static-semantics/CodePointsToString.d.mts +3 -0
- package/declaration/static-semantics/CodePointsToString.d.mts.map +1 -0
- package/declaration/static-semantics/ConstructorMethod.d.mts +4 -0
- package/declaration/static-semantics/ConstructorMethod.d.mts.map +1 -0
- package/declaration/static-semantics/ContainsArguments.d.mts +4 -0
- package/declaration/static-semantics/ContainsArguments.d.mts.map +1 -0
- package/declaration/static-semantics/ContainsExpression.d.mts +3 -0
- package/declaration/static-semantics/ContainsExpression.d.mts.map +1 -0
- package/declaration/static-semantics/DeclarationPart.d.mts +3 -0
- package/declaration/static-semantics/DeclarationPart.d.mts.map +1 -0
- package/declaration/static-semantics/ExpectedArgumentCount.d.mts +3 -0
- package/declaration/static-semantics/ExpectedArgumentCount.d.mts.map +1 -0
- package/declaration/static-semantics/ExportEntries.d.mts +10 -0
- package/declaration/static-semantics/ExportEntries.d.mts.map +1 -0
- package/declaration/static-semantics/ExportEntriesForModule.d.mts +5 -0
- package/declaration/static-semantics/ExportEntriesForModule.d.mts.map +1 -0
- package/declaration/static-semantics/FlagText.d.mts +4 -0
- package/declaration/static-semantics/FlagText.d.mts.map +1 -0
- package/declaration/static-semantics/HasInitializer.d.mts +5 -0
- package/declaration/static-semantics/HasInitializer.d.mts.map +1 -0
- package/declaration/static-semantics/HasName.d.mts +3 -0
- package/declaration/static-semantics/HasName.d.mts.map +1 -0
- package/declaration/static-semantics/ImportEntries.d.mts +9 -0
- package/declaration/static-semantics/ImportEntries.d.mts.map +1 -0
- package/declaration/static-semantics/ImportEntriesForModule.d.mts +5 -0
- package/declaration/static-semantics/ImportEntriesForModule.d.mts.map +1 -0
- package/declaration/static-semantics/ImportedLocalNames.d.mts +4 -0
- package/declaration/static-semantics/ImportedLocalNames.d.mts.map +1 -0
- package/declaration/static-semantics/IsAnonymousFunctionDefinition.d.mts +4 -0
- package/declaration/static-semantics/IsAnonymousFunctionDefinition.d.mts.map +1 -0
- package/declaration/static-semantics/IsComputedPropertyKey.d.mts +3 -0
- package/declaration/static-semantics/IsComputedPropertyKey.d.mts.map +1 -0
- package/declaration/static-semantics/IsConstantDeclaration.d.mts +3 -0
- package/declaration/static-semantics/IsConstantDeclaration.d.mts.map +1 -0
- package/declaration/static-semantics/IsDestructuring.d.mts +4 -0
- package/declaration/static-semantics/IsDestructuring.d.mts.map +1 -0
- package/declaration/static-semantics/IsFunctionDefinition.d.mts +6 -0
- package/declaration/static-semantics/IsFunctionDefinition.d.mts.map +1 -0
- package/declaration/static-semantics/IsIdentifierRef.d.mts +3 -0
- package/declaration/static-semantics/IsIdentifierRef.d.mts.map +1 -0
- package/declaration/static-semantics/IsInTailPosition.d.mts +3 -0
- package/declaration/static-semantics/IsInTailPosition.d.mts.map +1 -0
- package/declaration/static-semantics/IsSimpleParameterList.d.mts +3 -0
- package/declaration/static-semantics/IsSimpleParameterList.d.mts.map +1 -0
- package/declaration/static-semantics/IsStatic.d.mts +4 -0
- package/declaration/static-semantics/IsStatic.d.mts.map +1 -0
- package/declaration/static-semantics/IsStrict.d.mts +4 -0
- package/declaration/static-semantics/IsStrict.d.mts.map +1 -0
- package/declaration/static-semantics/IsStringWellFormedUnicode.d.mts +3 -0
- package/declaration/static-semantics/IsStringWellFormedUnicode.d.mts.map +1 -0
- package/declaration/static-semantics/LexicallyDeclaredNames.d.mts +4 -0
- package/declaration/static-semantics/LexicallyDeclaredNames.d.mts.map +1 -0
- package/declaration/static-semantics/LexicallyScopedDeclarations.d.mts +3 -0
- package/declaration/static-semantics/LexicallyScopedDeclarations.d.mts.map +1 -0
- package/declaration/static-semantics/ModuleRequests.d.mts +4 -0
- package/declaration/static-semantics/ModuleRequests.d.mts.map +1 -0
- package/declaration/static-semantics/NonConstructorElements.d.mts +4 -0
- package/declaration/static-semantics/NonConstructorElements.d.mts.map +1 -0
- package/declaration/static-semantics/NumericValue.d.mts +4 -0
- package/declaration/static-semantics/NumericValue.d.mts.map +1 -0
- package/declaration/static-semantics/PrivateBoundIdentifiers.d.mts +5 -0
- package/declaration/static-semantics/PrivateBoundIdentifiers.d.mts.map +1 -0
- package/declaration/static-semantics/PropName.d.mts +3 -0
- package/declaration/static-semantics/PropName.d.mts.map +1 -0
- package/declaration/static-semantics/StringToCodePoints.d.mts +3 -0
- package/declaration/static-semantics/StringToCodePoints.d.mts.map +1 -0
- package/declaration/static-semantics/StringValue.d.mts +3 -0
- package/declaration/static-semantics/StringValue.d.mts.map +1 -0
- package/declaration/static-semantics/TemplateStrings.d.mts +4 -0
- package/declaration/static-semantics/TemplateStrings.d.mts.map +1 -0
- package/declaration/static-semantics/TopLevelLexicallyDeclaredNames.d.mts +4 -0
- package/declaration/static-semantics/TopLevelLexicallyDeclaredNames.d.mts.map +1 -0
- package/declaration/static-semantics/TopLevelLexicallyScopedDeclarations.d.mts +4 -0
- package/declaration/static-semantics/TopLevelLexicallyScopedDeclarations.d.mts.map +1 -0
- package/declaration/static-semantics/TopLevelVarDeclaredNames.d.mts +4 -0
- package/declaration/static-semantics/TopLevelVarDeclaredNames.d.mts.map +1 -0
- package/declaration/static-semantics/TopLevelVarScopedDeclarations.d.mts +4 -0
- package/declaration/static-semantics/TopLevelVarScopedDeclarations.d.mts.map +1 -0
- package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts +3 -0
- package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts.map +1 -0
- package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts +3 -0
- package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts.map +1 -0
- package/declaration/static-semantics/VarDeclaredNames.d.mts +4 -0
- package/declaration/static-semantics/VarDeclaredNames.d.mts.map +1 -0
- package/declaration/static-semantics/VarScopedDeclarations.d.mts +4 -0
- package/declaration/static-semantics/VarScopedDeclarations.d.mts.map +1 -0
- package/declaration/static-semantics/all.d.mts +48 -0
- package/declaration/static-semantics/all.d.mts.map +1 -0
- package/declaration/value.d.mts +283 -0
- package/declaration/value.d.mts.map +1 -0
- package/lib/engine262.js +58136 -0
- package/lib/engine262.js.map +1 -0
- package/lib/engine262.mjs +57577 -0
- package/lib/engine262.mjs.map +1 -0
- package/lib/inspector/context.d.mts +17 -0
- package/lib/inspector/context.d.mts.map +1 -0
- package/lib/inspector/context.mjs +343 -0
- package/lib/inspector/context.mjs.map +1 -0
- package/lib/inspector/index.d.mts +15 -0
- package/lib/inspector/index.d.mts.map +1 -0
- package/lib/inspector/index.mjs +64 -0
- package/lib/inspector/index.mjs.map +1 -0
- package/lib/inspector/methods.d.mts +6 -0
- package/lib/inspector/methods.d.mts.map +1 -0
- package/lib/inspector/methods.mjs +117 -0
- package/lib/inspector/methods.mjs.map +1 -0
- package/lib/inspector/types.d.mts +208 -0
- package/lib/inspector/types.d.mts.map +1 -0
- package/lib/inspector/types.mjs +2 -0
- package/lib/inspector/types.mjs.map +1 -0
- package/lib/inspector/utils.d.mts +7 -0
- package/lib/inspector/utils.d.mts.map +1 -0
- package/lib/inspector/utils.mjs +72 -0
- package/lib/inspector/utils.mjs.map +1 -0
- package/lib/inspector.js +682 -0
- package/lib/inspector.js.map +1 -0
- package/lib/inspector.mjs +674 -0
- package/lib/inspector.mjs.map +1 -0
- package/lib/node/bin.d.mts +3 -0
- package/lib/node/bin.d.mts.map +1 -0
- package/lib/node/bin.mjs +194 -0
- package/lib/node/bin.mjs.map +1 -0
- package/lib/node/inspector.d.mts +15 -0
- package/lib/node/inspector.d.mts.map +1 -0
- package/lib/node/inspector.mjs +112 -0
- package/lib/node/inspector.mjs.map +1 -0
- package/lib/node/module.d.mts +7 -0
- package/lib/node/module.d.mts.map +1 -0
- package/lib/node/module.mjs +61 -0
- package/lib/node/module.mjs.map +1 -0
- package/lib-src/inspector/context.mts +370 -0
- package/lib-src/inspector/index.mts +79 -0
- package/lib-src/inspector/js_protocol.json +3288 -0
- package/lib-src/inspector/methods.mts +123 -0
- package/lib-src/inspector/tsconfig.json +23 -0
- package/lib-src/inspector/types.mts +213 -0
- package/lib-src/inspector/utils.mts +86 -0
- package/lib-src/node/bin.mts +200 -0
- package/lib-src/node/inspector.mts +124 -0
- package/lib-src/node/module.mts +64 -0
- package/lib-src/node/tsconfig.json +20 -0
- package/package.json +127 -0
- package/src/abstract-ops/all.mts +34 -0
- package/src/abstract-ops/arguments-operations.mts +246 -0
- package/src/abstract-ops/array-objects.mts +316 -0
- package/src/abstract-ops/arraybuffer-objects.mts +247 -0
- package/src/abstract-ops/async-function-operations.mts +43 -0
- package/src/abstract-ops/async-generator-objects.mts +383 -0
- package/src/abstract-ops/data-types-and-values.mts +43 -0
- package/src/abstract-ops/dataview-objects.mts +151 -0
- package/src/abstract-ops/date-objects.mts +232 -0
- package/src/abstract-ops/error-objects.mts +26 -0
- package/src/abstract-ops/execution-contexts.mts +80 -0
- package/src/abstract-ops/function-operations.mts +606 -0
- package/src/abstract-ops/generator-operations.mts +291 -0
- package/src/abstract-ops/global-object.mts +386 -0
- package/src/abstract-ops/immutable-prototype-objects.mts +20 -0
- package/src/abstract-ops/import-calls.mts +73 -0
- package/src/abstract-ops/iterator-operations.mts +306 -0
- package/src/abstract-ops/module-namespace-exotic-objects.mts +223 -0
- package/src/abstract-ops/module-records.mts +458 -0
- package/src/abstract-ops/notational-conventions.mts +53 -0
- package/src/abstract-ops/object-operations.mts +468 -0
- package/src/abstract-ops/objects.mts +435 -0
- package/src/abstract-ops/private-names.mts +106 -0
- package/src/abstract-ops/promise-operations.mts +478 -0
- package/src/abstract-ops/proxy-objects.mts +585 -0
- package/src/abstract-ops/realms.mts +517 -0
- package/src/abstract-ops/reference-operations.mts +211 -0
- package/src/abstract-ops/regexp-objects.mts +299 -0
- package/src/abstract-ops/spec-types.mts +239 -0
- package/src/abstract-ops/string-objects.mts +156 -0
- package/src/abstract-ops/symbol-objects.mts +30 -0
- package/src/abstract-ops/testing-comparison.mts +387 -0
- package/src/abstract-ops/type-conversion.mts +579 -0
- package/src/abstract-ops/typedarray-objects.mts +402 -0
- package/src/abstract-ops/weak-operations.mts +83 -0
- package/src/api-types.mts +2 -0
- package/src/api.mts +326 -0
- package/src/completion.mts +466 -0
- package/src/data-gen.json +1 -0
- package/src/engine.mts +451 -0
- package/src/environment.mts +1013 -0
- package/src/evaluator.mts +268 -0
- package/src/helpers.mts +538 -0
- package/src/inspect.mts +236 -0
- package/src/intrinsics/AggregateError.mts +64 -0
- package/src/intrinsics/AggregateErrorPrototype.mts +12 -0
- package/src/intrinsics/Array.mts +216 -0
- package/src/intrinsics/ArrayBuffer.mts +48 -0
- package/src/intrinsics/ArrayBufferPrototype.mts +120 -0
- package/src/intrinsics/ArrayIteratorPrototype.mts +25 -0
- package/src/intrinsics/ArrayPrototype.mts +630 -0
- package/src/intrinsics/ArrayPrototypeShared.mts +644 -0
- package/src/intrinsics/AsyncFromSyncIteratorPrototype.mts +163 -0
- package/src/intrinsics/AsyncFunction.mts +31 -0
- package/src/intrinsics/AsyncFunctionPrototype.mts +8 -0
- package/src/intrinsics/AsyncGeneratorFunction.mts +37 -0
- package/src/intrinsics/AsyncGeneratorFunctionPrototype.mts +19 -0
- package/src/intrinsics/AsyncGeneratorFunctionPrototypePrototype.mts +148 -0
- package/src/intrinsics/AsyncIteratorPrototype.mts +17 -0
- package/src/intrinsics/BigInt.mts +69 -0
- package/src/intrinsics/BigIntPrototype.mts +81 -0
- package/src/intrinsics/Boolean.mts +47 -0
- package/src/intrinsics/BooleanPrototype.mts +58 -0
- package/src/intrinsics/DataView.mts +82 -0
- package/src/intrinsics/DataViewPrototype.mts +271 -0
- package/src/intrinsics/Date.mts +215 -0
- package/src/intrinsics/DatePrototype.mts +736 -0
- package/src/intrinsics/Error.mts +59 -0
- package/src/intrinsics/ErrorPrototype.mts +62 -0
- package/src/intrinsics/FinalizationRegistry.mts +64 -0
- package/src/intrinsics/FinalizationRegistryPrototype.mts +109 -0
- package/src/intrinsics/ForInIteratorPrototype.mts +120 -0
- package/src/intrinsics/Function.mts +21 -0
- package/src/intrinsics/FunctionPrototype.mts +272 -0
- package/src/intrinsics/GeneratorFunction.mts +32 -0
- package/src/intrinsics/GeneratorFunctionPrototype.mts +21 -0
- package/src/intrinsics/GeneratorFunctionPrototypePrototype.mts +57 -0
- package/src/intrinsics/IteratorPrototype.mts +17 -0
- package/src/intrinsics/JSON.mts +570 -0
- package/src/intrinsics/Map.mts +98 -0
- package/src/intrinsics/MapIteratorPrototype.mts +79 -0
- package/src/intrinsics/MapPrototype.mts +226 -0
- package/src/intrinsics/Math.mts +178 -0
- package/src/intrinsics/NativeError.mts +82 -0
- package/src/intrinsics/Number.mts +131 -0
- package/src/intrinsics/NumberPrototype.mts +123 -0
- package/src/intrinsics/Object.mts +442 -0
- package/src/intrinsics/ObjectPrototype.mts +297 -0
- package/src/intrinsics/Promise.mts +693 -0
- package/src/intrinsics/PromisePrototype.mts +120 -0
- package/src/intrinsics/Proxy.mts +100 -0
- package/src/intrinsics/Reflect.mts +211 -0
- package/src/intrinsics/RegExp.mts +103 -0
- package/src/intrinsics/RegExpPrototype.mts +803 -0
- package/src/intrinsics/RegExpStringIteratorPrototype.mts +81 -0
- package/src/intrinsics/Set.mts +72 -0
- package/src/intrinsics/SetIteratorPrototype.mts +77 -0
- package/src/intrinsics/SetPrototype.mts +191 -0
- package/src/intrinsics/String.mts +134 -0
- package/src/intrinsics/StringIteratorPrototype.mts +25 -0
- package/src/intrinsics/StringPrototype.mts +833 -0
- package/src/intrinsics/Symbol.mts +103 -0
- package/src/intrinsics/SymbolPrototype.mts +83 -0
- package/src/intrinsics/ThrowTypeError.mts +21 -0
- package/src/intrinsics/TypedArray.mts +574 -0
- package/src/intrinsics/TypedArrayConstructors.mts +85 -0
- package/src/intrinsics/TypedArrayPrototype.mts +648 -0
- package/src/intrinsics/TypedArrayPrototypes.mts +17 -0
- package/src/intrinsics/URIHandling.mts +321 -0
- package/src/intrinsics/WeakMap.mts +56 -0
- package/src/intrinsics/WeakMapPrototype.mts +129 -0
- package/src/intrinsics/WeakRef.mts +42 -0
- package/src/intrinsics/WeakRefPrototype.mts +23 -0
- package/src/intrinsics/WeakSet.mts +66 -0
- package/src/intrinsics/WeakSetPrototype.mts +99 -0
- package/src/intrinsics/bootstrap.mts +145 -0
- package/src/intrinsics/eval.mts +25 -0
- package/src/intrinsics/isFinite.mts +23 -0
- package/src/intrinsics/isNaN.mts +23 -0
- package/src/intrinsics/parseFloat.mts +78 -0
- package/src/intrinsics/parseInt.mts +101 -0
- package/src/messages.mts +176 -0
- package/src/modules.mts +720 -0
- package/src/parse.mts +222 -0
- package/src/parser/BaseParser.mts +36 -0
- package/src/parser/ExpressionParser.mts +1498 -0
- package/src/parser/FunctionParser.mts +389 -0
- package/src/parser/IdentifierParser.mts +144 -0
- package/src/parser/LanguageParser.mts +94 -0
- package/src/parser/Lexer.mts +986 -0
- package/src/parser/ModuleParser.mts +271 -0
- package/src/parser/ParseNode.mts +2510 -0
- package/src/parser/Parser.mts +192 -0
- package/src/parser/RegExpParser.mts +930 -0
- package/src/parser/Scope.mts +535 -0
- package/src/parser/StatementParser.mts +958 -0
- package/src/parser/tokens.mts +212 -0
- package/src/parser/unicode.d.ts +20 -0
- package/src/runtime-semantics/AdditiveExpression.mts +29 -0
- package/src/runtime-semantics/ApplyStringOrNumericBinaryOperator.mts +78 -0
- package/src/runtime-semantics/ArgumentListEvaluation.mts +178 -0
- package/src/runtime-semantics/ArrayLiteral.mts +97 -0
- package/src/runtime-semantics/ArrowFunction.mts +8 -0
- package/src/runtime-semantics/AssignmentExpression.mts +282 -0
- package/src/runtime-semantics/AsyncArrowFunction.mts +8 -0
- package/src/runtime-semantics/AsyncFunctionExpression.mts +11 -0
- package/src/runtime-semantics/AsyncGeneratorExpression.mts +11 -0
- package/src/runtime-semantics/AwaitExpression.mts +17 -0
- package/src/runtime-semantics/BindingInitialization.mts +93 -0
- package/src/runtime-semantics/BitwiseOperators.mts +14 -0
- package/src/runtime-semantics/Block.mts +73 -0
- package/src/runtime-semantics/BreakStatement.mts +18 -0
- package/src/runtime-semantics/BreakableStatement.mts +18 -0
- package/src/runtime-semantics/CallExpression.mts +59 -0
- package/src/runtime-semantics/ClassDeclaration.mts +46 -0
- package/src/runtime-semantics/ClassDefinitionEvaluation.mts +343 -0
- package/src/runtime-semantics/ClassExpression.mts +32 -0
- package/src/runtime-semantics/ClassFieldDefinitionEvaluation.mts +61 -0
- package/src/runtime-semantics/ClassStaticBlockDefinitionEvaluation.mts +44 -0
- package/src/runtime-semantics/CoalesceExpression.mts +24 -0
- package/src/runtime-semantics/CommaOperator.mts +18 -0
- package/src/runtime-semantics/ConditionalExpression.mts +31 -0
- package/src/runtime-semantics/ContinueStatement.mts +18 -0
- package/src/runtime-semantics/CreateDynamicFunction.mts +200 -0
- package/src/runtime-semantics/DebuggerStatement.mts +20 -0
- package/src/runtime-semantics/DefineMethod.mts +42 -0
- package/src/runtime-semantics/DestructuringAssignmentEvaluation.mts +311 -0
- package/src/runtime-semantics/EmptyStatement.mts +9 -0
- package/src/runtime-semantics/EqualityExpression.mts +61 -0
- package/src/runtime-semantics/EvaluateBody.mts +196 -0
- package/src/runtime-semantics/EvaluateCall.mts +63 -0
- package/src/runtime-semantics/EvaluatePropertyAccess.mts +47 -0
- package/src/runtime-semantics/EvaluateStringOrNumericBinaryExpression.mts +19 -0
- package/src/runtime-semantics/ExponentiationExpression.mts +11 -0
- package/src/runtime-semantics/ExportDeclaration.mts +90 -0
- package/src/runtime-semantics/ExpressionStatement.mts +14 -0
- package/src/runtime-semantics/FunctionDeclaration.mts +11 -0
- package/src/runtime-semantics/FunctionDeclarationInstantiation.mts +272 -0
- package/src/runtime-semantics/FunctionExpression.mts +11 -0
- package/src/runtime-semantics/FunctionStatementList.mts +11 -0
- package/src/runtime-semantics/GeneratorExpression.mts +11 -0
- package/src/runtime-semantics/GetSubstitution.mts +119 -0
- package/src/runtime-semantics/GlobalDeclarationInstantiation.mts +146 -0
- package/src/runtime-semantics/HoistableDeclaration.mts +12 -0
- package/src/runtime-semantics/IdentifierReference.mts +15 -0
- package/src/runtime-semantics/IfStatement.mts +49 -0
- package/src/runtime-semantics/ImportCall.mts +43 -0
- package/src/runtime-semantics/ImportDeclaration.mts +9 -0
- package/src/runtime-semantics/ImportMeta.mts +45 -0
- package/src/runtime-semantics/InstantiateArrowFunctionExpression.mts +35 -0
- package/src/runtime-semantics/InstantiateAsyncArrowFunctionExpression.mts +37 -0
- package/src/runtime-semantics/InstantiateAsyncFunctionExpression.mts +75 -0
- package/src/runtime-semantics/InstantiateAsyncGeneratorFunctionExpression.mts +90 -0
- package/src/runtime-semantics/InstantiateFunctionObject.mts +123 -0
- package/src/runtime-semantics/InstantiateGeneratorFunctionExpression.mts +82 -0
- package/src/runtime-semantics/InstantiateOrdinaryFunctionExpression.mts +64 -0
- package/src/runtime-semantics/IteratorBindingInitialization.mts +214 -0
- package/src/runtime-semantics/KeyedBindingInitialization.mts +61 -0
- package/src/runtime-semantics/LabelledEvaluation.mts +753 -0
- package/src/runtime-semantics/LabelledStatement.mts +11 -0
- package/src/runtime-semantics/LexicalDeclaration.mts +96 -0
- package/src/runtime-semantics/Literal.mts +36 -0
- package/src/runtime-semantics/LogicalANDExpression.mts +25 -0
- package/src/runtime-semantics/LogicalORExpression.mts +25 -0
- package/src/runtime-semantics/MV.mts +10 -0
- package/src/runtime-semantics/MemberExpression.mts +73 -0
- package/src/runtime-semantics/MethodDefinitionEvaluation.mts +273 -0
- package/src/runtime-semantics/Module.mts +15 -0
- package/src/runtime-semantics/ModuleBody.mts +10 -0
- package/src/runtime-semantics/MultiplicativeExpression.mts +18 -0
- package/src/runtime-semantics/NamedEvaluation.mts +98 -0
- package/src/runtime-semantics/NewExpression.mts +52 -0
- package/src/runtime-semantics/NewTarget.mts +8 -0
- package/src/runtime-semantics/NumberToBigInt.mts +17 -0
- package/src/runtime-semantics/ObjectLiteral.mts +26 -0
- package/src/runtime-semantics/OptionalExpression.mts +132 -0
- package/src/runtime-semantics/ParenthesizedExpression.mts +8 -0
- package/src/runtime-semantics/PropertyBindingInitialization.mts +46 -0
- package/src/runtime-semantics/PropertyDefinitionEvaluation.mts +124 -0
- package/src/runtime-semantics/PropertyName.mts +62 -0
- package/src/runtime-semantics/RegExp.mts +1187 -0
- package/src/runtime-semantics/RegularExpressionLiteral.mts +16 -0
- package/src/runtime-semantics/RelationalExpression.mts +156 -0
- package/src/runtime-semantics/RestBindingInitialization.mts +29 -0
- package/src/runtime-semantics/ReturnStatement.mts +32 -0
- package/src/runtime-semantics/Script.mts +15 -0
- package/src/runtime-semantics/ScriptBody.mts +7 -0
- package/src/runtime-semantics/ShiftExpression.mts +17 -0
- package/src/runtime-semantics/StatementList.mts +31 -0
- package/src/runtime-semantics/StringIndexOf.mts +43 -0
- package/src/runtime-semantics/StringPad.mts +33 -0
- package/src/runtime-semantics/SuperCall.mts +65 -0
- package/src/runtime-semantics/SuperProperty.mts +61 -0
- package/src/runtime-semantics/SwitchStatement.mts +221 -0
- package/src/runtime-semantics/TaggedTemplateExpression.mts +23 -0
- package/src/runtime-semantics/TemplateLiteral.mts +34 -0
- package/src/runtime-semantics/This.mts +9 -0
- package/src/runtime-semantics/ThrowStatement.mts +22 -0
- package/src/runtime-semantics/TrimString.mts +19 -0
- package/src/runtime-semantics/TryStatement.mts +120 -0
- package/src/runtime-semantics/UnaryExpression.mts +219 -0
- package/src/runtime-semantics/Unicode.mts +555 -0
- package/src/runtime-semantics/UpdateExpression.mts +126 -0
- package/src/runtime-semantics/VariableStatement.mts +72 -0
- package/src/runtime-semantics/WithStatement.mts +33 -0
- package/src/runtime-semantics/YieldExpression.mts +175 -0
- package/src/runtime-semantics/all.mts +108 -0
- package/src/static-semantics/BodyText.mts +7 -0
- package/src/static-semantics/BoundNames.mts +101 -0
- package/src/static-semantics/CharacterValue.mts +92 -0
- package/src/static-semantics/CodePointAt.mts +53 -0
- package/src/static-semantics/CodePointsToString.mts +16 -0
- package/src/static-semantics/ConstructorMethod.mts +10 -0
- package/src/static-semantics/ContainsArguments.mts +33 -0
- package/src/static-semantics/ContainsExpression.mts +59 -0
- package/src/static-semantics/DeclarationPart.mts +5 -0
- package/src/static-semantics/ExpectedArgumentCount.mts +26 -0
- package/src/static-semantics/ExportEntries.mts +127 -0
- package/src/static-semantics/ExportEntriesForModule.mts +63 -0
- package/src/static-semantics/FlagText.mts +7 -0
- package/src/static-semantics/HasInitializer.mts +5 -0
- package/src/static-semantics/HasName.mts +8 -0
- package/src/static-semantics/ImportEntries.mts +36 -0
- package/src/static-semantics/ImportEntriesForModule.mts +95 -0
- package/src/static-semantics/ImportedLocalNames.mts +14 -0
- package/src/static-semantics/IsAnonymousFunctionDefinition.mts +18 -0
- package/src/static-semantics/IsComputedPropertyKey.mts +7 -0
- package/src/static-semantics/IsConstantDeclaration.mts +5 -0
- package/src/static-semantics/IsDestructuring.mts +21 -0
- package/src/static-semantics/IsFunctionDefinition.mts +15 -0
- package/src/static-semantics/IsIdentifierRef.mts +5 -0
- package/src/static-semantics/IsInTailPosition.mts +5 -0
- package/src/static-semantics/IsSimpleParameterList.mts +23 -0
- package/src/static-semantics/IsStatic.mts +10 -0
- package/src/static-semantics/IsStrict.mts +7 -0
- package/src/static-semantics/IsStringWellFormedUnicode.mts +24 -0
- package/src/static-semantics/LexicallyDeclaredNames.mts +26 -0
- package/src/static-semantics/LexicallyScopedDeclarations.mts +82 -0
- package/src/static-semantics/ModuleRequests.mts +34 -0
- package/src/static-semantics/NonConstructorElements.mts +15 -0
- package/src/static-semantics/NumericValue.mts +7 -0
- package/src/static-semantics/PrivateBoundIdentifiers.mts +23 -0
- package/src/static-semantics/PropName.mts +18 -0
- package/src/static-semantics/StringToCodePoints.mts +23 -0
- package/src/static-semantics/StringValue.mts +19 -0
- package/src/static-semantics/TemplateStrings.mts +108 -0
- package/src/static-semantics/TopLevelLexicallyDeclaredNames.mts +21 -0
- package/src/static-semantics/TopLevelLexicallyScopedDeclarations.mts +23 -0
- package/src/static-semantics/TopLevelVarDeclaredNames.mts +26 -0
- package/src/static-semantics/TopLevelVarScopedDeclarations.mts +34 -0
- package/src/static-semantics/UTF16EncodeCodePoint.mts +17 -0
- package/src/static-semantics/UTF16SurrogatePairToCodePoint.mts +12 -0
- package/src/static-semantics/VarDeclaredNames.mts +109 -0
- package/src/static-semantics/VarScopedDeclarations.mts +115 -0
- package/src/static-semantics/all.mts +47 -0
- package/src/syntax-error.d.ts +4 -0
- package/src/tsconfig.json +11 -0
- package/src/value.mts +981 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Assert,
|
|
3
|
+
DefinePropertyOrThrow,
|
|
4
|
+
GetPrototypeFromConstructor,
|
|
5
|
+
MakeConstructor,
|
|
6
|
+
OrdinaryFunctionCreate,
|
|
7
|
+
OrdinaryObjectCreate,
|
|
8
|
+
SetFunctionName,
|
|
9
|
+
ToString,
|
|
10
|
+
type FunctionObject,
|
|
11
|
+
type Intrinsics,
|
|
12
|
+
} from '../abstract-ops/all.mts';
|
|
13
|
+
import { Q, ThrowCompletion, X } from '../completion.mts';
|
|
14
|
+
import {
|
|
15
|
+
HostEnsureCanCompileStrings,
|
|
16
|
+
surroundingAgent,
|
|
17
|
+
} from '../engine.mts';
|
|
18
|
+
import { wrappedParse } from '../parse.mts';
|
|
19
|
+
import { Token } from '../parser/tokens.mts';
|
|
20
|
+
import {
|
|
21
|
+
Descriptor, UndefinedValue, Value,
|
|
22
|
+
type Arguments,
|
|
23
|
+
} from '../value.mts';
|
|
24
|
+
import { __ts_cast__, OutOfRange } from '../helpers.mts';
|
|
25
|
+
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
26
|
+
|
|
27
|
+
// #table-dynamic-function-sourcetext-prefixes
|
|
28
|
+
const DynamicFunctionSourceTextPrefixes = {
|
|
29
|
+
'normal': 'function',
|
|
30
|
+
'generator': 'function*',
|
|
31
|
+
'async': 'async function',
|
|
32
|
+
'asyncGenerator': 'async function*',
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export function CreateDynamicFunction(constructor: FunctionObject, newTarget: FunctionObject | UndefinedValue, kind: 'normal' | 'generator' | 'async' | 'asyncGenerator', args: Arguments) {
|
|
36
|
+
// 1. Assert: The execution context stack has at least two elements.
|
|
37
|
+
Assert(surroundingAgent.executionContextStack.length >= 2);
|
|
38
|
+
// 2. Let callerContext be the second to top element of the execution context stack.
|
|
39
|
+
const callerContext = surroundingAgent.executionContextStack[surroundingAgent.executionContextStack.length - 2];
|
|
40
|
+
// 3. Let callerRealm be callerContext's Realm.
|
|
41
|
+
const callerRealm = callerContext.Realm;
|
|
42
|
+
// 4. Let calleeRealm be the current Realm Record.
|
|
43
|
+
const calleeRealm = surroundingAgent.currentRealmRecord;
|
|
44
|
+
// 5. Perform ? HostEnsureCanCompileStrings(callerRealm, calleeRealm).
|
|
45
|
+
Q(HostEnsureCanCompileStrings(callerRealm, calleeRealm));
|
|
46
|
+
// 6. If newTarget is undefined, set newTarget to constructor.
|
|
47
|
+
if (newTarget instanceof UndefinedValue) {
|
|
48
|
+
newTarget = constructor;
|
|
49
|
+
}
|
|
50
|
+
// 7. If kind is normal, then
|
|
51
|
+
let fallbackProto: keyof Intrinsics;
|
|
52
|
+
if (kind === 'normal') {
|
|
53
|
+
// a. Let goal be the grammar symbol FunctionBody[~Yield, ~Await].
|
|
54
|
+
// b. Let parameterGoal be the grammar symbol FormalParameters[~Yield, ~Await].
|
|
55
|
+
// c. Let fallbackProto be "%Function.prototype%".
|
|
56
|
+
fallbackProto = '%Function.prototype%';
|
|
57
|
+
} else if (kind === 'generator') { // 8. Else if kind is generator, then
|
|
58
|
+
// a. Let goal be the grammar symbol GeneratorBody.
|
|
59
|
+
// b. Let parameterGoal be the grammar symbol FormalParameters[+Yield, ~Await].
|
|
60
|
+
// c. Let fallbackProto be "%GeneratorFunction.prototype%".
|
|
61
|
+
fallbackProto = '%GeneratorFunction.prototype%';
|
|
62
|
+
} else if (kind === 'async') { // 9. Else if kind is async, then
|
|
63
|
+
// a. Let goal be the grammar symbol AsyncBody.
|
|
64
|
+
// b. Let parameterGoal be the grammar symbol FormalParameters[~Yield, +Await].
|
|
65
|
+
// c. Let fallbackProto be "%AsyncFunction.prototype%".
|
|
66
|
+
fallbackProto = '%AsyncFunction.prototype%';
|
|
67
|
+
} else { // 10. Else,
|
|
68
|
+
// a. Assert: kind is asyncGenerator.
|
|
69
|
+
Assert(kind === 'asyncGenerator');
|
|
70
|
+
// b. Let goal be the grammar symbol AsyncGeneratorBody.
|
|
71
|
+
// c. Let parameterGoal be the grammar symbol FormalParameters[+Yield, +Await].
|
|
72
|
+
// d. Let fallbackProto be "%AsyncGeneratorFunction.prototype%".
|
|
73
|
+
fallbackProto = '%AsyncGeneratorFunction.prototype%';
|
|
74
|
+
}
|
|
75
|
+
// 11. Let argCount be the number of elements in args.
|
|
76
|
+
const argCount = args.length;
|
|
77
|
+
// 12. Let P be the empty String.
|
|
78
|
+
let P = '';
|
|
79
|
+
// 13. If argCount = 0, let bodyArg be the empty String.
|
|
80
|
+
let bodyArg;
|
|
81
|
+
if (argCount === 0) {
|
|
82
|
+
bodyArg = Value('');
|
|
83
|
+
} else if (argCount === 1) { // 14. Else if argCount = 1, let bodyArg be args[0].
|
|
84
|
+
bodyArg = args[0];
|
|
85
|
+
} else { // 15. Else,
|
|
86
|
+
// a. Assert: argCount > 1.
|
|
87
|
+
Assert(argCount > 1);
|
|
88
|
+
// b. Let firstArg be args[0].
|
|
89
|
+
const firstArg = args[0];
|
|
90
|
+
// c. Set P to ? ToString(firstArg).
|
|
91
|
+
P = Q(ToString(firstArg)).stringValue();
|
|
92
|
+
// d. Let k be 1.
|
|
93
|
+
let k = 1;
|
|
94
|
+
// e. Repeat, while k < argCount - 1
|
|
95
|
+
while (k < argCount - 1) {
|
|
96
|
+
// i. Let nextArg be args[k].
|
|
97
|
+
const nextArg = args[k];
|
|
98
|
+
// ii. Let nextArgString be ? ToString(nextArg).
|
|
99
|
+
const nextArgString = Q(ToString(nextArg));
|
|
100
|
+
// iii. Set P to the string-concatenation of the previous value of P, "," (a comma), and nextArgString.
|
|
101
|
+
P = `${P},${nextArgString.stringValue()}`;
|
|
102
|
+
// iv. Set k to k + 1.
|
|
103
|
+
k += 1;
|
|
104
|
+
}
|
|
105
|
+
// f. Let bodyArg be args[k].
|
|
106
|
+
bodyArg = args[k];
|
|
107
|
+
}
|
|
108
|
+
// 16. Let bodyString be the string-concatenation of 0x000A (LINE FEED), ? ToString(bodyArg), and 0x000A (LINE FEED).
|
|
109
|
+
const bodyString = `\u{000A}${Q(ToString(bodyArg)).stringValue()}\u{000A}`;
|
|
110
|
+
// 17. Let prefix be the prefix associated with kind in Table 48.
|
|
111
|
+
const prefix = DynamicFunctionSourceTextPrefixes[kind];
|
|
112
|
+
// 18. Let sourceString be the string-concatenation of prefix, " anonymous(", P, 0x000A (LINE FEED), ") {", bodyString, and "}".
|
|
113
|
+
const sourceString = `${prefix} anonymous(${P}\u{000A}) {${bodyString}}`;
|
|
114
|
+
// 19. Let sourceText be ! UTF16DecodeString(sourceString).
|
|
115
|
+
const sourceText = sourceString;
|
|
116
|
+
// 20. Perform the following substeps in an implementation-dependent order, possibly interleaving parsing and error detection:
|
|
117
|
+
// a. Let parameters be the result of parsing ! UTF16DecodeString(P), using parameterGoal as the goal symbol. Throw a SyntaxError exception if the parse fails.
|
|
118
|
+
// b. Let body be the result of parsing ! UTF16DecodeString(bodyString), using goal as the goal symbol. Throw a SyntaxError exception if the parse fails.
|
|
119
|
+
// c. Let strict be ContainsUseStrict of body.
|
|
120
|
+
// d. If any static semantics errors are detected for parameters or body, throw a SyntaxError exception. If strict is true, the Early Error rules for UniqueFormalParameters:FormalParameters are applied.
|
|
121
|
+
// e. If strict is true and IsSimpleParameterList of parameters is false, throw a SyntaxError exception.
|
|
122
|
+
// f. If any element of the BoundNames of parameters also occurs in the LexicallyDeclaredNames of body, throw a SyntaxError exception.
|
|
123
|
+
// g. If body Contains SuperCall is true, throw a SyntaxError exception.
|
|
124
|
+
// h. If parameters Contains SuperCall is true, throw a SyntaxError exception.
|
|
125
|
+
// i. If body Contains SuperProperty is true, throw a SyntaxError exception.
|
|
126
|
+
// j. If parameters Contains SuperProperty is true, throw a SyntaxError exception.
|
|
127
|
+
// k. If kind is generator or asyncGenerator, then
|
|
128
|
+
// i. If parameters Contains YieldExpression is true, throw a SyntaxError exception.
|
|
129
|
+
// l. If kind is async or asyncGenerator, then
|
|
130
|
+
// i. If parameters Contains AwaitExpression is true, throw a SyntaxError exception.
|
|
131
|
+
// m. If strict is true, then
|
|
132
|
+
// i. If BoundNames of parameters contains any duplicate elements, throw a SyntaxError exception.
|
|
133
|
+
let parameters;
|
|
134
|
+
let body;
|
|
135
|
+
{
|
|
136
|
+
const f = wrappedParse({ source: sourceString }, (p) => {
|
|
137
|
+
const r = p.parseExpression();
|
|
138
|
+
p.expect(Token.EOS);
|
|
139
|
+
return r;
|
|
140
|
+
});
|
|
141
|
+
if (Array.isArray(f)) {
|
|
142
|
+
return ThrowCompletion(f[0]);
|
|
143
|
+
}
|
|
144
|
+
__ts_cast__<ParseNode.FunctionExpression | ParseNode.GeneratorExpression | ParseNode.AsyncFunctionExpression | ParseNode.AsyncGeneratorExpression>(f);
|
|
145
|
+
parameters = f.FormalParameters;
|
|
146
|
+
switch (kind) {
|
|
147
|
+
case 'normal':
|
|
148
|
+
body = (f as ParseNode.FunctionExpression).FunctionBody;
|
|
149
|
+
break;
|
|
150
|
+
case 'generator':
|
|
151
|
+
body = (f as ParseNode.GeneratorExpression).GeneratorBody;
|
|
152
|
+
break;
|
|
153
|
+
case 'async':
|
|
154
|
+
body = (f as ParseNode.AsyncFunctionExpression).AsyncBody;
|
|
155
|
+
break;
|
|
156
|
+
case 'asyncGenerator':
|
|
157
|
+
body = (f as ParseNode.AsyncGeneratorExpression).AsyncGeneratorBody;
|
|
158
|
+
break;
|
|
159
|
+
default:
|
|
160
|
+
throw new OutOfRange('kind', kind);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// 21. Let proto be ? GetPrototypeFromConstructor(newTarget, fallbackProto).
|
|
164
|
+
const proto = Q(GetPrototypeFromConstructor(newTarget, fallbackProto));
|
|
165
|
+
// 22. Let realmF be the current Realm Record.
|
|
166
|
+
const realmF = surroundingAgent.currentRealmRecord;
|
|
167
|
+
// 23. Let scope be realmF.[[GlobalEnv]].
|
|
168
|
+
const scope = realmF.GlobalEnv;
|
|
169
|
+
// 24. Let F be ! OrdinaryFunctionCreate(proto, sourceText, parameters, body, non-lexical-this, scope, null).
|
|
170
|
+
const F = X(OrdinaryFunctionCreate(proto, sourceText, parameters, body, 'non-lexical-this', scope, Value.null));
|
|
171
|
+
// 25. Perform SetFunctionName(F, "anonymous").
|
|
172
|
+
SetFunctionName(F, Value('anonymous'));
|
|
173
|
+
// 26. If kind is generator, then
|
|
174
|
+
if (kind === 'generator') {
|
|
175
|
+
// a. Let prototype be OrdinaryObjectCreate(%GeneratorFunction.prototype.prototype%).
|
|
176
|
+
const prototype = OrdinaryObjectCreate(surroundingAgent.intrinsic('%GeneratorFunction.prototype.prototype%'));
|
|
177
|
+
// b. Perform DefinePropertyOrThrow(F, "prototype", PropertyDescriptor { [[Value]]: prototype, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }).
|
|
178
|
+
DefinePropertyOrThrow(F, Value('prototype'), Descriptor({
|
|
179
|
+
Value: prototype,
|
|
180
|
+
Writable: Value.true,
|
|
181
|
+
Enumerable: Value.false,
|
|
182
|
+
Configurable: Value.false,
|
|
183
|
+
}));
|
|
184
|
+
} else if (kind === 'asyncGenerator') { // 27. Else if kind is asyncGenerator, then
|
|
185
|
+
// a. Let prototype be OrdinaryObjectCreate(%AsyncGeneratorFunction.prototype.prototype%).
|
|
186
|
+
const prototype = OrdinaryObjectCreate(surroundingAgent.intrinsic('%AsyncGeneratorFunction.prototype.prototype%'));
|
|
187
|
+
// b. Perform DefinePropertyOrThrow(F, "prototype", PropertyDescriptor { [[Value]]: prototype, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false }).
|
|
188
|
+
DefinePropertyOrThrow(F, Value('prototype'), Descriptor({
|
|
189
|
+
Value: prototype,
|
|
190
|
+
Writable: Value.true,
|
|
191
|
+
Enumerable: Value.false,
|
|
192
|
+
Configurable: Value.false,
|
|
193
|
+
}));
|
|
194
|
+
} else if (kind === 'normal') { // 28. Else if kind is normal, then perform MakeConstructor(F).
|
|
195
|
+
MakeConstructor(F);
|
|
196
|
+
}
|
|
197
|
+
// 29. NOTE: Functions whose kind is async are not constructible and do not have a [[Construct]] internal method or a "prototype" property.
|
|
198
|
+
// 20. Return F.
|
|
199
|
+
return F;
|
|
200
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { surroundingAgent } from '../engine.mts';
|
|
2
|
+
import { NormalCompletion, EnsureCompletion } from '../completion.mts';
|
|
3
|
+
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
4
|
+
|
|
5
|
+
/** https://tc39.es/ecma262/#sec-debugger-statement-runtime-semantics-evaluation */
|
|
6
|
+
// DebuggerStatement : `debugger` `;`
|
|
7
|
+
export function Evaluate_DebuggerStatement(_node: ParseNode.DebuggerStatement) {
|
|
8
|
+
let result;
|
|
9
|
+
// 1. If an implementation-defined debugging facility is available and enabled, then
|
|
10
|
+
if (surroundingAgent.hostDefinedOptions.onDebugger && !surroundingAgent.debugger_isPreviewing) {
|
|
11
|
+
// a. Perform an implementation-defined debugging action.
|
|
12
|
+
// b. Let result be an implementation-defined Completion value.
|
|
13
|
+
result = EnsureCompletion(surroundingAgent.hostDefinedOptions.onDebugger());
|
|
14
|
+
} else {
|
|
15
|
+
// a. Let result be NormalCompletion(empty).
|
|
16
|
+
result = NormalCompletion(undefined);
|
|
17
|
+
}
|
|
18
|
+
// 2. Return result.
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { surroundingAgent } from '../engine.mts';
|
|
2
|
+
import { OrdinaryFunctionCreate, MakeMethod, sourceTextMatchedBy } from '../abstract-ops/all.mts';
|
|
3
|
+
import { ReturnIfAbrupt } from '../completion.mts';
|
|
4
|
+
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
5
|
+
import type { Evaluator } from '../evaluator.mts';
|
|
6
|
+
import { Evaluate_PropertyName } from './all.mts';
|
|
7
|
+
import type {
|
|
8
|
+
ECMAScriptFunctionObject, ObjectValue, PlainCompletion, PrivateName, PropertyKeyValue,
|
|
9
|
+
} from '#self';
|
|
10
|
+
|
|
11
|
+
export interface DefineMethodRecord {
|
|
12
|
+
readonly Key: PropertyKeyValue | PrivateName;
|
|
13
|
+
readonly Closure: ECMAScriptFunctionObject;
|
|
14
|
+
}
|
|
15
|
+
/** https://tc39.es/ecma262/#sec-runtime-semantics-definemethod */
|
|
16
|
+
export function* DefineMethod(MethodDefinition: ParseNode.MethodDefinition, object: ObjectValue, functionPrototype?: ObjectValue): Evaluator<PlainCompletion<DefineMethodRecord>> {
|
|
17
|
+
const { ClassElementName, UniqueFormalParameters, FunctionBody } = MethodDefinition;
|
|
18
|
+
// 1. Let propKey be the result of evaluating ClassElementName.
|
|
19
|
+
const propKey = ReturnIfAbrupt(yield* Evaluate_PropertyName(ClassElementName));
|
|
20
|
+
// 2. ReturnIfAbrupt(propKey).
|
|
21
|
+
// 3. Let scope be the running execution context's LexicalEnvironment.
|
|
22
|
+
const scope = surroundingAgent.runningExecutionContext.LexicalEnvironment;
|
|
23
|
+
// 4. Let privateScope be the running execution context's PrivateEnvironment.
|
|
24
|
+
const privateScope = surroundingAgent.runningExecutionContext.PrivateEnvironment;
|
|
25
|
+
let prototype;
|
|
26
|
+
// 5. If functionPrototype is present as a parameter, then
|
|
27
|
+
if (functionPrototype !== undefined) {
|
|
28
|
+
// a. Let prototype be functionPrototype.
|
|
29
|
+
prototype = functionPrototype;
|
|
30
|
+
} else { // 6. Else,
|
|
31
|
+
// a. Let prototype be %Function.prototype%.
|
|
32
|
+
prototype = surroundingAgent.intrinsic('%Function.prototype%');
|
|
33
|
+
}
|
|
34
|
+
// 7. Let sourceText be the source text matched by MethodDefinition.
|
|
35
|
+
const sourceText = sourceTextMatchedBy(MethodDefinition);
|
|
36
|
+
// 8. Let closure be OrdinaryFunctionCreate(prototype, sourceText, UniqueFormalParameters, FunctionBody, non-lexical-this, scope, privateScope).
|
|
37
|
+
const closure = OrdinaryFunctionCreate(prototype, sourceText, UniqueFormalParameters!, FunctionBody, 'non-lexical-this', scope, privateScope);
|
|
38
|
+
// 9. Perform MakeMethod(closure, object).
|
|
39
|
+
MakeMethod(closure, object);
|
|
40
|
+
// 10. Return the Record { [[Key]]: propKey, [[Closure]]: closure }.
|
|
41
|
+
return { Key: propKey, Closure: closure };
|
|
42
|
+
}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { surroundingAgent } from '../engine.mts';
|
|
2
|
+
import {
|
|
3
|
+
JSStringValue, ReferenceRecord, Value, type PropertyKeyValue,
|
|
4
|
+
} from '../value.mts';
|
|
5
|
+
import {
|
|
6
|
+
ArrayCreate,
|
|
7
|
+
CopyDataProperties,
|
|
8
|
+
CreateDataPropertyOrThrow,
|
|
9
|
+
GetIterator,
|
|
10
|
+
GetV,
|
|
11
|
+
GetValue,
|
|
12
|
+
IteratorClose,
|
|
13
|
+
IteratorStep,
|
|
14
|
+
OrdinaryObjectCreate,
|
|
15
|
+
PutValue,
|
|
16
|
+
ResolveBinding,
|
|
17
|
+
RequireObjectCoercible,
|
|
18
|
+
ToString,
|
|
19
|
+
F,
|
|
20
|
+
Assert,
|
|
21
|
+
type IteratorRecord,
|
|
22
|
+
IteratorStepValue,
|
|
23
|
+
} from '../abstract-ops/all.mts';
|
|
24
|
+
import {
|
|
25
|
+
IsAnonymousFunctionDefinition,
|
|
26
|
+
IsIdentifierRef,
|
|
27
|
+
StringValue,
|
|
28
|
+
type FunctionDeclaration,
|
|
29
|
+
} from '../static-semantics/all.mts';
|
|
30
|
+
import { Evaluate, type Evaluator, type StatementEvaluator } from '../evaluator.mts';
|
|
31
|
+
import {
|
|
32
|
+
Q, X,
|
|
33
|
+
Completion,
|
|
34
|
+
AbruptCompletion,
|
|
35
|
+
NormalCompletion,
|
|
36
|
+
ReturnIfAbrupt,
|
|
37
|
+
EnsureCompletion,
|
|
38
|
+
type ExpressionCompletion,
|
|
39
|
+
type PlainCompletion,
|
|
40
|
+
} from '../completion.mts';
|
|
41
|
+
import { OutOfRange } from '../helpers.mts';
|
|
42
|
+
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
43
|
+
import {
|
|
44
|
+
Evaluate_PropertyName,
|
|
45
|
+
NamedEvaluation,
|
|
46
|
+
refineLeftHandSideExpression,
|
|
47
|
+
} from './all.mts';
|
|
48
|
+
|
|
49
|
+
// ObjectAssignmentPattern :
|
|
50
|
+
// `{` `}`
|
|
51
|
+
// `{` AssignmentPropertyList `}`
|
|
52
|
+
// `{` AssignmentPropertyList `,` `}`
|
|
53
|
+
// `{` AssignmentPropertyList `,` AssignmentRestProperty? `}`
|
|
54
|
+
function* DestructuringAssignmentEvaluation_ObjectAssignmentPattern({ AssignmentPropertyList, AssignmentRestProperty }: ParseNode.ObjectAssignmentPattern, value: Value): Evaluator<PlainCompletion<void>> {
|
|
55
|
+
// 1. Perform ? RequireObjectCoercible(value).
|
|
56
|
+
Q(RequireObjectCoercible(value));
|
|
57
|
+
// 2. Perform ? PropertyDestructuringAssignmentEvaluation for AssignmentPropertyList using value as the argument.
|
|
58
|
+
const excludedNames: readonly PropertyKeyValue[] = Q(yield* PropertyDestructuringAssignmentEvaluation(AssignmentPropertyList, value));
|
|
59
|
+
if (AssignmentRestProperty) {
|
|
60
|
+
Q(yield* RestDestructuringAssignmentEvaluation(AssignmentRestProperty, value, excludedNames));
|
|
61
|
+
}
|
|
62
|
+
// 3. Return NormalCompletion(empty).
|
|
63
|
+
return NormalCompletion(undefined);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** https://tc39.es/ecma262/#sec-runtime-semantics-restdestructuringassignmentevaluation */
|
|
67
|
+
// AssignmentRestProperty : `...` DestructuringAssignmentTarget
|
|
68
|
+
function* RestDestructuringAssignmentEvaluation({ DestructuringAssignmentTarget }: ParseNode.AssignmentRestProperty, value: Value, excludedNames: readonly PropertyKeyValue[]) {
|
|
69
|
+
// 1. Let lref be the result of evaluating DestructuringAssignmentTarget.
|
|
70
|
+
const lref = yield* Evaluate(DestructuringAssignmentTarget);
|
|
71
|
+
// 2. ReturnIfAbrupt(lref).
|
|
72
|
+
ReturnIfAbrupt(lref);
|
|
73
|
+
// 3. Let restObj be OrdinaryObjectCreate(%Object.prototype%).
|
|
74
|
+
const restObj = OrdinaryObjectCreate(surroundingAgent.intrinsic('%Object.prototype%'));
|
|
75
|
+
// 4. Perform ? CopyDataProperties(restObj, value, excludedNames).
|
|
76
|
+
Q(CopyDataProperties(restObj, value, excludedNames));
|
|
77
|
+
// 5. Return PutValue(lref, restObj).
|
|
78
|
+
return PutValue(lref, restObj);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function* PropertyDestructuringAssignmentEvaluation(AssignmentPropertyList: ParseNode.ObjectAssignmentPattern['AssignmentPropertyList'], value: Value): Evaluator<PlainCompletion<PropertyKeyValue[]>> {
|
|
82
|
+
const propertyNames: PropertyKeyValue[] = [];
|
|
83
|
+
for (const AssignmentProperty of AssignmentPropertyList) {
|
|
84
|
+
if ('IdentifierReference' in AssignmentProperty) {
|
|
85
|
+
// 1. Let P be StringValue of IdentifierReference.
|
|
86
|
+
const P = StringValue(AssignmentProperty.IdentifierReference);
|
|
87
|
+
// 2. Let lref be ? ResolveBinding(P).
|
|
88
|
+
const lref = Q(ResolveBinding(P, undefined, AssignmentProperty.IdentifierReference.strict));
|
|
89
|
+
// 3. Let v be ? GetV(value, P).
|
|
90
|
+
let v = Q(GetV(value, P));
|
|
91
|
+
// 4. If Initializer? is present and v is undefined, then
|
|
92
|
+
if (AssignmentProperty.Initializer && v === Value.undefined) {
|
|
93
|
+
// a. If IsAnonymousFunctionDefinition(Initializer) is true, then
|
|
94
|
+
if (IsAnonymousFunctionDefinition(AssignmentProperty.Initializer)) {
|
|
95
|
+
// i. Set v to the result of performing NamedEvaluation for Initializer with argument P.
|
|
96
|
+
v = Q(yield* NamedEvaluation(AssignmentProperty.Initializer as FunctionDeclaration, P));
|
|
97
|
+
} else { // b. Else,
|
|
98
|
+
// i. Let defaultValue be the result of evaluating Initializer.
|
|
99
|
+
const defaultValue = yield* Evaluate(AssignmentProperty.Initializer);
|
|
100
|
+
// ii. Set v to ? GetValue(defaultValue)
|
|
101
|
+
v = Q(GetValue(defaultValue));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// 5. Perform ? PutValue(lref, v).
|
|
105
|
+
Q(PutValue(lref, v));
|
|
106
|
+
// 6. Return a new List containing P.
|
|
107
|
+
propertyNames.push(P);
|
|
108
|
+
} else {
|
|
109
|
+
Assert('PropertyName' in AssignmentProperty);
|
|
110
|
+
// 1. Let name be the result of evaluating PropertyName.
|
|
111
|
+
const name = yield* Evaluate_PropertyName(AssignmentProperty.PropertyName!);
|
|
112
|
+
// 2. ReturnIfAbrupt(name).
|
|
113
|
+
ReturnIfAbrupt(name);
|
|
114
|
+
// 3. Perform ? KeyedDestructuringAssignmentEvaluation of AssignmentElement with value and name as the arguments.
|
|
115
|
+
Q(yield* KeyedDestructuringAssignmentEvaluation(AssignmentProperty.AssignmentElement, value, name as PropertyKeyValue));
|
|
116
|
+
// 4. Return a new List containing name.
|
|
117
|
+
propertyNames.push(name as PropertyKeyValue);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return propertyNames;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// AssignmentElement : DestructuringAssignmentTarget Initializer?
|
|
124
|
+
function* KeyedDestructuringAssignmentEvaluation({
|
|
125
|
+
DestructuringAssignmentTarget,
|
|
126
|
+
Initializer,
|
|
127
|
+
}: ParseNode.AssignmentElement, value: Value, propertyName: PropertyKeyValue) {
|
|
128
|
+
// 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
|
|
129
|
+
let lref;
|
|
130
|
+
if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
|
|
131
|
+
&& DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
|
|
132
|
+
// a. Let lref be the result of evaluating DestructuringAssignmentTarget.
|
|
133
|
+
lref = yield* Evaluate(DestructuringAssignmentTarget);
|
|
134
|
+
// b. ReturnIfAbrupt(lref).
|
|
135
|
+
ReturnIfAbrupt(lref);
|
|
136
|
+
}
|
|
137
|
+
// 2. Let v be ? GetV(value, propertyName).
|
|
138
|
+
const v = Q(GetV(value, propertyName));
|
|
139
|
+
// 3. If Initializer is present and v is undefined, then
|
|
140
|
+
let rhsValue: ExpressionCompletion;
|
|
141
|
+
if (Initializer && v === Value.undefined) {
|
|
142
|
+
// a. If IsAnonymousFunctionDefinition(Initializer) and IsIdentifierRef of DestructuringAssignmentTarget are both true, then
|
|
143
|
+
if (IsAnonymousFunctionDefinition(Initializer) && IsIdentifierRef(DestructuringAssignmentTarget)) {
|
|
144
|
+
// i. Let rhsValue be NamedEvaluation of Initializer with argument GetReferencedName(lref).
|
|
145
|
+
rhsValue = yield* NamedEvaluation(Initializer as FunctionDeclaration, (lref as ReferenceRecord).ReferencedName as JSStringValue);
|
|
146
|
+
} else {
|
|
147
|
+
// i. Let defaultValue be the result of evaluating Initializer.
|
|
148
|
+
const defaultValue = yield* Evaluate(Initializer);
|
|
149
|
+
// ii. Let rhsValue be ? GetValue(defaultValue).
|
|
150
|
+
rhsValue = Q(GetValue(defaultValue));
|
|
151
|
+
}
|
|
152
|
+
} else { // 4. Else, let rhsValue be v.
|
|
153
|
+
rhsValue = v;
|
|
154
|
+
}
|
|
155
|
+
// 5. If DestructuringAssignmentTarget is an ObjectLiteral or an ArrayLiteral, then
|
|
156
|
+
if (DestructuringAssignmentTarget.type === 'ObjectLiteral'
|
|
157
|
+
|| DestructuringAssignmentTarget.type === 'ArrayLiteral') {
|
|
158
|
+
// a. Let assignmentPattern be the AssignmentPattern that is covered by DestructuringAssignmentTarget.
|
|
159
|
+
const assignmentPattern = refineLeftHandSideExpression(DestructuringAssignmentTarget) as ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern;
|
|
160
|
+
// b. Return the result of performing DestructuringAssignmentEvaluation of assignmentPattern with rhsValue as the argument.
|
|
161
|
+
return yield* DestructuringAssignmentEvaluation(assignmentPattern, X(rhsValue));
|
|
162
|
+
}
|
|
163
|
+
// 6. Return ? PutValue(lref, rhsValue).
|
|
164
|
+
return Q(PutValue(X(lref!), rhsValue));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// ArrayAssignmentPattern :
|
|
168
|
+
// `[` `]`
|
|
169
|
+
// `[` AssignmentElementList `]`
|
|
170
|
+
// `[` AssignmentElementList `,` AssignmentRestElement? `]`
|
|
171
|
+
function* DestructuringAssignmentEvaluation_ArrayAssignmentPattern({ AssignmentElementList, AssignmentRestElement }: ParseNode.ArrayAssignmentPattern, value: Value) {
|
|
172
|
+
// 1. Let iteratorRecord be ? GetIterator(value).
|
|
173
|
+
const iteratorRecord = Q(GetIterator(value, 'sync'));
|
|
174
|
+
// 2. Let status be IteratorDestructuringAssignmentEvaluation of AssignmentElementList with argument iteratorRecord.
|
|
175
|
+
let status = EnsureCompletion(yield* IteratorDestructuringAssignmentEvaluation(AssignmentElementList, iteratorRecord));
|
|
176
|
+
// 3. If status is an abrupt completion, then
|
|
177
|
+
if (status instanceof AbruptCompletion) {
|
|
178
|
+
// a. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, status).
|
|
179
|
+
if (iteratorRecord.Done === Value.false) {
|
|
180
|
+
return Q(IteratorClose(iteratorRecord, status));
|
|
181
|
+
}
|
|
182
|
+
// b. Return Completion(status).
|
|
183
|
+
return status;
|
|
184
|
+
}
|
|
185
|
+
// 4. If Elision is present, then
|
|
186
|
+
// ...
|
|
187
|
+
// 5. If AssignmentRestElement is present, then
|
|
188
|
+
if (AssignmentRestElement) {
|
|
189
|
+
// a. Set status to the result of performing IteratorDestructuringAssignmentEvaluation of AssignmentRestElement with iteratorRecord as the argument.
|
|
190
|
+
status = EnsureCompletion(yield* IteratorDestructuringAssignmentEvaluation(AssignmentRestElement, iteratorRecord));
|
|
191
|
+
}
|
|
192
|
+
// 6. If iteratorRecord.[[Done]] is false, return ? IteratorClose(iteratorRecord, status).
|
|
193
|
+
if (iteratorRecord.Done === Value.false) {
|
|
194
|
+
return Q(IteratorClose(iteratorRecord, status));
|
|
195
|
+
}
|
|
196
|
+
return Completion(status);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function* IteratorDestructuringAssignmentEvaluation(node: ParseNode.AssignmentElisionElement[] | ParseNode.AssignmentElisionElement | ParseNode.AssignmentRestElement, iteratorRecord: IteratorRecord): StatementEvaluator {
|
|
200
|
+
if (Array.isArray(node)) {
|
|
201
|
+
for (const n of node) {
|
|
202
|
+
Q(yield* IteratorDestructuringAssignmentEvaluation(n, iteratorRecord));
|
|
203
|
+
}
|
|
204
|
+
return NormalCompletion(undefined);
|
|
205
|
+
}
|
|
206
|
+
switch (node.type) {
|
|
207
|
+
case 'Elision':
|
|
208
|
+
// 1. If iteratorRecord.[[Done]] is false, then
|
|
209
|
+
if (iteratorRecord.Done === Value.false) {
|
|
210
|
+
// a. Perform ? IteratorStep(iteratorRecord).
|
|
211
|
+
Q(IteratorStep(iteratorRecord));
|
|
212
|
+
}
|
|
213
|
+
// 2. Return NormalCompletion(empty).
|
|
214
|
+
return NormalCompletion(undefined);
|
|
215
|
+
case 'AssignmentElement': {
|
|
216
|
+
const { DestructuringAssignmentTarget, Initializer } = node;
|
|
217
|
+
let lref;
|
|
218
|
+
// 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
|
|
219
|
+
if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
|
|
220
|
+
&& DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
|
|
221
|
+
lref = Q(yield* Evaluate(DestructuringAssignmentTarget));
|
|
222
|
+
}
|
|
223
|
+
let value: Value = Value.undefined;
|
|
224
|
+
// 2. If iteratorRecord.[[Done]] is false, then
|
|
225
|
+
if (iteratorRecord.Done === Value.false) {
|
|
226
|
+
// a. Let next be ? IteratorStepValue(iteratorRecord).
|
|
227
|
+
const next = Q(IteratorStepValue(iteratorRecord));
|
|
228
|
+
// d. If next is not done, set value to next.
|
|
229
|
+
if (next !== 'done') {
|
|
230
|
+
value = next;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
let v: ExpressionCompletion;
|
|
234
|
+
// 4. If Initializer is present and value is undefined, then
|
|
235
|
+
if (Initializer && value === Value.undefined) {
|
|
236
|
+
// a. If IsAnonymousFunctionDefinition(AssignmentExpression) is true and IsIdentifierRef of LeftHandSideExpression is true, then
|
|
237
|
+
if (IsAnonymousFunctionDefinition(Initializer) && IsIdentifierRef(DestructuringAssignmentTarget)) {
|
|
238
|
+
// i. Let target be the StringValue of DestructuringAssignmentTarget.
|
|
239
|
+
const target = (lref as ReferenceRecord).ReferencedName as JSStringValue;
|
|
240
|
+
// i. ii. Let v be ? NamedEvaluation of Initializer with argument target.
|
|
241
|
+
v = yield* NamedEvaluation(Initializer as FunctionDeclaration, target);
|
|
242
|
+
} else { // b. Else,
|
|
243
|
+
// i. Let defaultValue be the result of evaluating Initializer.
|
|
244
|
+
const defaultValue = yield* Evaluate(Initializer);
|
|
245
|
+
// ii. Let v be ? GetValue(defaultValue).
|
|
246
|
+
v = Q(GetValue(defaultValue));
|
|
247
|
+
}
|
|
248
|
+
} else { // 5. Else, let v be value.
|
|
249
|
+
v = Q(value!);
|
|
250
|
+
}
|
|
251
|
+
// 6. If DestructuringAssignmentTarget is an ObjectLiteral or an ArrayLiteral, then
|
|
252
|
+
if (DestructuringAssignmentTarget.type === 'ObjectLiteral'
|
|
253
|
+
|| DestructuringAssignmentTarget.type === 'ArrayLiteral') {
|
|
254
|
+
// a. Let nestedAssignmentPattern be the AssignmentPattern that is covered by DestructuringAssignmentTarget.
|
|
255
|
+
const nestedAssignmentPattern = refineLeftHandSideExpression(DestructuringAssignmentTarget) as ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern;
|
|
256
|
+
// b. Return the result of performing DestructuringAssignmentEvaluation of nestedAssignmentPattern with v as the argument.
|
|
257
|
+
return yield* DestructuringAssignmentEvaluation(nestedAssignmentPattern, X(v));
|
|
258
|
+
}
|
|
259
|
+
// 7. Return ? PutValue(lref, v).
|
|
260
|
+
return Q(PutValue(lref as ReferenceRecord, v));
|
|
261
|
+
}
|
|
262
|
+
case 'AssignmentRestElement': {
|
|
263
|
+
const { AssignmentExpression: DestructuringAssignmentTarget } = node;
|
|
264
|
+
let lref;
|
|
265
|
+
// 1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
|
|
266
|
+
if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
|
|
267
|
+
&& DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
|
|
268
|
+
lref = yield* Evaluate(DestructuringAssignmentTarget);
|
|
269
|
+
ReturnIfAbrupt(lref);
|
|
270
|
+
}
|
|
271
|
+
// 2. Let A be ! ArrayCreate(0).
|
|
272
|
+
const A = X(ArrayCreate(0));
|
|
273
|
+
// 3. Let n be 0.
|
|
274
|
+
let n = 0;
|
|
275
|
+
// 4. Repeat, while iteratorRecord.[[Done]] is false,
|
|
276
|
+
while (iteratorRecord.Done === Value.false) {
|
|
277
|
+
// a. Let next be IteratorStep(iteratorRecord).
|
|
278
|
+
const next = Q(IteratorStepValue(iteratorRecord));
|
|
279
|
+
// d. If next is not done, then
|
|
280
|
+
if (next !== 'done') {
|
|
281
|
+
// i. Perform ! CreateDataPropertyOrThrow(A, ! ToString(𝔽(n)), next).
|
|
282
|
+
X(CreateDataPropertyOrThrow(A, X(ToString(F(n))), X(next)));
|
|
283
|
+
// v. Set n to n + 1.
|
|
284
|
+
n += 1;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// 5. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
|
|
288
|
+
if (DestructuringAssignmentTarget.type !== 'ObjectLiteral'
|
|
289
|
+
&& DestructuringAssignmentTarget.type !== 'ArrayLiteral') {
|
|
290
|
+
return Q(PutValue(lref as ReferenceRecord, A));
|
|
291
|
+
}
|
|
292
|
+
// 6. Let nestedAssignmentPattern be the AssignmentPattern that is covered by DestructuringAssignmentTarget.
|
|
293
|
+
const nestedAssignmentPattern = refineLeftHandSideExpression(DestructuringAssignmentTarget) as ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern;
|
|
294
|
+
// 7. Return the result of performing DestructuringAssignmentEvaluation of nestedAssignmentPattern with A as the argument.
|
|
295
|
+
return yield* DestructuringAssignmentEvaluation(nestedAssignmentPattern, A);
|
|
296
|
+
}
|
|
297
|
+
default:
|
|
298
|
+
throw new OutOfRange('IteratorDestructuringAssignmentEvaluation', node);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export function DestructuringAssignmentEvaluation(node: ParseNode.ObjectAssignmentPattern | ParseNode.ArrayAssignmentPattern, value: Value): StatementEvaluator {
|
|
303
|
+
switch (node.type) {
|
|
304
|
+
case 'ObjectAssignmentPattern':
|
|
305
|
+
return DestructuringAssignmentEvaluation_ObjectAssignmentPattern(node, value);
|
|
306
|
+
case 'ArrayAssignmentPattern':
|
|
307
|
+
return DestructuringAssignmentEvaluation_ArrayAssignmentPattern(node, value);
|
|
308
|
+
default:
|
|
309
|
+
throw new OutOfRange('DestructuringAssignmentEvaluation', node);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NormalCompletion } from '../completion.mts';
|
|
2
|
+
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
3
|
+
|
|
4
|
+
/** https://tc39.es/ecma262/#sec-empty-statement-runtime-semantics-evaluation */
|
|
5
|
+
// EmptyStatement : `;`
|
|
6
|
+
export function Evaluate_EmptyStatement(_EmptyStatement: ParseNode.EmptyStatement) {
|
|
7
|
+
// 1. Return NormalCompletion(empty).
|
|
8
|
+
return NormalCompletion(undefined);
|
|
9
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AbstractEqualityComparison,
|
|
3
|
+
GetValue,
|
|
4
|
+
IsStrictlyEqual,
|
|
5
|
+
} from '../abstract-ops/all.mts';
|
|
6
|
+
import { ReturnIfAbrupt, Q, X } from '../completion.mts';
|
|
7
|
+
import { Evaluate } from '../evaluator.mts';
|
|
8
|
+
import { Value } from '../value.mts';
|
|
9
|
+
import { OutOfRange } from '../helpers.mts';
|
|
10
|
+
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
11
|
+
|
|
12
|
+
/** https://tc39.es/ecma262/#sec-equality-operators-runtime-semantics-evaluation */
|
|
13
|
+
// EqualityExpression :
|
|
14
|
+
// EqualityExpression `==` RelationalExpression
|
|
15
|
+
// EqualityExpression `!=` RelationalExpression
|
|
16
|
+
// EqualityExpression `===` RelationalExpression
|
|
17
|
+
// EqualityExpression `!==` RelationalExpression
|
|
18
|
+
export function* Evaluate_EqualityExpression({ EqualityExpression, operator, RelationalExpression }: ParseNode.EqualityExpression) {
|
|
19
|
+
// 1. Let lref be the result of evaluating EqualityExpression.
|
|
20
|
+
const lref = yield* Evaluate(EqualityExpression);
|
|
21
|
+
// 2. Let lval be ? GetValue(lref).
|
|
22
|
+
const lval = Q(GetValue(lref));
|
|
23
|
+
// 3. Let rref be the result of evaluating RelationalExpression.
|
|
24
|
+
const rref = yield* Evaluate(RelationalExpression);
|
|
25
|
+
// 4. Let rval be ? GetValue(rref).
|
|
26
|
+
const rval = Q(GetValue(rref));
|
|
27
|
+
switch (operator) {
|
|
28
|
+
case '==':
|
|
29
|
+
// 5. Return the result of performing Abstract Equality Comparison rval == lval.
|
|
30
|
+
return AbstractEqualityComparison(rval, lval);
|
|
31
|
+
case '!=': {
|
|
32
|
+
// 5. Let r be the result of performing Abstract Equality Comparison rval == lval.
|
|
33
|
+
const r = AbstractEqualityComparison(rval, lval);
|
|
34
|
+
// 6. ReturnIfAbrupt(r).
|
|
35
|
+
ReturnIfAbrupt(r);
|
|
36
|
+
// 7. If r is true, return false. Otherwise, return true.
|
|
37
|
+
if (r === Value.true) {
|
|
38
|
+
return Value.false;
|
|
39
|
+
} else {
|
|
40
|
+
return Value.true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
case '===':
|
|
44
|
+
// 5. Return the result of performing Strict Equality Comparison rval === lval.
|
|
45
|
+
return IsStrictlyEqual(rval, lval);
|
|
46
|
+
case '!==': {
|
|
47
|
+
// 5. Let r be the result of performing Strict Equality Comparison rval === lval.
|
|
48
|
+
// 6. Assert: r is a normal completion.
|
|
49
|
+
const r = X(IsStrictlyEqual(rval, lval));
|
|
50
|
+
// 7. If r.[[Value]] is true, return false. Otherwise, return true.
|
|
51
|
+
if (r === Value.true) {
|
|
52
|
+
return Value.false;
|
|
53
|
+
} else {
|
|
54
|
+
return Value.true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
default:
|
|
59
|
+
throw new OutOfRange('Evaluate_EqualityExpression', operator);
|
|
60
|
+
}
|
|
61
|
+
}
|