@engine262/engine262 0.0.1-01e9fa95a4e8a1c042efd00492309a2de4998fd0
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 +149 -0
- package/bin/engine262.js +5 -0
- package/declaration/abstract-ops/all.d.mts +39 -0
- package/declaration/abstract-ops/all.d.mts.map +1 -0
- package/declaration/abstract-ops/arguments-operations.d.mts +14 -0
- package/declaration/abstract-ops/arguments-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/array-objects.d.mts +20 -0
- package/declaration/abstract-ops/array-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/arraybuffer-objects.d.mts +43 -0
- package/declaration/abstract-ops/arraybuffer-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/async-function-operations.d.mts +7 -0
- package/declaration/abstract-ops/async-function-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/async-generator-objects.d.mts +35 -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 +20 -0
- package/declaration/abstract-ops/dataview-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/date-objects.d.mts +57 -0
- package/declaration/abstract-ops/date-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/disposable-operations.d.mts +19 -0
- package/declaration/abstract-ops/disposable-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/error-objects.d.mts +8 -0
- package/declaration/abstract-ops/error-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/execution-contexts.d.mts +3 -0
- package/declaration/abstract-ops/execution-contexts.d.mts.map +1 -0
- package/declaration/abstract-ops/function-operations.d.mts +101 -0
- package/declaration/abstract-ops/function-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/generator-operations.d.mts +33 -0
- package/declaration/abstract-ops/generator-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/global-object.d.mts +11 -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 +53 -0
- package/declaration/abstract-ops/iterator-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/keyed-collections.d.mts +4 -0
- package/declaration/abstract-ops/keyed-collections.d.mts.map +1 -0
- package/declaration/abstract-ops/math.d.mts +23 -0
- package/declaration/abstract-ops/math.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 +64 -0
- package/declaration/abstract-ops/module-records.d.mts.map +1 -0
- package/declaration/abstract-ops/notational-conventions.d.mts +19 -0
- package/declaration/abstract-ops/notational-conventions.d.mts.map +1 -0
- package/declaration/abstract-ops/object-operations.d.mts +79 -0
- package/declaration/abstract-ops/object-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/objects.d.mts +32 -0
- package/declaration/abstract-ops/objects.d.mts.map +1 -0
- package/declaration/abstract-ops/private-names.d.mts +15 -0
- package/declaration/abstract-ops/private-names.d.mts.map +1 -0
- package/declaration/abstract-ops/promise-operations.d.mts +49 -0
- package/declaration/abstract-ops/promise-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/proxy-objects.d.mts +6 -0
- package/declaration/abstract-ops/proxy-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/realms.d.mts +181 -0
- package/declaration/abstract-ops/realms.d.mts.map +1 -0
- package/declaration/abstract-ops/reference-operations.d.mts +28 -0
- package/declaration/abstract-ops/reference-operations.d.mts.map +1 -0
- package/declaration/abstract-ops/regexp-objects.d.mts +28 -0
- package/declaration/abstract-ops/regexp-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/shadow-realm.d.mts +26 -0
- package/declaration/abstract-ops/shadow-realm.d.mts.map +1 -0
- package/declaration/abstract-ops/shared-arraybuffer.d.mts +4 -0
- package/declaration/abstract-ops/shared-arraybuffer.d.mts.map +1 -0
- package/declaration/abstract-ops/spec-types.d.mts +53 -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 +11 -0
- package/declaration/abstract-ops/symbol-objects.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/addition.d.mts +62 -0
- package/declaration/abstract-ops/temporal/addition.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/all.d.mts +13 -0
- package/declaration/abstract-ops/temporal/all.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/calendar.d.mts +203 -0
- package/declaration/abstract-ops/temporal/calendar.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/duration.d.mts +126 -0
- package/declaration/abstract-ops/temporal/duration.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/instant.d.mts +25 -0
- package/declaration/abstract-ops/temporal/instant.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/not-implemented.d.mts +5 -0
- package/declaration/abstract-ops/temporal/not-implemented.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/now.d.mts +11 -0
- package/declaration/abstract-ops/temporal/now.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/plain-date-time.d.mts +36 -0
- package/declaration/abstract-ops/temporal/plain-date-time.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/plain-date.d.mts +32 -0
- package/declaration/abstract-ops/temporal/plain-date.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/plain-month-day.d.mts +10 -0
- package/declaration/abstract-ops/temporal/plain-month-day.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/plain-time.d.mts +58 -0
- package/declaration/abstract-ops/temporal/plain-time.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/plain-year-month.d.mts +19 -0
- package/declaration/abstract-ops/temporal/plain-year-month.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/temporal.d.mts +157 -0
- package/declaration/abstract-ops/temporal/temporal.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/time-zone.d.mts +26 -0
- package/declaration/abstract-ops/temporal/time-zone.d.mts.map +1 -0
- package/declaration/abstract-ops/temporal/zoned-datetime.d.mts +28 -0
- package/declaration/abstract-ops/temporal/zoned-datetime.d.mts.map +1 -0
- package/declaration/abstract-ops/testing-comparison.d.mts +35 -0
- package/declaration/abstract-ops/testing-comparison.d.mts.map +1 -0
- package/declaration/abstract-ops/type-conversion.d.mts +62 -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 +4 -0
- package/declaration/abstract-ops/weak-operations.d.mts.map +1 -0
- package/declaration/api.d.mts +76 -0
- package/declaration/api.d.mts.map +1 -0
- package/declaration/completion.d.mts +156 -0
- package/declaration/completion.d.mts.map +1 -0
- package/declaration/ecma402/not-implemented.d.mts +3 -0
- package/declaration/ecma402/not-implemented.d.mts.map +1 -0
- package/declaration/evaluator.d.mts +61 -0
- package/declaration/evaluator.d.mts.map +1 -0
- package/declaration/execution-context/Agent.d.mts +75 -0
- package/declaration/execution-context/Agent.d.mts.map +1 -0
- package/declaration/execution-context/Environment.d.mts +175 -0
- package/declaration/execution-context/Environment.d.mts.map +1 -0
- package/declaration/execution-context/ExecutionContext.d.mts +48 -0
- package/declaration/execution-context/ExecutionContext.d.mts.map +1 -0
- package/declaration/execution-context/Job.d.mts +23 -0
- package/declaration/execution-context/Job.d.mts.map +1 -0
- package/declaration/execution-context/PrivateEnvironment.d.mts +12 -0
- package/declaration/execution-context/PrivateEnvironment.d.mts.map +1 -0
- package/declaration/execution-context/Realm.d.mts +24 -0
- package/declaration/execution-context/Realm.d.mts.map +1 -0
- package/declaration/execution-context/WeakReference.d.mts +12 -0
- package/declaration/execution-context/WeakReference.d.mts.map +1 -0
- package/declaration/execution-context/all.d.mts +8 -0
- package/declaration/execution-context/all.d.mts.map +1 -0
- package/declaration/host-defined/base64.d.mts +10 -0
- package/declaration/host-defined/base64.d.mts.map +1 -0
- package/declaration/host-defined/debugger-util.d.mts +2 -0
- package/declaration/host-defined/debugger-util.d.mts.map +1 -0
- package/declaration/host-defined/decimal.d.mts +29 -0
- package/declaration/host-defined/decimal.d.mts.map +1 -0
- package/declaration/host-defined/devtoolsEval.d.mts +3 -0
- package/declaration/host-defined/devtoolsEval.d.mts.map +1 -0
- package/declaration/host-defined/engine.d.mts +133 -0
- package/declaration/host-defined/engine.d.mts.map +1 -0
- package/declaration/host-defined/error-messages.d.mts +45 -0
- package/declaration/host-defined/error-messages.d.mts.map +1 -0
- package/declaration/host-defined/event-loop.d.mts +92 -0
- package/declaration/host-defined/event-loop.d.mts.map +1 -0
- package/declaration/host-defined/ieee754.d.mts +7 -0
- package/declaration/host-defined/ieee754.d.mts.map +1 -0
- package/declaration/host-defined/inspect.d.mts +4 -0
- package/declaration/host-defined/inspect.d.mts.map +1 -0
- package/declaration/host-defined/job-queue.d.mts +42 -0
- package/declaration/host-defined/job-queue.d.mts.map +1 -0
- package/declaration/host-defined/sort.d.mts +14 -0
- package/declaration/host-defined/sort.d.mts.map +1 -0
- package/declaration/host-defined/test262-intrinsics.d.mts +8 -0
- package/declaration/host-defined/test262-intrinsics.d.mts.map +1 -0
- package/declaration/index.d.mts +56 -0
- package/declaration/index.d.mts.map +1 -0
- package/declaration/intrinsics/AbstractModuleSource.d.mts +5 -0
- package/declaration/intrinsics/AbstractModuleSource.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 +8 -0
- package/declaration/intrinsics/ArrayPrototypeShared.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncDisposableStack.d.mts +8 -0
- package/declaration/intrinsics/AsyncDisposableStack.d.mts.map +1 -0
- package/declaration/intrinsics/AsyncDisposableStackPrototype.d.mts +3 -0
- package/declaration/intrinsics/AsyncDisposableStackPrototype.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 +6 -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 +5 -0
- package/declaration/intrinsics/BooleanPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/DataView.d.mts +12 -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 +8 -0
- package/declaration/intrinsics/Date.d.mts.map +1 -0
- package/declaration/intrinsics/DatePrototype.d.mts +12 -0
- package/declaration/intrinsics/DatePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/DisposableStack.d.mts +8 -0
- package/declaration/intrinsics/DisposableStack.d.mts.map +1 -0
- package/declaration/intrinsics/DisposableStackPrototype.d.mts +3 -0
- package/declaration/intrinsics/DisposableStackPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Error.d.mts +18 -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 +13 -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/Iterator.d.mts +3 -0
- package/declaration/intrinsics/Iterator.d.mts.map +1 -0
- package/declaration/intrinsics/IteratorHelperPrototype.d.mts +3 -0
- package/declaration/intrinsics/IteratorHelperPrototype.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 +9 -0
- package/declaration/intrinsics/JSON.d.mts.map +1 -0
- package/declaration/intrinsics/Map.d.mts +13 -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 +8 -0
- package/declaration/intrinsics/Number.d.mts.map +1 -0
- package/declaration/intrinsics/NumberPrototype.d.mts +5 -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 +5 -0
- package/declaration/intrinsics/ObjectPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Promise.d.mts +18 -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 +12 -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 +13 -0
- package/declaration/intrinsics/RegExp.d.mts.map +1 -0
- package/declaration/intrinsics/RegExpPrototype.d.mts +12 -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 +8 -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/ShadowRealm.d.mts +8 -0
- package/declaration/intrinsics/ShadowRealm.d.mts.map +1 -0
- package/declaration/intrinsics/ShadowRealmPrototype.d.mts +3 -0
- package/declaration/intrinsics/ShadowRealmPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/String.d.mts +10 -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 +6 -0
- package/declaration/intrinsics/StringPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/SuppressedError.d.mts +3 -0
- package/declaration/intrinsics/SuppressedError.d.mts.map +1 -0
- package/declaration/intrinsics/SuppressedErrorPrototype.d.mts +3 -0
- package/declaration/intrinsics/SuppressedErrorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Symbol.d.mts +8 -0
- package/declaration/intrinsics/Symbol.d.mts.map +1 -0
- package/declaration/intrinsics/SymbolPrototype.d.mts +6 -0
- package/declaration/intrinsics/SymbolPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/Duration.d.mts +18 -0
- package/declaration/intrinsics/Temporal/Duration.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/DurationPrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/DurationPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/Instant.d.mts +9 -0
- package/declaration/intrinsics/Temporal/Instant.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/InstantPrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/InstantPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/Now.d.mts +3 -0
- package/declaration/intrinsics/Temporal/Now.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainDate.d.mts +16 -0
- package/declaration/intrinsics/Temporal/PlainDate.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainDatePrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/PlainDatePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainDateTime.d.mts +17 -0
- package/declaration/intrinsics/Temporal/PlainDateTime.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainDateTimePrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/PlainDateTimePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainMonthDay.d.mts +12 -0
- package/declaration/intrinsics/Temporal/PlainMonthDay.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainMonthDayPrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/PlainMonthDayPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainTime.d.mts +9 -0
- package/declaration/intrinsics/Temporal/PlainTime.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainTimePrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/PlainTimePrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainYearMonth.d.mts +17 -0
- package/declaration/intrinsics/Temporal/PlainYearMonth.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/PlainYearMonthPrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/PlainYearMonthPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/Temporal.d.mts +3 -0
- package/declaration/intrinsics/Temporal/Temporal.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/ZonedDateTime.d.mts +13 -0
- package/declaration/intrinsics/Temporal/ZonedDateTime.d.mts.map +1 -0
- package/declaration/intrinsics/Temporal/ZonedDateTimePrototype.d.mts +3 -0
- package/declaration/intrinsics/Temporal/ZonedDateTimePrototype.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 +196 -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/TypedArray_Uint8Array.d.mts +3 -0
- package/declaration/intrinsics/TypedArray_Uint8Array.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/WrapForValidIteratorPrototype.d.mts +3 -0
- package/declaration/intrinsics/WrapForValidIteratorPrototype.d.mts.map +1 -0
- package/declaration/intrinsics/bootstrap.d.mts +19 -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/modules.d.mts +126 -0
- package/declaration/modules.d.mts.map +1 -0
- package/declaration/parse.d.mts +35 -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 +70 -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 +76 -0
- package/declaration/parser/Lexer.d.mts.map +1 -0
- package/declaration/parser/ModuleParser.d.mts +19 -0
- package/declaration/parser/ModuleParser.d.mts.map +1 -0
- package/declaration/parser/ParseNode.d.mts +1323 -0
- package/declaration/parser/ParseNode.d.mts.map +1 -0
- package/declaration/parser/Parser.d.mts +30 -0
- package/declaration/parser/Parser.d.mts.map +1 -0
- package/declaration/parser/RegExpParser.d.mts +67 -0
- package/declaration/parser/RegExpParser.d.mts.map +1 -0
- package/declaration/parser/Scope.d.mts +114 -0
- package/declaration/parser/Scope.d.mts.map +1 -0
- package/declaration/parser/StatementParser.d.mts +56 -0
- package/declaration/parser/StatementParser.d.mts.map +1 -0
- package/declaration/parser/TemporalParser.d.mts +211 -0
- package/declaration/parser/TemporalParser.d.mts.map +1 -0
- package/declaration/parser/tokens.d.mts +31 -0
- package/declaration/parser/tokens.d.mts.map +1 -0
- package/declaration/parser/utils.d.mts +10 -0
- package/declaration/parser/utils.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 +5 -0
- package/declaration/runtime-semantics/ApplyStringOrNumericBinaryOperator.d.mts.map +1 -0
- package/declaration/runtime-semantics/ArgumentListEvaluation.d.mts +5 -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 +8 -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 +8 -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 +88 -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 +21 -0
- package/declaration/runtime-semantics/ClassFieldDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/ClassStaticBlockDefinitionEvaluation.d.mts +13 -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 +4 -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 +6 -0
- package/declaration/runtime-semantics/EqualityExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/EvaluateBody.d.mts +37 -0
- package/declaration/runtime-semantics/EvaluateBody.d.mts.map +1 -0
- package/declaration/runtime-semantics/EvaluateCall.d.mts +5 -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 +11 -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/ForDeclarationBindingInitialization.d.mts +7 -0
- package/declaration/runtime-semantics/ForDeclarationBindingInitialization.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 +5 -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 +5 -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 +11 -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 +7 -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 +7 -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 +14 -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 +5 -0
- package/declaration/runtime-semantics/MemberExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts +28 -0
- package/declaration/runtime-semantics/MethodDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/Module.d.mts +11 -0
- package/declaration/runtime-semantics/Module.d.mts.map +1 -0
- package/declaration/runtime-semantics/ModuleBody.d.mts +4 -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 +4 -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 +6 -0
- package/declaration/runtime-semantics/PropertyDefinitionEvaluation.d.mts.map +1 -0
- package/declaration/runtime-semantics/PropertyName.d.mts +5 -0
- package/declaration/runtime-semantics/PropertyName.d.mts.map +1 -0
- package/declaration/runtime-semantics/RegExp.d.mts +36 -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 +8 -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 +5 -0
- package/declaration/runtime-semantics/Script.d.mts.map +1 -0
- package/declaration/runtime-semantics/ScriptBody.d.mts +3 -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 +5 -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 +5 -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 +9 -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 +5 -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 +10 -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 +166 -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 +7 -0
- package/declaration/runtime-semantics/VariableStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/WithStatement.d.mts +10 -0
- package/declaration/runtime-semantics/WithStatement.d.mts.map +1 -0
- package/declaration/runtime-semantics/YieldExpression.d.mts +5 -0
- package/declaration/runtime-semantics/YieldExpression.d.mts.map +1 -0
- package/declaration/runtime-semantics/all.d.mts +110 -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 +6 -0
- package/declaration/static-semantics/CharacterValue.d.mts.map +1 -0
- package/declaration/static-semantics/CodePointAt.d.mts +8 -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/ContainsUsing.d.mts +4 -0
- package/declaration/static-semantics/ContainsUsing.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 +14 -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 +11 -0
- package/declaration/static-semantics/ImportEntries.d.mts.map +1 -0
- package/declaration/static-semantics/ImportEntriesForModule.d.mts +4 -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/IsAwaitUsingDeclaration.d.mts +3 -0
- package/declaration/static-semantics/IsAwaitUsingDeclaration.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/IsUsingDeclaration.d.mts +3 -0
- package/declaration/static-semantics/IsUsingDeclaration.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 +22 -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 +5 -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 +4 -0
- package/declaration/static-semantics/UTF16EncodeCodePoint.d.mts.map +1 -0
- package/declaration/static-semantics/UTF16SurrogatePairToCodePoint.d.mts +4 -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 +51 -0
- package/declaration/static-semantics/all.d.mts.map +1 -0
- package/declaration/utils/callback.d.mts +3 -0
- package/declaration/utils/callback.d.mts.map +1 -0
- package/declaration/utils/container.d.mts +54 -0
- package/declaration/utils/container.d.mts.map +1 -0
- package/declaration/utils/internal.d.mts +3 -0
- package/declaration/utils/internal.d.mts.map +1 -0
- package/declaration/utils/language.d.mts +13 -0
- package/declaration/utils/language.d.mts.map +1 -0
- package/declaration/utils/module-loader.d.mts +15 -0
- package/declaration/utils/module-loader.d.mts.map +1 -0
- package/declaration/utils/module-loaders/builtin-loader.d.mts +13 -0
- package/declaration/utils/module-loaders/builtin-loader.d.mts.map +1 -0
- package/declaration/utils/module.d.mts +15 -0
- package/declaration/utils/module.d.mts.map +1 -0
- package/declaration/utils/stack.d.mts +49 -0
- package/declaration/utils/stack.d.mts.map +1 -0
- package/declaration/value.d.mts +276 -0
- package/declaration/value.d.mts.map +1 -0
- package/lib/engine262.d.mts +1 -0
- package/lib/engine262.d.ts +1 -0
- package/lib/engine262.js +80493 -0
- package/lib/engine262.js.map +1 -0
- package/lib/engine262.mjs +79570 -0
- package/lib/engine262.mjs.map +1 -0
- package/lib/inspector/context.d.mts +39 -0
- package/lib/inspector/context.d.mts.map +1 -0
- package/lib/inspector/context.mjs +307 -0
- package/lib/inspector/context.mjs.map +1 -0
- package/lib/inspector/evaluator.d.mts +4 -0
- package/lib/inspector/evaluator.d.mts.map +1 -0
- package/lib/inspector/evaluator.mjs +16 -0
- package/lib/inspector/evaluator.mjs.map +1 -0
- package/lib/inspector/index.d.mts +17 -0
- package/lib/inspector/index.d.mts.map +1 -0
- package/lib/inspector/index.mjs +180 -0
- package/lib/inspector/index.mjs.map +1 -0
- package/lib/inspector/internal-utils.d.mts +4 -0
- package/lib/inspector/internal-utils.d.mts.map +1 -0
- package/lib/inspector/internal-utils.mjs +17 -0
- package/lib/inspector/internal-utils.mjs.map +1 -0
- package/lib/inspector/methods.d.mts +7 -0
- package/lib/inspector/methods.d.mts.map +1 -0
- package/lib/inspector/methods.mjs +368 -0
- package/lib/inspector/methods.mjs.map +1 -0
- package/lib/inspector/objects/RegExp.d.mts +4 -0
- package/lib/inspector/objects/RegExp.d.mts.map +1 -0
- package/lib/inspector/objects/RegExp.mjs +3 -0
- package/lib/inspector/objects/RegExp.mjs.map +1 -0
- package/lib/inspector/objects/arrays.d.mts +8 -0
- package/lib/inspector/objects/arrays.d.mts.map +1 -0
- package/lib/inspector/objects/arrays.mjs +72 -0
- package/lib/inspector/objects/arrays.mjs.map +1 -0
- package/lib/inspector/objects/collections.d.mts +7 -0
- package/lib/inspector/objects/collections.d.mts.map +1 -0
- package/lib/inspector/objects/collections.mjs +32 -0
- package/lib/inspector/objects/collections.mjs.map +1 -0
- package/lib/inspector/objects/dates.d.mts +12 -0
- package/lib/inspector/objects/dates.d.mts.map +1 -0
- package/lib/inspector/objects/dates.mjs +18 -0
- package/lib/inspector/objects/dates.mjs.map +1 -0
- package/lib/inspector/objects/errors.d.mts +4 -0
- package/lib/inspector/objects/errors.d.mts.map +1 -0
- package/lib/inspector/objects/errors.mjs +51 -0
- package/lib/inspector/objects/errors.mjs.map +1 -0
- package/lib/inspector/objects/function.d.mts +4 -0
- package/lib/inspector/objects/function.d.mts.map +1 -0
- package/lib/inspector/objects/function.mjs +137 -0
- package/lib/inspector/objects/function.mjs.map +1 -0
- package/lib/inspector/objects/index.d.mts +13 -0
- package/lib/inspector/objects/index.d.mts.map +1 -0
- package/lib/inspector/objects/index.mjs +84 -0
- package/lib/inspector/objects/index.mjs.map +1 -0
- package/lib/inspector/objects/modules.d.mts +4 -0
- package/lib/inspector/objects/modules.d.mts.map +1 -0
- package/lib/inspector/objects/modules.mjs +57 -0
- package/lib/inspector/objects/modules.mjs.map +1 -0
- package/lib/inspector/objects/objects.d.mts +31 -0
- package/lib/inspector/objects/objects.d.mts.map +1 -0
- package/lib/inspector/objects/objects.mjs +166 -0
- package/lib/inspector/objects/objects.mjs.map +1 -0
- package/lib/inspector/objects/primitives.d.mts +9 -0
- package/lib/inspector/objects/primitives.d.mts.map +1 -0
- package/lib/inspector/objects/primitives.mjs +105 -0
- package/lib/inspector/objects/primitives.mjs.map +1 -0
- package/lib/inspector/objects/promises.d.mts +4 -0
- package/lib/inspector/objects/promises.d.mts.map +1 -0
- package/lib/inspector/objects/promises.mjs +6 -0
- package/lib/inspector/objects/promises.mjs.map +1 -0
- package/lib/inspector/objects/proxies.d.mts +4 -0
- package/lib/inspector/objects/proxies.d.mts.map +1 -0
- package/lib/inspector/objects/proxies.mjs +12 -0
- package/lib/inspector/objects/proxies.mjs.map +1 -0
- package/lib/inspector/objects/shadow-realms.d.mts +4 -0
- package/lib/inspector/objects/shadow-realms.d.mts.map +1 -0
- package/lib/inspector/objects/shadow-realms.mjs +5 -0
- package/lib/inspector/objects/shadow-realms.mjs.map +1 -0
- package/lib/inspector/types.d.mts +223 -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 +8 -0
- package/lib/inspector/utils.d.mts.map +1 -0
- package/lib/inspector/utils.mjs +61 -0
- package/lib/inspector/utils.mjs.map +1 -0
- package/lib/inspector.d.mts +1 -0
- package/lib/inspector.d.ts +1 -0
- package/lib/inspector.js +1888 -0
- package/lib/inspector.js.map +1 -0
- package/lib/inspector.mjs +1881 -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 +312 -0
- package/lib/node/bin.mjs.map +1 -0
- package/lib/node/example.d.mts +2 -0
- package/lib/node/example.d.mts.map +1 -0
- package/lib/node/example.mjs +153 -0
- package/lib/node/example.mjs.map +1 -0
- package/lib/node/inspector.d.mts +17 -0
- package/lib/node/inspector.d.mts.map +1 -0
- package/lib/node/inspector.mjs +138 -0
- package/lib/node/inspector.mjs.map +1 -0
- package/lib/node/module.d.mts +23 -0
- package/lib/node/module.d.mts.map +1 -0
- package/lib/node/module.mjs +205 -0
- package/lib/node/module.mjs.map +1 -0
- package/lib/test262-harness.json +45 -0
- package/lib-src/inspector/context.mts +361 -0
- package/lib-src/inspector/evaluator.mts +19 -0
- package/lib-src/inspector/index.mts +209 -0
- package/lib-src/inspector/internal-utils.mts +18 -0
- package/lib-src/inspector/js_protocol.json +3288 -0
- package/lib-src/inspector/methods.mts +400 -0
- package/lib-src/inspector/objects/RegExp.mts +4 -0
- package/lib-src/inspector/objects/arrays.mts +78 -0
- package/lib-src/inspector/objects/collections.mts +37 -0
- package/lib-src/inspector/objects/dates.mts +49 -0
- package/lib-src/inspector/objects/errors.mts +58 -0
- package/lib-src/inspector/objects/function.mts +154 -0
- package/lib-src/inspector/objects/index.mts +134 -0
- package/lib-src/inspector/objects/modules.mts +60 -0
- package/lib-src/inspector/objects/objects.mts +211 -0
- package/lib-src/inspector/objects/primitives.mts +119 -0
- package/lib-src/inspector/objects/promises.mts +6 -0
- package/lib-src/inspector/objects/proxies.mts +12 -0
- package/lib-src/inspector/objects/shadow-realms.mts +6 -0
- package/lib-src/inspector/tsconfig.json +17 -0
- package/lib-src/inspector/types.mts +228 -0
- package/lib-src/inspector/utils.mts +83 -0
- package/lib-src/node/bin.mts +339 -0
- package/lib-src/node/example.mts +173 -0
- package/lib-src/node/inspector.mts +152 -0
- package/lib-src/node/module.mts +233 -0
- package/lib-src/node/tsconfig.json +21 -0
- package/package.json +147 -0
- package/src/abstract-ops/all.mts +38 -0
- package/src/abstract-ops/arguments-operations.mts +246 -0
- package/src/abstract-ops/array-objects.mts +311 -0
- package/src/abstract-ops/arraybuffer-objects.mts +361 -0
- package/src/abstract-ops/async-function-operations.mts +46 -0
- package/src/abstract-ops/async-generator-objects.mts +320 -0
- package/src/abstract-ops/data-types-and-values.mts +43 -0
- package/src/abstract-ops/dataview-objects.mts +147 -0
- package/src/abstract-ops/date-objects.mts +226 -0
- package/src/abstract-ops/disposable-operations.mts +166 -0
- package/src/abstract-ops/error-objects.mts +38 -0
- package/src/abstract-ops/execution-contexts.mts +18 -0
- package/src/abstract-ops/function-operations.mts +740 -0
- package/src/abstract-ops/generator-operations.mts +298 -0
- package/src/abstract-ops/global-object.mts +394 -0
- package/src/abstract-ops/immutable-prototype-objects.mts +21 -0
- package/src/abstract-ops/import-calls.mts +153 -0
- package/src/abstract-ops/iterator-operations.mts +409 -0
- package/src/abstract-ops/keyed-collections.mts +15 -0
- package/src/abstract-ops/math.mts +72 -0
- package/src/abstract-ops/module-namespace-exotic-objects.mts +277 -0
- package/src/abstract-ops/module-records.mts +1044 -0
- package/src/abstract-ops/notational-conventions.mts +67 -0
- package/src/abstract-ops/object-operations.mts +623 -0
- package/src/abstract-ops/objects.mts +453 -0
- package/src/abstract-ops/private-names.mts +170 -0
- package/src/abstract-ops/promise-operations.mts +444 -0
- package/src/abstract-ops/proxy-objects.mts +580 -0
- package/src/abstract-ops/realms.mts +209 -0
- package/src/abstract-ops/reference-operations.mts +211 -0
- package/src/abstract-ops/regexp-objects.mts +310 -0
- package/src/abstract-ops/shadow-realm.mts +216 -0
- package/src/abstract-ops/shared-arraybuffer.mts +8 -0
- package/src/abstract-ops/spec-types.mts +251 -0
- package/src/abstract-ops/string-objects.mts +156 -0
- package/src/abstract-ops/symbol-objects.mts +35 -0
- package/src/abstract-ops/temporal/addition.mts +221 -0
- package/src/abstract-ops/temporal/all.mts +12 -0
- package/src/abstract-ops/temporal/calendar.mts +801 -0
- package/src/abstract-ops/temporal/duration.mts +1015 -0
- package/src/abstract-ops/temporal/instant.mts +174 -0
- package/src/abstract-ops/temporal/not-implemented.mts +15 -0
- package/src/abstract-ops/temporal/now.mts +46 -0
- package/src/abstract-ops/temporal/plain-date-time.mts +242 -0
- package/src/abstract-ops/temporal/plain-date.mts +249 -0
- package/src/abstract-ops/temporal/plain-month-day.mts +86 -0
- package/src/abstract-ops/temporal/plain-time.mts +331 -0
- package/src/abstract-ops/temporal/plain-year-month.mts +195 -0
- package/src/abstract-ops/temporal/temporal.mts +837 -0
- package/src/abstract-ops/temporal/time-zone.mts +304 -0
- package/src/abstract-ops/temporal/zoned-datetime.mts +373 -0
- package/src/abstract-ops/testing-comparison.mts +376 -0
- package/src/abstract-ops/type-conversion.mts +514 -0
- package/src/abstract-ops/typedarray-objects.mts +385 -0
- package/src/abstract-ops/weak-operations.mts +20 -0
- package/src/api.mts +359 -0
- package/src/completion.mts +477 -0
- package/src/ecma402/not-implemented.mts +4 -0
- package/src/evaluator.mts +384 -0
- package/src/execution-context/Agent.mts +481 -0
- package/src/execution-context/Environment.mts +994 -0
- package/src/execution-context/ExecutionContext.mts +248 -0
- package/src/execution-context/Job.mts +64 -0
- package/src/execution-context/PrivateEnvironment.mts +41 -0
- package/src/execution-context/Realm.mts +378 -0
- package/src/execution-context/WeakReference.mts +86 -0
- package/src/execution-context/all.mts +7 -0
- package/src/host-defined/base64.mts +58 -0
- package/src/host-defined/debugger-util.mts +15 -0
- package/src/host-defined/decimal.mts +117 -0
- package/src/host-defined/devtoolsEval.mts +150 -0
- package/src/host-defined/engine.mts +283 -0
- package/src/host-defined/error-messages.mts +637 -0
- package/src/host-defined/event-loop.mts +311 -0
- package/src/host-defined/ieee754.mts +212 -0
- package/src/host-defined/inspect.mts +250 -0
- package/src/host-defined/job-queue.mts +191 -0
- package/src/host-defined/sort.mts +860 -0
- package/src/host-defined/test262-intrinsics.mts +167 -0
- package/src/index.mts +66 -0
- package/src/intrinsics/AbstractModuleSource.mts +47 -0
- package/src/intrinsics/AggregateError.mts +66 -0
- package/src/intrinsics/AggregateErrorPrototype.mts +12 -0
- package/src/intrinsics/Array.mts +302 -0
- package/src/intrinsics/ArrayBuffer.mts +48 -0
- package/src/intrinsics/ArrayBufferPrototype.mts +189 -0
- package/src/intrinsics/ArrayIteratorPrototype.mts +23 -0
- package/src/intrinsics/ArrayPrototype.mts +688 -0
- package/src/intrinsics/ArrayPrototypeShared.mts +572 -0
- package/src/intrinsics/AsyncDisposableStack.mts +36 -0
- package/src/intrinsics/AsyncDisposableStackPrototype.mts +103 -0
- package/src/intrinsics/AsyncFromSyncIteratorPrototype.mts +165 -0
- package/src/intrinsics/AsyncFunction.mts +33 -0
- package/src/intrinsics/AsyncFunctionPrototype.mts +8 -0
- package/src/intrinsics/AsyncGeneratorFunction.mts +39 -0
- package/src/intrinsics/AsyncGeneratorFunctionPrototype.mts +19 -0
- package/src/intrinsics/AsyncGeneratorFunctionPrototypePrototype.mts +148 -0
- package/src/intrinsics/AsyncIteratorPrototype.mts +56 -0
- package/src/intrinsics/BigInt.mts +69 -0
- package/src/intrinsics/BigIntPrototype.mts +64 -0
- package/src/intrinsics/Boolean.mts +47 -0
- package/src/intrinsics/BooleanPrototype.mts +56 -0
- package/src/intrinsics/DataView.mts +81 -0
- package/src/intrinsics/DataViewPrototype.mts +284 -0
- package/src/intrinsics/Date.mts +243 -0
- package/src/intrinsics/DatePrototype.mts +771 -0
- package/src/intrinsics/DisposableStack.mts +41 -0
- package/src/intrinsics/DisposableStackPrototype.mts +103 -0
- package/src/intrinsics/Error.mts +106 -0
- package/src/intrinsics/ErrorPrototype.mts +100 -0
- package/src/intrinsics/FinalizationRegistry.mts +69 -0
- package/src/intrinsics/FinalizationRegistryPrototype.mts +110 -0
- package/src/intrinsics/ForInIteratorPrototype.mts +120 -0
- package/src/intrinsics/Function.mts +24 -0
- package/src/intrinsics/FunctionPrototype.mts +232 -0
- package/src/intrinsics/GeneratorFunction.mts +38 -0
- package/src/intrinsics/GeneratorFunctionPrototype.mts +22 -0
- package/src/intrinsics/GeneratorFunctionPrototypePrototype.mts +59 -0
- package/src/intrinsics/Iterator.mts +302 -0
- package/src/intrinsics/IteratorHelperPrototype.mts +61 -0
- package/src/intrinsics/IteratorPrototype.mts +700 -0
- package/src/intrinsics/JSON.mts +740 -0
- package/src/intrinsics/Map.mts +129 -0
- package/src/intrinsics/MapIteratorPrototype.mts +81 -0
- package/src/intrinsics/MapPrototype.mts +295 -0
- package/src/intrinsics/Math.mts +605 -0
- package/src/intrinsics/NativeError.mts +86 -0
- package/src/intrinsics/Number.mts +135 -0
- package/src/intrinsics/NumberPrototype.mts +116 -0
- package/src/intrinsics/Object.mts +466 -0
- package/src/intrinsics/ObjectPrototype.mts +333 -0
- package/src/intrinsics/Promise.mts +807 -0
- package/src/intrinsics/PromisePrototype.mts +126 -0
- package/src/intrinsics/Proxy.mts +101 -0
- package/src/intrinsics/Reflect.mts +211 -0
- package/src/intrinsics/RegExp.mts +166 -0
- package/src/intrinsics/RegExpPrototype.mts +762 -0
- package/src/intrinsics/RegExpStringIteratorPrototype.mts +73 -0
- package/src/intrinsics/Set.mts +75 -0
- package/src/intrinsics/SetIteratorPrototype.mts +78 -0
- package/src/intrinsics/SetPrototype.mts +684 -0
- package/src/intrinsics/ShadowRealm.mts +71 -0
- package/src/intrinsics/ShadowRealmPrototype.mts +47 -0
- package/src/intrinsics/String.mts +138 -0
- package/src/intrinsics/StringIteratorPrototype.mts +23 -0
- package/src/intrinsics/StringPrototype.mts +813 -0
- package/src/intrinsics/SuppressedError.mts +53 -0
- package/src/intrinsics/SuppressedErrorPrototype.mts +11 -0
- package/src/intrinsics/Symbol.mts +99 -0
- package/src/intrinsics/SymbolPrototype.mts +81 -0
- package/src/intrinsics/Temporal/Duration.mts +140 -0
- package/src/intrinsics/Temporal/DurationPrototype.mts +425 -0
- package/src/intrinsics/Temporal/Instant.mts +90 -0
- package/src/intrinsics/Temporal/InstantPrototype.mts +211 -0
- package/src/intrinsics/Temporal/Now.mts +66 -0
- package/src/intrinsics/Temporal/PlainDate.mts +79 -0
- package/src/intrinsics/Temporal/PlainDatePrototype.mts +331 -0
- package/src/intrinsics/Temporal/PlainDateTime.mts +113 -0
- package/src/intrinsics/Temporal/PlainDateTimePrototype.mts +418 -0
- package/src/intrinsics/Temporal/PlainMonthDay.mts +81 -0
- package/src/intrinsics/Temporal/PlainMonthDayPrototype.mts +139 -0
- package/src/intrinsics/Temporal/PlainTime.mts +74 -0
- package/src/intrinsics/Temporal/PlainTimePrototype.mts +224 -0
- package/src/intrinsics/Temporal/PlainYearMonth.mts +96 -0
- package/src/intrinsics/Temporal/PlainYearMonthPrototype.mts +223 -0
- package/src/intrinsics/Temporal/Temporal.mts +30 -0
- package/src/intrinsics/Temporal/ZonedDateTime.mts +103 -0
- package/src/intrinsics/Temporal/ZonedDateTimePrototype.mts +601 -0
- package/src/intrinsics/ThrowTypeError.mts +21 -0
- package/src/intrinsics/TypedArray.mts +585 -0
- package/src/intrinsics/TypedArrayConstructors.mts +85 -0
- package/src/intrinsics/TypedArrayPrototype.mts +600 -0
- package/src/intrinsics/TypedArrayPrototypes.mts +17 -0
- package/src/intrinsics/TypedArray_Uint8Array.mts +438 -0
- package/src/intrinsics/URIHandling.mts +277 -0
- package/src/intrinsics/WeakMap.mts +56 -0
- package/src/intrinsics/WeakMapPrototype.mts +203 -0
- package/src/intrinsics/WeakRef.mts +43 -0
- package/src/intrinsics/WeakRefPrototype.mts +23 -0
- package/src/intrinsics/WeakSet.mts +66 -0
- package/src/intrinsics/WeakSetPrototype.mts +100 -0
- package/src/intrinsics/WrapForValidIteratorPrototype.mts +65 -0
- package/src/intrinsics/bootstrap.mts +153 -0
- package/src/intrinsics/eval.mts +16 -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 +85 -0
- package/src/modules.mts +1088 -0
- package/src/parse.mts +267 -0
- package/src/parser/BaseParser.mts +36 -0
- package/src/parser/ExpressionParser.mts +1697 -0
- package/src/parser/FunctionParser.mts +398 -0
- package/src/parser/IdentifierParser.mts +149 -0
- package/src/parser/LanguageParser.mts +140 -0
- package/src/parser/Lexer.mts +1190 -0
- package/src/parser/ModuleParser.mts +429 -0
- package/src/parser/ParseNode.mts +2923 -0
- package/src/parser/Parser.mts +88 -0
- package/src/parser/RegExpParser.mts +1428 -0
- package/src/parser/Scope.mts +571 -0
- package/src/parser/StatementParser.mts +1160 -0
- package/src/parser/TemporalParser.mts +1245 -0
- package/src/parser/tokens.mts +210 -0
- package/src/parser/unicode.d.ts +20 -0
- package/src/parser/utils.mts +114 -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 +99 -0
- package/src/runtime-semantics/ArrowFunction.mts +8 -0
- package/src/runtime-semantics/AssignmentExpression.mts +284 -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 +16 -0
- package/src/runtime-semantics/BindingInitialization.mts +91 -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 +57 -0
- package/src/runtime-semantics/ClassDeclaration.mts +41 -0
- package/src/runtime-semantics/ClassDefinitionEvaluation.mts +811 -0
- package/src/runtime-semantics/ClassExpression.mts +24 -0
- package/src/runtime-semantics/ClassFieldDefinitionEvaluation.mts +189 -0
- package/src/runtime-semantics/ClassStaticBlockDefinitionEvaluation.mts +48 -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 +161 -0
- package/src/runtime-semantics/DebuggerStatement.mts +20 -0
- package/src/runtime-semantics/DefineMethod.mts +42 -0
- package/src/runtime-semantics/DestructuringAssignmentEvaluation.mts +306 -0
- package/src/runtime-semantics/EmptyStatement.mts +9 -0
- package/src/runtime-semantics/EqualityExpression.mts +60 -0
- package/src/runtime-semantics/EvaluateBody.mts +211 -0
- package/src/runtime-semantics/EvaluateCall.mts +67 -0
- package/src/runtime-semantics/EvaluatePropertyAccess.mts +39 -0
- package/src/runtime-semantics/EvaluateStringOrNumericBinaryExpression.mts +19 -0
- package/src/runtime-semantics/ExponentiationExpression.mts +11 -0
- package/src/runtime-semantics/ExportDeclaration.mts +100 -0
- package/src/runtime-semantics/ExpressionStatement.mts +14 -0
- package/src/runtime-semantics/ForDeclarationBindingInitialization.mts +21 -0
- package/src/runtime-semantics/FunctionDeclaration.mts +10 -0
- package/src/runtime-semantics/FunctionDeclarationInstantiation.mts +273 -0
- package/src/runtime-semantics/FunctionExpression.mts +10 -0
- package/src/runtime-semantics/FunctionStatementList.mts +17 -0
- package/src/runtime-semantics/GeneratorExpression.mts +11 -0
- package/src/runtime-semantics/GetSubstitution.mts +90 -0
- package/src/runtime-semantics/GlobalDeclarationInstantiation.mts +140 -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 +137 -0
- package/src/runtime-semantics/ImportDeclaration.mts +9 -0
- package/src/runtime-semantics/ImportMeta.mts +45 -0
- package/src/runtime-semantics/InstantiateArrowFunctionExpression.mts +36 -0
- package/src/runtime-semantics/InstantiateAsyncArrowFunctionExpression.mts +38 -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 +212 -0
- package/src/runtime-semantics/KeyedBindingInitialization.mts +61 -0
- package/src/runtime-semantics/LabelledEvaluation.mts +749 -0
- package/src/runtime-semantics/LabelledStatement.mts +11 -0
- package/src/runtime-semantics/LexicalDeclaration.mts +114 -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 +71 -0
- package/src/runtime-semantics/MethodDefinitionEvaluation.mts +364 -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 +97 -0
- package/src/runtime-semantics/NewExpression.mts +51 -0
- package/src/runtime-semantics/NewTarget.mts +8 -0
- package/src/runtime-semantics/NumberToBigInt.mts +16 -0
- package/src/runtime-semantics/ObjectLiteral.mts +25 -0
- package/src/runtime-semantics/OptionalExpression.mts +129 -0
- package/src/runtime-semantics/ParenthesizedExpression.mts +8 -0
- package/src/runtime-semantics/PropertyBindingInitialization.mts +45 -0
- package/src/runtime-semantics/PropertyDefinitionEvaluation.mts +132 -0
- package/src/runtime-semantics/PropertyName.mts +62 -0
- package/src/runtime-semantics/RegExp.mts +1344 -0
- package/src/runtime-semantics/RegularExpressionLiteral.mts +16 -0
- package/src/runtime-semantics/RelationalExpression.mts +150 -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 +33 -0
- package/src/runtime-semantics/StringIndexOf.mts +43 -0
- package/src/runtime-semantics/StringPad.mts +34 -0
- package/src/runtime-semantics/SuperCall.mts +65 -0
- package/src/runtime-semantics/SuperProperty.mts +58 -0
- package/src/runtime-semantics/SwitchStatement.mts +214 -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 +23 -0
- package/src/runtime-semantics/TrimString.mts +19 -0
- package/src/runtime-semantics/TryStatement.mts +119 -0
- package/src/runtime-semantics/UnaryExpression.mts +218 -0
- package/src/runtime-semantics/Unicode.mts +268 -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 +109 -0
- package/src/static-semantics/BodyText.mts +7 -0
- package/src/static-semantics/BoundNames.mts +108 -0
- package/src/static-semantics/CharacterValue.mts +112 -0
- package/src/static-semantics/CodePointAt.mts +53 -0
- package/src/static-semantics/CodePointsToString.mts +15 -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/ContainsUsing.mts +15 -0
- package/src/static-semantics/DeclarationPart.mts +5 -0
- package/src/static-semantics/ExpectedArgumentCount.mts +26 -0
- package/src/static-semantics/ExportEntries.mts +183 -0
- package/src/static-semantics/ExportEntriesForModule.mts +79 -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 +49 -0
- package/src/static-semantics/ImportEntriesForModule.mts +110 -0
- package/src/static-semantics/ImportedLocalNames.mts +14 -0
- package/src/static-semantics/IsAnonymousFunctionDefinition.mts +18 -0
- package/src/static-semantics/IsAwaitUsingDeclaration.mts +12 -0
- package/src/static-semantics/IsComputedPropertyKey.mts +7 -0
- package/src/static-semantics/IsConstantDeclaration.mts +11 -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/IsUsingDeclaration.mts +12 -0
- package/src/static-semantics/LexicallyDeclaredNames.mts +26 -0
- package/src/static-semantics/LexicallyScopedDeclarations.mts +84 -0
- package/src/static-semantics/ModuleRequests.mts +185 -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 +23 -0
- package/src/static-semantics/StringToCodePoints.mts +22 -0
- package/src/static-semantics/StringValue.mts +19 -0
- package/src/static-semantics/TemplateStrings.mts +109 -0
- package/src/static-semantics/TopLevelLexicallyDeclaredNames.mts +23 -0
- package/src/static-semantics/TopLevelLexicallyScopedDeclarations.mts +27 -0
- package/src/static-semantics/TopLevelVarDeclaredNames.mts +28 -0
- package/src/static-semantics/TopLevelVarScopedDeclarations.mts +36 -0
- package/src/static-semantics/UTF16EncodeCodePoint.mts +19 -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 +50 -0
- package/src/tsconfig.json +12 -0
- package/src/unicode/.gitkeep +0 -0
- package/src/unicode/CodePointProperties.json +1 -0
- package/src/unicode/PropertyValueAliases.json +434 -0
- package/src/unicode/SequenceProperties.json +1 -0
- package/src/utils/callback.mts +7 -0
- package/src/utils/container.mts +284 -0
- package/src/utils/internal.mts +2 -0
- package/src/utils/language.mts +35 -0
- package/src/utils/module-loader.mts +73 -0
- package/src/utils/module-loaders/builtin-loader.mts +84 -0
- package/src/utils/module.mts +75 -0
- package/src/utils/stack.mts +324 -0
- package/src/value.mts +996 -0
package/src/modules.mts
ADDED
|
@@ -0,0 +1,1088 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Value, JSStringValue, ObjectValue, UndefinedValue, BooleanValue,
|
|
3
|
+
NullValue,
|
|
4
|
+
} from './value.mts';
|
|
5
|
+
import { ExecutionContext } from './execution-context/ExecutionContext.mts';
|
|
6
|
+
import {
|
|
7
|
+
VarScopedDeclarations,
|
|
8
|
+
LexicallyScopedDeclarations,
|
|
9
|
+
BoundNames,
|
|
10
|
+
IsConstantDeclaration,
|
|
11
|
+
type ImportEntry,
|
|
12
|
+
type ExportEntry,
|
|
13
|
+
} from './static-semantics/all.mts';
|
|
14
|
+
import { InstantiateFunctionObject } from './runtime-semantics/all.mts';
|
|
15
|
+
import {
|
|
16
|
+
Completion,
|
|
17
|
+
NormalCompletion,
|
|
18
|
+
AbruptCompletion,
|
|
19
|
+
EnsureCompletion,
|
|
20
|
+
Q, X, ThrowCompletion,
|
|
21
|
+
IfAbruptRejectPromise,
|
|
22
|
+
} from './completion.mts';
|
|
23
|
+
import { OutOfRange, type Mutable } from './utils/language.mts';
|
|
24
|
+
import { JSStringSet } from './utils/container.mts';
|
|
25
|
+
import {
|
|
26
|
+
Evaluate, type Evaluator, type PlainEvaluator, type ValueEvaluator,
|
|
27
|
+
} from './evaluator.mts';
|
|
28
|
+
import type { ParseNode } from './parser/ParseNode.mts';
|
|
29
|
+
import {
|
|
30
|
+
surroundingAgent, type GCMarker,
|
|
31
|
+
type ImportAttributeRecord,
|
|
32
|
+
type ImportedNamesValue,
|
|
33
|
+
type ModuleRequestRecord,
|
|
34
|
+
type PlainCompletion, type PromiseObject, ModuleEnvironmentRecord,
|
|
35
|
+
DisposeResources,
|
|
36
|
+
} from '#self';
|
|
37
|
+
import {
|
|
38
|
+
Assert,
|
|
39
|
+
Call,
|
|
40
|
+
NewPromiseCapability,
|
|
41
|
+
GetImportedModule,
|
|
42
|
+
GetModuleNamespace,
|
|
43
|
+
InnerModuleEvaluation,
|
|
44
|
+
InnerModuleLinking,
|
|
45
|
+
InnerModuleLoading,
|
|
46
|
+
MergeImportedNames,
|
|
47
|
+
ModuleRequestsKeyEqual,
|
|
48
|
+
SafePerformPromiseAll,
|
|
49
|
+
SameValue,
|
|
50
|
+
AsyncBlockStart,
|
|
51
|
+
PromiseCapabilityRecord,
|
|
52
|
+
GraphLoadingState,
|
|
53
|
+
Realm,
|
|
54
|
+
Throw,
|
|
55
|
+
isEvaluator,
|
|
56
|
+
} from '#self';
|
|
57
|
+
|
|
58
|
+
// https://tc39.es/ecma262/#loadedmodulerequest-record
|
|
59
|
+
export interface LoadedModuleRequestRecord {
|
|
60
|
+
readonly Specifier: string;
|
|
61
|
+
readonly Attributes: readonly ImportAttributeRecord[];
|
|
62
|
+
readonly Module: AbstractModuleRecord
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// #resolvedbinding-record
|
|
66
|
+
export class ResolvedBindingRecord {
|
|
67
|
+
readonly Module: AbstractModuleRecord;
|
|
68
|
+
|
|
69
|
+
readonly BindingName: 'namespace' | 'deferred-namespace' | 'source' | JSStringValue;
|
|
70
|
+
|
|
71
|
+
constructor({ Module, BindingName }: Pick<ResolvedBindingRecord, 'BindingName' | 'Module'>) {
|
|
72
|
+
Assert(Module instanceof AbstractModuleRecord);
|
|
73
|
+
Assert(BindingName === 'namespace' || BindingName === 'deferred-namespace' || BindingName === 'source' || BindingName instanceof JSStringValue);
|
|
74
|
+
this.Module = Module;
|
|
75
|
+
this.BindingName = BindingName;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
mark(m: GCMarker) {
|
|
79
|
+
m(this.Module);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type ModuleRecordHostDefinedPublic = unknown;
|
|
84
|
+
export type ModuleRecordHostDefined = {
|
|
85
|
+
public?: ModuleRecordHostDefinedPublic;
|
|
86
|
+
specifier?: string | undefined;
|
|
87
|
+
readonly SourceTextModuleRecord?: typeof SourceTextModuleRecord;
|
|
88
|
+
scriptId?: string;
|
|
89
|
+
readonly doNotTrackScriptId?: boolean;
|
|
90
|
+
};
|
|
91
|
+
export interface AbstractModuleInit {
|
|
92
|
+
readonly Realm: AbstractModuleRecord['Realm'];
|
|
93
|
+
readonly Environment: AbstractModuleRecord['Environment'];
|
|
94
|
+
readonly HostDefined: AbstractModuleRecord['HostDefined'];
|
|
95
|
+
// change to non optional after proposal merged
|
|
96
|
+
readonly ModuleSource?: AbstractModuleRecord['ModuleSource'];
|
|
97
|
+
readonly Namespace: AbstractModuleRecord['Namespace'];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
interface ResolveSetItem {
|
|
101
|
+
readonly Module: AbstractModuleRecord;
|
|
102
|
+
readonly ExportName: JSStringValue;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** https://tc39.es/proposal-deferred-reexports/#sec-ResolveSetContains */
|
|
106
|
+
function ResolveSetContains(
|
|
107
|
+
resolveSet: readonly (ResolveSetItem | AbstractModuleRecord)[],
|
|
108
|
+
module: AbstractModuleRecord,
|
|
109
|
+
exportName: JSStringValue,
|
|
110
|
+
): boolean {
|
|
111
|
+
for (const r of resolveSet) {
|
|
112
|
+
if (r instanceof AbstractModuleRecord && r === module) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
if (!(r instanceof AbstractModuleRecord) && r.Module === module && SameValue(r.ExportName, exportName)) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function importedNamesContains(
|
|
123
|
+
importedNames: Exclude<ImportedNamesValue, 'all'>,
|
|
124
|
+
exportName: JSStringValue | NullValue,
|
|
125
|
+
): boolean {
|
|
126
|
+
if (importedNames === 'all-but-default') {
|
|
127
|
+
return exportName instanceof JSStringValue && exportName.stringValue() !== 'default';
|
|
128
|
+
}
|
|
129
|
+
return exportName instanceof JSStringValue && importedNames.includes(exportName.stringValue());
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** https://tc39.es/ecma262/#sec-abstract-module-records */
|
|
133
|
+
export abstract class AbstractModuleRecord {
|
|
134
|
+
abstract LoadRequestedModules(importedNames?: ImportedNamesValue, hostDefined?: ModuleRecordHostDefined): PromiseObject;
|
|
135
|
+
|
|
136
|
+
abstract GetExportedNames(exportStarSet?: AbstractModuleRecord[]): readonly JSStringValue[];
|
|
137
|
+
|
|
138
|
+
abstract ResolveExport(exportName: JSStringValue, resolveSet?: ResolveSetItem[], deferNamespaceExportSet?: AbstractModuleRecord[]): 'ambiguous' | ResolvedBindingRecord | null;
|
|
139
|
+
|
|
140
|
+
abstract Link(importedNames?: ImportedNamesValue): PlainCompletion<void>;
|
|
141
|
+
|
|
142
|
+
abstract Evaluate(importedNames?: ImportedNamesValue): Evaluator<PromiseObject>;
|
|
143
|
+
|
|
144
|
+
/** https://tc39.es/proposal-deferred-reexports/#abstract-getoptionalindirectexportsmodulerequests */
|
|
145
|
+
GetOptionalIndirectExportsModuleRequests(_importedNames: ImportedNamesValue = 'all'): readonly ModuleRequestRecord[] {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// https://github.com/tc39/ecma262/pull/3492/#abstract-get-module-source-kind
|
|
150
|
+
GetModuleSourceKind(): string {
|
|
151
|
+
// For Module Records that do not have a source representation (currently all ECMA-262-defined Module Records), GetModuleSourceKind() is never called.
|
|
152
|
+
throw new Error('GetModuleSourceKind must be implemented by module records that have a ModuleSource');
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
readonly Realm: Realm;
|
|
156
|
+
|
|
157
|
+
readonly Environment: ModuleEnvironmentRecord | undefined;
|
|
158
|
+
|
|
159
|
+
readonly Namespace: ObjectValue | undefined = undefined;
|
|
160
|
+
|
|
161
|
+
readonly DeferredNamespace: ObjectValue | undefined = undefined;
|
|
162
|
+
|
|
163
|
+
readonly ModuleSource: ObjectValue | undefined = undefined;
|
|
164
|
+
|
|
165
|
+
readonly HostDefined: ModuleRecordHostDefined | undefined;
|
|
166
|
+
|
|
167
|
+
constructor(init: AbstractModuleInit) {
|
|
168
|
+
this.Realm = init.Realm;
|
|
169
|
+
this.Environment = init.Environment;
|
|
170
|
+
this.ModuleSource = init.ModuleSource;
|
|
171
|
+
this.HostDefined = init.HostDefined;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
mark(m: GCMarker) {
|
|
175
|
+
m(this.Realm);
|
|
176
|
+
m(this.Environment);
|
|
177
|
+
m(this.Namespace);
|
|
178
|
+
m(this.DeferredNamespace);
|
|
179
|
+
m(this.ModuleSource);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export { AbstractModuleRecord as ModuleRecord };
|
|
184
|
+
|
|
185
|
+
export type CyclicModuleRecordInit = AbstractModuleInit & Readonly<Pick<CyclicModuleRecord, 'Status' | 'EvaluationError' | 'DFSAncestorIndex' | 'RequestedModules' | 'LoadedModules' | 'CycleRoot' | 'HasTLA' | 'AsyncEvaluationOrder' | 'TopLevelCapability' | 'AsyncParentModules' | 'PendingAsyncDependencies'>>;
|
|
186
|
+
export type CyclicModuleRecordStatus = 'new' | 'unlinked' | 'linking' | 'linked' | 'evaluating' | 'evaluating-async' | 'evaluated';
|
|
187
|
+
/** https://tc39.es/ecma262/#sec-cyclic-module-records */
|
|
188
|
+
export abstract class CyclicModuleRecord extends AbstractModuleRecord {
|
|
189
|
+
Status: CyclicModuleRecordStatus;
|
|
190
|
+
|
|
191
|
+
EvaluationError: ThrowCompletion | undefined;
|
|
192
|
+
|
|
193
|
+
DFSAncestorIndex: number | undefined;
|
|
194
|
+
|
|
195
|
+
readonly RequestedModules: readonly ModuleRequestRecord[];
|
|
196
|
+
|
|
197
|
+
readonly LoadedModules: LoadedModuleRequestRecord[];
|
|
198
|
+
|
|
199
|
+
readonly HasTLA: BooleanValue;
|
|
200
|
+
|
|
201
|
+
AsyncEvaluationOrder: 'unset' | number | 'done';
|
|
202
|
+
|
|
203
|
+
AsyncParentModules: CyclicModuleRecord[];
|
|
204
|
+
|
|
205
|
+
CycleRoot: CyclicModuleRecord | undefined;
|
|
206
|
+
|
|
207
|
+
TopLevelCapability: PromiseCapabilityRecord | undefined;
|
|
208
|
+
|
|
209
|
+
PendingAsyncDependencies: number | undefined;
|
|
210
|
+
|
|
211
|
+
constructor(init: CyclicModuleRecordInit) {
|
|
212
|
+
super(init);
|
|
213
|
+
this.Status = init.Status;
|
|
214
|
+
this.EvaluationError = init.EvaluationError;
|
|
215
|
+
this.DFSAncestorIndex = init.DFSAncestorIndex;
|
|
216
|
+
this.RequestedModules = init.RequestedModules;
|
|
217
|
+
this.LoadedModules = init.LoadedModules;
|
|
218
|
+
this.CycleRoot = init.CycleRoot;
|
|
219
|
+
this.HasTLA = init.HasTLA;
|
|
220
|
+
this.AsyncEvaluationOrder = init.AsyncEvaluationOrder;
|
|
221
|
+
this.TopLevelCapability = init.TopLevelCapability;
|
|
222
|
+
this.AsyncParentModules = init.AsyncParentModules;
|
|
223
|
+
this.PendingAsyncDependencies = init.PendingAsyncDependencies;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
abstract ExecuteModule(capability?: PromiseCapabilityRecord): ValueEvaluator;
|
|
227
|
+
|
|
228
|
+
/** https://tc39.es/ecma262/#sec-LoadRequestedModules */
|
|
229
|
+
LoadRequestedModules(importedNames: ImportedNamesValue = 'all', hostDefined?: ModuleRecordHostDefined) {
|
|
230
|
+
const module = this;
|
|
231
|
+
// 1. If importedNames is not present, set importedNames to ~all~.
|
|
232
|
+
// 2. If hostDefined is not present, set hostDefined to empty.
|
|
233
|
+
// 3. Let pc be ! NewPromiseCapability(%Promise%).
|
|
234
|
+
const pc = X(NewPromiseCapability(surroundingAgent.intrinsic('%Promise%')));
|
|
235
|
+
// 4. Let state be the GraphLoadingState Record { [[IsLoading]]: true, [[PendingModulesCount]]: 1, [[Visited]]: « », [[PromiseCapability]]: pc, [[HostDefined]]: hostDefined }.
|
|
236
|
+
const state = new GraphLoadingState({
|
|
237
|
+
PromiseCapability: pc,
|
|
238
|
+
HostDefined: hostDefined,
|
|
239
|
+
});
|
|
240
|
+
// 5. Perform InnerModuleLoading(state, module, importedNames).
|
|
241
|
+
InnerModuleLoading(state, module, importedNames, 'recursive-load');
|
|
242
|
+
// 6. Return pc.[[Promise]].
|
|
243
|
+
return pc.Promise;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/** https://tc39.es/ecma262/#sec-moduledeclarationlinking */
|
|
247
|
+
Link(importedNames: ImportedNamesValue = 'all'): PlainCompletion<void> {
|
|
248
|
+
const module = this;
|
|
249
|
+
// 1. Assert: module.[[Status]] is one of unlinked, linked, evaluating-async, or evaluated.
|
|
250
|
+
Assert(module.Status === 'unlinked' || module.Status === 'linked' || module.Status === 'evaluating-async' || module.Status === 'evaluated');
|
|
251
|
+
// 2. If importedNames is not present, set importedNames to ~all~.
|
|
252
|
+
// (handled via the default parameter above)
|
|
253
|
+
// 3. Let stack be a new empty List.
|
|
254
|
+
const stack: CyclicModuleRecord[] = [];
|
|
255
|
+
// 4. Let result be Completion(InnerModuleLinking(module, stack, 0)).
|
|
256
|
+
const result = InnerModuleLinking(module, stack, 0);
|
|
257
|
+
// 5. If result is an abrupt completion, then
|
|
258
|
+
if (result instanceof AbruptCompletion) {
|
|
259
|
+
// a. For each Cyclic Module Record m of stack, do
|
|
260
|
+
for (const m of stack) {
|
|
261
|
+
// i. Assert: m.[[Status]] is linking.
|
|
262
|
+
Assert(m.Status === 'linking');
|
|
263
|
+
// ii. Set m.[[Status]] to unlinked.
|
|
264
|
+
m.Status = 'unlinked';
|
|
265
|
+
}
|
|
266
|
+
// b. Assert: module.[[Status]] is unlinked.
|
|
267
|
+
Assert(module.Status === 'unlinked');
|
|
268
|
+
// c. Return ? result.
|
|
269
|
+
return Q(result);
|
|
270
|
+
}
|
|
271
|
+
// 6. Assert: module.[[Status]] is one of linked, evaluating-async, or evaluated.
|
|
272
|
+
Assert(module.Status === 'linked' || module.Status === 'evaluating-async' || module.Status === 'evaluated');
|
|
273
|
+
// 7. Assert: stack is empty.
|
|
274
|
+
Assert(stack.length === 0);
|
|
275
|
+
// 8. Let optionalIndirectRequests be module.GetOptionalIndirectExportsModuleRequests(importedNames).
|
|
276
|
+
const optionalIndirectRequests = module.GetOptionalIndirectExportsModuleRequests(importedNames);
|
|
277
|
+
// 9. For each ModuleRequest Record request of optionalIndirectRequests, do
|
|
278
|
+
for (const request of optionalIndirectRequests) {
|
|
279
|
+
// a. Let requiredModule be GetImportedModule(module, request).
|
|
280
|
+
const requiredModule = GetImportedModule(module, request);
|
|
281
|
+
// b. Assert: requiredModule.[[Status]] is one of unlinked, linked, evaluating-async, or evaluated.
|
|
282
|
+
Assert(
|
|
283
|
+
!(requiredModule instanceof CyclicModuleRecord)
|
|
284
|
+
|| requiredModule.Status === 'unlinked' || requiredModule.Status === 'linked'
|
|
285
|
+
|| requiredModule.Status === 'evaluating-async' || requiredModule.Status === 'evaluated',
|
|
286
|
+
);
|
|
287
|
+
// c. If requiredModule.[[Status]] is unlinked, perform ? requiredModule.Link(request.[[ImportedNames]]).
|
|
288
|
+
if (requiredModule instanceof CyclicModuleRecord && requiredModule.Status === 'unlinked') {
|
|
289
|
+
Q(requiredModule.Link(request.ImportedNames));
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
// 10. Return unused.
|
|
293
|
+
return NormalCompletion(undefined);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/** https://tc39.es/ecma262/#sec-moduleevaluation */
|
|
297
|
+
* Evaluate(importedNames: ImportedNamesValue = []): Evaluator<PromiseObject> {
|
|
298
|
+
let module: CyclicModuleRecord = this;
|
|
299
|
+
|
|
300
|
+
// 1. Assert: None of module or any of its recursive dependencies have [[Status]] set to evaluating, linking, unlinked, or new.
|
|
301
|
+
Assert((function getModules(module: AbstractModuleRecord, list: CyclicModuleRecord[]) {
|
|
302
|
+
if (!(module instanceof CyclicModuleRecord) || list.includes(module)) {
|
|
303
|
+
return list;
|
|
304
|
+
}
|
|
305
|
+
list.push(module);
|
|
306
|
+
for (const r of module.RequestedModules) {
|
|
307
|
+
getModules(GetImportedModule(module, r), list);
|
|
308
|
+
}
|
|
309
|
+
return list;
|
|
310
|
+
}(this, [])).every((m) => m.Status !== 'evaluating' && m.Status !== 'linking' && m.Status !== 'unlinked' && m.Status !== 'new'));
|
|
311
|
+
// 2. Assert: module.[[Status]] is one of linked, evaluating-async, or evaluated.
|
|
312
|
+
Assert(module.Status === 'linked' || module.Status === 'evaluating-async' || module.Status === 'evaluated');
|
|
313
|
+
// 3. If importedNames is not present, set importedNames to « ».
|
|
314
|
+
// 4. If module.[[Status]] is either evaluating-async or evaluated, then
|
|
315
|
+
if (module.Status === 'evaluating-async' || module.Status === 'evaluated') {
|
|
316
|
+
// SPEC BUG: deferred-reexports deletes this CycleRoot redirection, even though
|
|
317
|
+
// a subsequent evaluation must observe the CycleRoot's EvaluationError.
|
|
318
|
+
// a. Assert: module.[[CycleRoot]] is not empty.
|
|
319
|
+
Assert(module.CycleRoot !== undefined);
|
|
320
|
+
// b. Set module to module.[[CycleRoot]].
|
|
321
|
+
module = module.CycleRoot;
|
|
322
|
+
}
|
|
323
|
+
let topLevelPromise: PromiseObject;
|
|
324
|
+
// 5. If module.[[TopLevelCapability]] is not empty, then
|
|
325
|
+
if (module.TopLevelCapability !== undefined) {
|
|
326
|
+
// a. Let topLevelPromise be module.[[TopLevelCapability]].[[Promise]].
|
|
327
|
+
topLevelPromise = module.TopLevelCapability.Promise;
|
|
328
|
+
} else { // 6. Else,
|
|
329
|
+
// a. Assert: module.[[CycleRoot]] and module.[[TopLevelCapability]] are empty.
|
|
330
|
+
// b. Let stack be a new empty List.
|
|
331
|
+
const stack: CyclicModuleRecord[] = [];
|
|
332
|
+
// c. Let capability be ! NewPromiseCapability(%Promise%).
|
|
333
|
+
const capability = X(NewPromiseCapability(surroundingAgent.intrinsic('%Promise%')));
|
|
334
|
+
// d. Set module.[[TopLevelCapability]] to capability.
|
|
335
|
+
module.TopLevelCapability = capability;
|
|
336
|
+
// e. Let result be Completion(InnerModuleEvaluation(module, stack, 0)).
|
|
337
|
+
const result = yield* InnerModuleEvaluation(module, stack, 0);
|
|
338
|
+
// f. If result is an abrupt completion, then
|
|
339
|
+
if (result instanceof AbruptCompletion) {
|
|
340
|
+
// i. For each Cyclic Module Record m of stack, do
|
|
341
|
+
for (const m of stack) {
|
|
342
|
+
// 1. Assert: m.[[Status]] is evaluating.
|
|
343
|
+
Assert(m.Status === 'evaluating');
|
|
344
|
+
// 2. Set m.[[Status]] to evaluated.
|
|
345
|
+
m.Status = 'evaluated';
|
|
346
|
+
// 3. Set m.[[EvaluationError]] to result.
|
|
347
|
+
m.EvaluationError = result;
|
|
348
|
+
m.CycleRoot = m;
|
|
349
|
+
}
|
|
350
|
+
// ii. Assert: module.[[Status]] is evaluated.
|
|
351
|
+
// iii. Assert: module.[[EvaluationError]] is result.
|
|
352
|
+
Assert((module.Status as CyclicModuleRecordStatus) === 'evaluated' && module.EvaluationError === result);
|
|
353
|
+
// iv. Perform ! Call(capability.[[Reject]], undefined, « result.[[Value]] »).
|
|
354
|
+
X(Call(capability.Reject, Value.undefined, [result.Value]));
|
|
355
|
+
} else { // g. Else,
|
|
356
|
+
const postStatus = module.Status as CyclicModuleRecordStatus;
|
|
357
|
+
// i. Assert: module.[[Status]] is either evaluating-async or evaluated.
|
|
358
|
+
Assert(postStatus === 'evaluating-async' || postStatus === 'evaluated');
|
|
359
|
+
// ii. Assert: module.[[EvaluationError]] is empty.
|
|
360
|
+
Assert(module.EvaluationError === undefined);
|
|
361
|
+
// iii. If module.[[Status]] is evaluated, then
|
|
362
|
+
if (postStatus === 'evaluated') {
|
|
363
|
+
// 1. NOTE: This implies that evaluation of module completed synchronously.
|
|
364
|
+
// 2. Assert: module.[[AsyncEvaluationOrder]] is unset.
|
|
365
|
+
Assert(typeof module.AsyncEvaluationOrder !== 'number');
|
|
366
|
+
// 3. Perform ! Call(capability.[[Resolve]], undefined, « undefined »).
|
|
367
|
+
X(Call(capability.Resolve, Value.undefined, [Value.undefined]));
|
|
368
|
+
}
|
|
369
|
+
// iv. Assert: stack is empty.
|
|
370
|
+
Assert(stack.length === 0);
|
|
371
|
+
}
|
|
372
|
+
// h. Let topLevelPromise be capability.[[Promise]].
|
|
373
|
+
topLevelPromise = capability.Promise;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
// 6. If topLevelPromise.[[PromiseState]] is rejected, return topLevelPromise.
|
|
377
|
+
if (topLevelPromise.PromiseState === 'rejected') {
|
|
378
|
+
return topLevelPromise;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// 7. Let optionalIndirectRequests be module.GetOptionalIndirectExportsModuleRequests(importedNames).
|
|
382
|
+
const optionalIndirectRequests = module.GetOptionalIndirectExportsModuleRequests(importedNames);
|
|
383
|
+
// 8. Let promises be « topLevelPromise ».
|
|
384
|
+
const promises: PromiseObject[] = [topLevelPromise];
|
|
385
|
+
// 9. For each ModuleRequest Record request of optionalIndirectRequests, do
|
|
386
|
+
for (const request of optionalIndirectRequests) {
|
|
387
|
+
// a. Let requiredModule be GetImportedModule(module, request).
|
|
388
|
+
const requiredModule = GetImportedModule(module, request);
|
|
389
|
+
// b. Assert: requiredModule.[[Status]] is one of linked, evaluating-async, or evaluated.
|
|
390
|
+
Assert(
|
|
391
|
+
!(requiredModule instanceof CyclicModuleRecord)
|
|
392
|
+
|| requiredModule.Status === 'linked'
|
|
393
|
+
|| requiredModule.Status === 'evaluating-async'
|
|
394
|
+
|| requiredModule.Status === 'evaluated',
|
|
395
|
+
);
|
|
396
|
+
// c. Let innerPromise be requiredModule.Evaluate(request.[[ImportedNames]]).
|
|
397
|
+
const innerPromise = yield* requiredModule.Evaluate(request.ImportedNames);
|
|
398
|
+
// d. If innerPromise.[[PromiseState]] is rejected, return innerPromise.
|
|
399
|
+
if (innerPromise.PromiseState === 'rejected') {
|
|
400
|
+
return innerPromise;
|
|
401
|
+
}
|
|
402
|
+
// e. Append innerPromise to promises.
|
|
403
|
+
promises.push(innerPromise);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// 10. If promises contains a Promise P such that P.[[PromiseState]] is pending, then
|
|
407
|
+
if (promises.some((p) => p.PromiseState === 'pending')) {
|
|
408
|
+
// a. NOTE: If all modules in the graph are synchronous, the usage of promises is an internal specification detail.
|
|
409
|
+
// In that case, we do not use SafePerformPromiseAll to keep returning an already settled promise.
|
|
410
|
+
// b. Return SafePerformPromiseAll(CreateListIteratorRecord(promises)).
|
|
411
|
+
return SafePerformPromiseAll(promises);
|
|
412
|
+
}
|
|
413
|
+
// 11. Return topLevelPromise.
|
|
414
|
+
return topLevelPromise;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
override mark(m: GCMarker) {
|
|
418
|
+
super.mark(m);
|
|
419
|
+
m(this.EvaluationError);
|
|
420
|
+
for (const v of this.LoadedModules) {
|
|
421
|
+
m(v.Module);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export type SourceTextModuleRecordInit = CyclicModuleRecordInit & Pick<SourceTextModuleRecord, 'ImportMeta' | 'ECMAScriptCode' | 'Context' | 'ImportEntries' | 'LocalExportEntries' | 'IndirectExportEntries' | 'StarExportEntries'> & Partial<Pick<SourceTextModuleRecord, 'OptionalIndirectExportEntries'>>;
|
|
427
|
+
/** https://tc39.es/ecma262/#sec-source-text-module-records */
|
|
428
|
+
export class SourceTextModuleRecord extends CyclicModuleRecord {
|
|
429
|
+
ImportMeta: ObjectValue | undefined;
|
|
430
|
+
|
|
431
|
+
readonly ECMAScriptCode: ParseNode.Module;
|
|
432
|
+
|
|
433
|
+
readonly Context: ExecutionContext | undefined;
|
|
434
|
+
|
|
435
|
+
readonly ImportEntries: readonly ImportEntry[];
|
|
436
|
+
|
|
437
|
+
readonly LocalExportEntries: readonly ExportEntry[];
|
|
438
|
+
|
|
439
|
+
readonly IndirectExportEntries: readonly ExportEntry[];
|
|
440
|
+
|
|
441
|
+
readonly StarExportEntries: readonly ExportEntry[];
|
|
442
|
+
|
|
443
|
+
/** https://tc39.es/proposal-deferred-reexports/ — deferred re-export entries (`export defer ... from`). */
|
|
444
|
+
readonly OptionalIndirectExportEntries: readonly ExportEntry[];
|
|
445
|
+
|
|
446
|
+
constructor(init: SourceTextModuleRecordInit) {
|
|
447
|
+
super(init);
|
|
448
|
+
|
|
449
|
+
this.ImportMeta = init.ImportMeta;
|
|
450
|
+
this.ECMAScriptCode = init.ECMAScriptCode;
|
|
451
|
+
this.Context = init.Context;
|
|
452
|
+
this.ImportEntries = init.ImportEntries;
|
|
453
|
+
this.LocalExportEntries = init.LocalExportEntries;
|
|
454
|
+
this.IndirectExportEntries = init.IndirectExportEntries;
|
|
455
|
+
this.StarExportEntries = init.StarExportEntries;
|
|
456
|
+
this.OptionalIndirectExportEntries = init.OptionalIndirectExportEntries ?? [];
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/** https://tc39.es/ecma262/#sec-getexportednames */
|
|
460
|
+
GetExportedNames(exportStarSet: AbstractModuleRecord[]) {
|
|
461
|
+
const module = this;
|
|
462
|
+
// 1. Assert: module.[[Status]] is not new.
|
|
463
|
+
Assert(module.Status !== 'new');
|
|
464
|
+
// 2. If exportStarSet is not present, set exportStarSet to a new empty List.
|
|
465
|
+
if (!exportStarSet) {
|
|
466
|
+
exportStarSet = [];
|
|
467
|
+
}
|
|
468
|
+
// 3. If exportStarSet contains module, then
|
|
469
|
+
if (exportStarSet.includes(module)) {
|
|
470
|
+
// a. Assert: We've reached the starting point of an import * circularity.
|
|
471
|
+
// b. Return a new empty List.
|
|
472
|
+
return [];
|
|
473
|
+
}
|
|
474
|
+
// 4. Append module to exportStarSet.
|
|
475
|
+
exportStarSet.push(module);
|
|
476
|
+
// 5. Let exportedNames be a new empty List.
|
|
477
|
+
const exportedNames: JSStringValue[] = [];
|
|
478
|
+
// 6. For each ExportEntry Record e in module.[[LocalExportEntries]], do
|
|
479
|
+
for (const e of module.LocalExportEntries) {
|
|
480
|
+
// a. Assert: module provides the direct binding for this export.
|
|
481
|
+
// b. Assert: e.[[ExportName]] is not null.
|
|
482
|
+
Assert(!(e.ExportName instanceof NullValue));
|
|
483
|
+
// c. Append e.[[ExportName]] to exportedNames.
|
|
484
|
+
exportedNames.push(e.ExportName);
|
|
485
|
+
}
|
|
486
|
+
// 6. Let allNamedExportEntries be the list-concatenation of module.[[LocalExportEntries]], module.[[IndirectExportEntries]], and module.[[OptionalIndirectExportEntries]].
|
|
487
|
+
const allNamedExportEntries = [...module.IndirectExportEntries, ...module.OptionalIndirectExportEntries];
|
|
488
|
+
// 7. For each ExportEntry Record e of allNamedExportEntries, do
|
|
489
|
+
// https://tc39.es/proposal-deferred-reexports/#sec-getexportednames
|
|
490
|
+
for (const e of allNamedExportEntries) {
|
|
491
|
+
// a. Assert: module imports a specific binding for this export.
|
|
492
|
+
// b. Assert: e.[[ExportName]] is not null.
|
|
493
|
+
Assert(!(e.ExportName instanceof NullValue));
|
|
494
|
+
// c. Append e.[[ExportName]] to exportedNames.
|
|
495
|
+
exportedNames.push(e.ExportName);
|
|
496
|
+
}
|
|
497
|
+
// 8. For each ExportEntry Record e in module.[[StarExportEntries]], do
|
|
498
|
+
for (const e of module.StarExportEntries) {
|
|
499
|
+
// a. Let requestedModule be GetImportedModule(module, e.[[ModuleRequest]]).
|
|
500
|
+
const requestedModule = GetImportedModule(module, e.ModuleRequest as ModuleRequestRecord);
|
|
501
|
+
// b. Let starNames be requestedModule.GetExportedNames(exportStarSet).
|
|
502
|
+
const starNames = requestedModule.GetExportedNames(exportStarSet);
|
|
503
|
+
// c. For each element n of starNames, do
|
|
504
|
+
for (const n of starNames) {
|
|
505
|
+
// i. If SameValue(n, "default") is false, then
|
|
506
|
+
if (!SameValue(n, Value('default'))) {
|
|
507
|
+
// 1. If n is not an element of exportedNames, then
|
|
508
|
+
if (!exportedNames.includes(n)) {
|
|
509
|
+
// a. Append n to exportedNames.
|
|
510
|
+
exportedNames.push(n);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
// 9. Return exportedNames.
|
|
516
|
+
return exportedNames;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
/** https://tc39.es/ecma262/#sec-resolveexport */
|
|
520
|
+
ResolveExport(exportName: JSStringValue, resolveSet?: ResolveSetItem[], deferNamespaceExportSet?: AbstractModuleRecord[]) {
|
|
521
|
+
const module = this;
|
|
522
|
+
// 1. Assert: module.[[Status]] is not new.
|
|
523
|
+
Assert(module.Status !== 'new');
|
|
524
|
+
// 2. If resolveSet is not present, set resolveSet to a new empty List.
|
|
525
|
+
if (!resolveSet) {
|
|
526
|
+
resolveSet = [];
|
|
527
|
+
}
|
|
528
|
+
if (!deferNamespaceExportSet) {
|
|
529
|
+
deferNamespaceExportSet = [];
|
|
530
|
+
}
|
|
531
|
+
if (ResolveSetContains(resolveSet, module, exportName)) {
|
|
532
|
+
return null;
|
|
533
|
+
}
|
|
534
|
+
// 4. Append the Record { [[Module]]: module, [[ExportName]]: exportName } to resolveSet.
|
|
535
|
+
resolveSet.push({ Module: module, ExportName: exportName });
|
|
536
|
+
// 5. For each ExportEntry Record e in module.[[LocalExportEntries]], do
|
|
537
|
+
for (const e of module.LocalExportEntries) {
|
|
538
|
+
// a. If SameValue(exportName, e.[[ExportName]]) is true, then
|
|
539
|
+
if (SameValue(exportName, e.ExportName)) {
|
|
540
|
+
// i. Assert: module provides the direct binding for this export.
|
|
541
|
+
// ii. Return ResolvedBinding Record { [[Module]]: module, [[BindingName]]: e.[[LocalName]] }.
|
|
542
|
+
return new ResolvedBindingRecord({
|
|
543
|
+
Module: module,
|
|
544
|
+
BindingName: e.LocalName as JSStringValue,
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
// 6. Let allIndirectEntries be the list-concatenation of module.[[IndirectExportEntries]] and module.[[OptionalIndirectExportEntries]].
|
|
549
|
+
const allIndirectEntries = [...module.IndirectExportEntries, ...module.OptionalIndirectExportEntries];
|
|
550
|
+
// 7. For each ExportEntry Record e in allIndirectEntries, do
|
|
551
|
+
// https://tc39.es/proposal-deferred-reexports/#sec-resolveexport
|
|
552
|
+
for (const e of allIndirectEntries) {
|
|
553
|
+
// a. If SameValue(exportName, e.[[ExportName]]) is true, then
|
|
554
|
+
if (SameValue(exportName, e.ExportName)) {
|
|
555
|
+
Assert(e.ModuleRequest !== Value.null);
|
|
556
|
+
// i. Let importedModule be GetImportedModule(module, e.[[ModuleRequest]]).
|
|
557
|
+
const importedModule = GetImportedModule(module, e.ModuleRequest as ModuleRequestRecord);
|
|
558
|
+
// ii. If e.[[ImportName]] is ~namespace~, then
|
|
559
|
+
if (e.ImportName === 'namespace') {
|
|
560
|
+
// 1. Assert: module does not provide the direct binding for this export
|
|
561
|
+
Assert(!module.LocalExportEntries.some((entry) => SameValue(entry.ExportName, exportName)));
|
|
562
|
+
Assert(e.NamespaceNamesFilter !== undefined && e.NamespaceNamesFilter.length === 0);
|
|
563
|
+
if (module.OptionalIndirectExportEntries.includes(e)
|
|
564
|
+
&& NamespaceMemberIsUnresolvableOptional(
|
|
565
|
+
deferNamespaceExportSet,
|
|
566
|
+
module,
|
|
567
|
+
exportName,
|
|
568
|
+
importedModule,
|
|
569
|
+
importedModule.GetExportedNames(),
|
|
570
|
+
'allow-ambiguous',
|
|
571
|
+
)) {
|
|
572
|
+
return null;
|
|
573
|
+
}
|
|
574
|
+
if ((e.ModuleRequest as ModuleRequestRecord).Phase === 'defer') {
|
|
575
|
+
// https://tc39.es/proposal-defer-import-eval/#sec-resolveexport
|
|
576
|
+
return new ResolvedBindingRecord({
|
|
577
|
+
Module: importedModule,
|
|
578
|
+
BindingName: 'deferred-namespace',
|
|
579
|
+
});
|
|
580
|
+
} else {
|
|
581
|
+
Assert((e.ModuleRequest as ModuleRequestRecord).Phase === 'evaluation');
|
|
582
|
+
// 2. Return ResolvedBinding Record { [[Module]]: importedModule, [[BindingName]]: ~namespace~ }.
|
|
583
|
+
return new ResolvedBindingRecord({
|
|
584
|
+
Module: importedModule,
|
|
585
|
+
BindingName: 'namespace',
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
} else if (e.ImportName === 'filtered-namespace') {
|
|
589
|
+
Assert(Array.isArray(e.NamespaceNamesFilter));
|
|
590
|
+
if (module.OptionalIndirectExportEntries.includes(e)
|
|
591
|
+
&& NamespaceMemberIsUnresolvableOptional(
|
|
592
|
+
deferNamespaceExportSet,
|
|
593
|
+
module,
|
|
594
|
+
exportName,
|
|
595
|
+
importedModule,
|
|
596
|
+
e.NamespaceNamesFilter,
|
|
597
|
+
'disallow-ambiguous',
|
|
598
|
+
)) {
|
|
599
|
+
return null;
|
|
600
|
+
}
|
|
601
|
+
const localName = `*${exportName.stringValue()}*`;
|
|
602
|
+
return new ResolvedBindingRecord({
|
|
603
|
+
Module: module,
|
|
604
|
+
BindingName: Value(localName),
|
|
605
|
+
});
|
|
606
|
+
} else if (e.ImportName === 'source') {
|
|
607
|
+
// Assert: _module_ does not provide the direct binding for this export.
|
|
608
|
+
return new ResolvedBindingRecord({
|
|
609
|
+
Module: importedModule,
|
|
610
|
+
BindingName: 'source',
|
|
611
|
+
});
|
|
612
|
+
} else { // iv. Else,
|
|
613
|
+
// 1. Assert: module imports a specific binding for this export.
|
|
614
|
+
Assert(e.ImportName instanceof JSStringValue);
|
|
615
|
+
// 2. Return importedModule.ResolveExport(e.[[ImportName]], resolveSet).
|
|
616
|
+
return importedModule.ResolveExport(e.ImportName, resolveSet, deferNamespaceExportSet);
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
// 7. If SameValue(exportName, "default") is true, then
|
|
621
|
+
if (SameValue(exportName, Value('default'))) {
|
|
622
|
+
// a. Assert: A default export was not explicitly defined by this module.
|
|
623
|
+
Assert(!module.LocalExportEntries.some((entry) => SameValue(entry.ExportName, exportName)));
|
|
624
|
+
// b. Return null.
|
|
625
|
+
return null;
|
|
626
|
+
// c. NOTE: A default export cannot be provided by an export * or export * from "mod" declaration.
|
|
627
|
+
}
|
|
628
|
+
// 8. Let starResolution be null.
|
|
629
|
+
let starResolution = null;
|
|
630
|
+
// 9. For each ExportEntry Record e in module.[[StarExportEntries]], do
|
|
631
|
+
for (const e of module.StarExportEntries) {
|
|
632
|
+
Assert(e.ModuleRequest !== Value.null);
|
|
633
|
+
// a. Let importedModule be GetImportedModule(module, e.[[ModuleRequest]]).
|
|
634
|
+
const importedModule = GetImportedModule(module, e.ModuleRequest as ModuleRequestRecord);
|
|
635
|
+
// b. Let resolution be importedModule.ResolveExport(exportName, resolveSet).
|
|
636
|
+
const resolution = importedModule.ResolveExport(exportName, resolveSet, deferNamespaceExportSet);
|
|
637
|
+
// c. If resolution is "ambiguous", return "ambiguous".
|
|
638
|
+
if (resolution === 'ambiguous') {
|
|
639
|
+
return 'ambiguous';
|
|
640
|
+
}
|
|
641
|
+
// d. If resolution is not null, then
|
|
642
|
+
if (resolution !== null) {
|
|
643
|
+
// a. Assert: resolution is a ResolvedBinding Record.
|
|
644
|
+
Assert(resolution instanceof ResolvedBindingRecord);
|
|
645
|
+
// b. If starResolution is null, set starResolution to resolution.
|
|
646
|
+
if (starResolution === null) {
|
|
647
|
+
starResolution = resolution;
|
|
648
|
+
} else { // c. Else,
|
|
649
|
+
// 1. Assert: There is more than one * export that includes the requested name.
|
|
650
|
+
// 2. If _resolution_.[[Module]] and _starResolution_.[[Module]] are not the same Module Record, return ~ambiguous~.
|
|
651
|
+
if (resolution.Module !== starResolution.Module) {
|
|
652
|
+
return 'ambiguous';
|
|
653
|
+
}
|
|
654
|
+
// 3. If _resolution_.[[BindingName]] is not _starResolution_.[[BindingName]], return ~ambiguous~.
|
|
655
|
+
const l = resolution.BindingName;
|
|
656
|
+
const r = starResolution.BindingName;
|
|
657
|
+
if (l === r) {
|
|
658
|
+
// pass
|
|
659
|
+
} else if (l instanceof JSStringValue && !(r instanceof JSStringValue)) {
|
|
660
|
+
return 'ambiguous';
|
|
661
|
+
} else if (!(l instanceof JSStringValue) && r instanceof JSStringValue) {
|
|
662
|
+
return 'ambiguous';
|
|
663
|
+
} else if (l instanceof JSStringValue && r instanceof JSStringValue) {
|
|
664
|
+
if (l.value !== r.value) return 'ambiguous';
|
|
665
|
+
} else if (l !== r) {
|
|
666
|
+
return 'ambiguous';
|
|
667
|
+
} else throw OutOfRange.nonExhaustive(l);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
// 11. Return starResolution.
|
|
672
|
+
return starResolution;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
/** https://tc39.es/proposal-deferred-reexports/#sec-GetOptionalIndirectExportsModuleRequests */
|
|
676
|
+
override GetOptionalIndirectExportsModuleRequests(importedNames: ImportedNamesValue = 'all'): readonly ModuleRequestRecord[] {
|
|
677
|
+
const requests: ModuleRequestRecord[] = [];
|
|
678
|
+
for (const oie of this.OptionalIndirectExportEntries) {
|
|
679
|
+
// a. If importedNames is all or importedNames contains oie.[[ExportName]], then
|
|
680
|
+
if (importedNames === 'all' || importedNamesContains(importedNames, oie.ExportName)) {
|
|
681
|
+
const nextRequest = oie.ModuleRequest as ModuleRequestRecord;
|
|
682
|
+
let existingRequest: ModuleRequestRecord | undefined;
|
|
683
|
+
for (const r of requests) {
|
|
684
|
+
if (existingRequest === undefined && ModuleRequestsKeyEqual(r, nextRequest) && r.Phase === nextRequest.Phase) {
|
|
685
|
+
existingRequest = r;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
let newImportedNames: ImportedNamesValue = 'all';
|
|
689
|
+
Assert(oie.ImportName instanceof JSStringValue || oie.ImportName === 'namespace' || oie.ImportName === 'filtered-namespace');
|
|
690
|
+
if (oie.ImportName instanceof JSStringValue) {
|
|
691
|
+
newImportedNames = [oie.ImportName.stringValue()];
|
|
692
|
+
}
|
|
693
|
+
if (oie.ImportName === 'filtered-namespace') {
|
|
694
|
+
Assert(Array.isArray(oie.NamespaceNamesFilter));
|
|
695
|
+
newImportedNames = oie.NamespaceNamesFilter;
|
|
696
|
+
}
|
|
697
|
+
if (existingRequest === undefined) {
|
|
698
|
+
const request: ModuleRequestRecord = {
|
|
699
|
+
Specifier: nextRequest.Specifier,
|
|
700
|
+
Attributes: nextRequest.Attributes,
|
|
701
|
+
Phase: nextRequest.Phase,
|
|
702
|
+
ImportedNames: newImportedNames,
|
|
703
|
+
};
|
|
704
|
+
requests.push(request);
|
|
705
|
+
} else {
|
|
706
|
+
(existingRequest as Mutable<ModuleRequestRecord>).ImportedNames = MergeImportedNames(existingRequest.ImportedNames, newImportedNames);
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
return requests;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
/** https://tc39.es/ecma262/#sec-source-text-module-record-initialize-environment */
|
|
714
|
+
InitializeEnvironment() {
|
|
715
|
+
const module = this as Mutable<SourceTextModuleRecord>;
|
|
716
|
+
// 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do
|
|
717
|
+
for (const e of module.IndirectExportEntries) {
|
|
718
|
+
Q(EnsureResolvableBinding(module, e.ExportName as JSStringValue, 'disallow-ambiguous'));
|
|
719
|
+
}
|
|
720
|
+
for (const e of module.StarExportEntries) {
|
|
721
|
+
const importedModule = GetImportedModule(module, e.ModuleRequest as ModuleRequestRecord);
|
|
722
|
+
for (const name of importedModule.GetExportedNames()) {
|
|
723
|
+
if (name.stringValue() !== 'default') {
|
|
724
|
+
Q(EnsureResolvableBinding(importedModule, name, 'disallow-ambiguous'));
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
// 2. Assert: All named exports from module are resolvable.
|
|
729
|
+
// 3. Let realm be module.[[Realm]].
|
|
730
|
+
const realm = module.Realm;
|
|
731
|
+
// 4. Assert: realm is not undefined.
|
|
732
|
+
Assert(!(realm instanceof UndefinedValue));
|
|
733
|
+
// 5. Let env be NewModuleEnvironment(realm.[[GlobalEnv]]).
|
|
734
|
+
const env = new ModuleEnvironmentRecord(realm.GlobalEnv);
|
|
735
|
+
// 6. Set module.[[Environment]] to env.
|
|
736
|
+
module.Environment = env;
|
|
737
|
+
// 7. For each ImportEntry Record in in module.[[ImportEntries]], do
|
|
738
|
+
for (const ie of module.ImportEntries) {
|
|
739
|
+
// a. Let importedModule be GetImportedModule(module, in.[[ModuleRequest]]).
|
|
740
|
+
const importedModule = GetImportedModule(module, ie.ModuleRequest);
|
|
741
|
+
if (ie.ImportName === 'namespace') {
|
|
742
|
+
// i. Let namespace be GetModuleNamespace(importedModule, phase, all).
|
|
743
|
+
Assert(ie.ModuleRequest.Phase !== 'source');
|
|
744
|
+
const namespacePhase = ie.ModuleRequest.Phase === 'defer' ? 'defer' : 'evaluation';
|
|
745
|
+
for (const name of importedModule.GetExportedNames()) {
|
|
746
|
+
Q(EnsureResolvableBinding(importedModule, name, 'allow-ambiguous'));
|
|
747
|
+
}
|
|
748
|
+
const namespace = GetModuleNamespace(importedModule, namespacePhase, 'all');
|
|
749
|
+
// ii. Perform ! env.CreateImmutableBinding(in.[[LocalName]], true).
|
|
750
|
+
X(env.CreateImmutableBinding(ie.LocalName, Value.true));
|
|
751
|
+
// iii. Call env.InitializeBinding(in.[[LocalName]], namespace).
|
|
752
|
+
X(env.InitializeBinding(ie.LocalName, namespace));
|
|
753
|
+
} else if (ie.ImportName === 'filtered-namespace-object') {
|
|
754
|
+
for (const name of ie.NamespaceNamesFilter!) {
|
|
755
|
+
Q(EnsureResolvableBinding(importedModule, Value(name), 'disallow-ambiguous'));
|
|
756
|
+
}
|
|
757
|
+
Assert(ie.ModuleRequest.Phase !== 'source');
|
|
758
|
+
const namespace = GetModuleNamespace(importedModule, ie.ModuleRequest.Phase, ie.NamespaceNamesFilter);
|
|
759
|
+
X(env.CreateImmutableBinding(ie.LocalName, Value.true));
|
|
760
|
+
X(env.InitializeBinding(ie.LocalName, namespace));
|
|
761
|
+
} else if (ie.ImportName === 'source') {
|
|
762
|
+
const moduleSourceObject = importedModule.ModuleSource;
|
|
763
|
+
if (moduleSourceObject === undefined) {
|
|
764
|
+
return Throw.SyntaxError('Module source is not available');
|
|
765
|
+
}
|
|
766
|
+
X(env.CreateImmutableBinding(ie.LocalName, Value.true));
|
|
767
|
+
X(env.InitializeBinding(ie.LocalName, moduleSourceObject));
|
|
768
|
+
} else { // c. Else,
|
|
769
|
+
// i. Let resolution be importedModule.ResolveExport(in.[[ImportName]]).
|
|
770
|
+
const resolution = importedModule.ResolveExport(ie.ImportName);
|
|
771
|
+
// ii. If resolution is null or "ambiguous", throw a SyntaxError exception.
|
|
772
|
+
if (resolution === null || resolution === 'ambiguous') {
|
|
773
|
+
const moduleName = importedModule.HostDefined?.specifier || '<anonymous module>';
|
|
774
|
+
if (resolution === null) {
|
|
775
|
+
return Throw.SyntaxError('Module "$1" does not have an export named $2', moduleName, ie.ImportName);
|
|
776
|
+
}
|
|
777
|
+
return Throw.SyntaxError('Export $1 from module "$2" is ambiguous', ie.ImportName, moduleName);
|
|
778
|
+
}
|
|
779
|
+
// iii. If resolution.[[BindingName]] is ~namespace~, then
|
|
780
|
+
if (resolution.BindingName === 'namespace' || resolution.BindingName === 'deferred-namespace') {
|
|
781
|
+
// https://tc39.es/proposal-defer-import-eval/#sec-source-text-module-record-initialize-environment
|
|
782
|
+
const phase = resolution.BindingName === 'namespace' ? 'evaluation' : 'defer';
|
|
783
|
+
// 1. Let namespace be GetModuleNamespace(resolution.[[Module]], phase, all).
|
|
784
|
+
const namespace = GetModuleNamespace(resolution.Module, phase, 'all');
|
|
785
|
+
// 2. Perform ! env.CreateImmutableBinding(in.[[LocalName]], true).
|
|
786
|
+
X(env.CreateImmutableBinding(ie.LocalName, Value.true));
|
|
787
|
+
// 3. Call env.InitializeBinding(in.[[LocalName]], namespace).
|
|
788
|
+
X(env.InitializeBinding(ie.LocalName, namespace));
|
|
789
|
+
} else if (resolution.BindingName === 'source') {
|
|
790
|
+
const moduleSourceObject = resolution.Module.ModuleSource;
|
|
791
|
+
if (moduleSourceObject === undefined) {
|
|
792
|
+
return Throw.SyntaxError('Module source is not available');
|
|
793
|
+
}
|
|
794
|
+
X(env.CreateImmutableBinding(ie.LocalName, Value.true));
|
|
795
|
+
X(env.InitializeBinding(ie.LocalName, moduleSourceObject));
|
|
796
|
+
} else { // iv. Else,
|
|
797
|
+
// 1. Call env.CreateImportBinding(in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]).
|
|
798
|
+
X(env.CreateImportBinding(ie.LocalName, resolution.Module, resolution.BindingName));
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
for (const ie of module.IndirectExportEntries) {
|
|
803
|
+
if (ie.ImportName === 'filtered-namespace') {
|
|
804
|
+
const localName = Value(`*${(ie.ExportName as JSStringValue).stringValue()}*`);
|
|
805
|
+
const importedModule = GetImportedModule(module, ie.ModuleRequest as ModuleRequestRecord);
|
|
806
|
+
for (const name of ie.NamespaceNamesFilter!) {
|
|
807
|
+
Q(EnsureResolvableBinding(importedModule, Value(name), 'disallow-ambiguous'));
|
|
808
|
+
}
|
|
809
|
+
const requestPhase = (ie.ModuleRequest as ModuleRequestRecord).Phase;
|
|
810
|
+
Assert(requestPhase !== 'source');
|
|
811
|
+
const filteredNamespace = GetModuleNamespace(importedModule, requestPhase === 'defer' ? 'defer' : 'evaluation', ie.NamespaceNamesFilter);
|
|
812
|
+
X(env.CreateImmutableBinding(localName, Value.true));
|
|
813
|
+
X(env.InitializeBinding(localName, filteredNamespace));
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
for (const oie of module.OptionalIndirectExportEntries) {
|
|
817
|
+
if (oie.ImportName === 'filtered-namespace') {
|
|
818
|
+
const localName = Value(`*${(oie.ExportName as JSStringValue).stringValue()}*`);
|
|
819
|
+
const initializationSteps = () => {
|
|
820
|
+
const importedModule = GetImportedModule(module, oie.ModuleRequest as ModuleRequestRecord);
|
|
821
|
+
return GetModuleNamespace(
|
|
822
|
+
importedModule,
|
|
823
|
+
(oie.ModuleRequest as ModuleRequestRecord).Phase as 'defer' | 'evaluation',
|
|
824
|
+
oie.NamespaceNamesFilter!,
|
|
825
|
+
);
|
|
826
|
+
};
|
|
827
|
+
X(env.CreateDeferredInitializationBinding(localName, initializationSteps));
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
// 8. Let moduleContext be a new ECMAScript code execution context.
|
|
831
|
+
const moduleContext = new ExecutionContext();
|
|
832
|
+
// 9. Set the Function of moduleContext to null.
|
|
833
|
+
moduleContext.Function = Value.null;
|
|
834
|
+
// 10. Assert: module.[[Realm]] is not undefined.
|
|
835
|
+
Assert(!(module.Realm instanceof UndefinedValue));
|
|
836
|
+
// 11. Set the Realm of moduleContext to module.[[Realm]].
|
|
837
|
+
moduleContext.Realm = module.Realm;
|
|
838
|
+
// 12. Set the ScriptOrModule of moduleContext to module.
|
|
839
|
+
moduleContext.ScriptOrModule = module;
|
|
840
|
+
// 13. Set the VariableEnvironment of moduleContext to module.[[Environment]].
|
|
841
|
+
moduleContext.VariableEnvironment = module.Environment!;
|
|
842
|
+
// 14. Set the LexicalEnvironment of moduleContext to module.[[Environment]].
|
|
843
|
+
moduleContext.LexicalEnvironment = module.Environment!;
|
|
844
|
+
// 15. Set the PrivateEnvironment of moduleContext to null.
|
|
845
|
+
moduleContext.PrivateEnvironment = null;
|
|
846
|
+
// 16. Set module.[[Context]] to moduleContext.
|
|
847
|
+
module.Context = moduleContext;
|
|
848
|
+
// 17. Push moduleContext onto the execution context stack; moduleContext is now the running execution context.
|
|
849
|
+
surroundingAgent.executionContextStack.push(moduleContext);
|
|
850
|
+
// 18. Let code be module.[[ECMAScriptCode]].
|
|
851
|
+
const code = module.ECMAScriptCode;
|
|
852
|
+
// 19. Let varDeclarations be the VarScopedDeclarations of code.
|
|
853
|
+
const varDeclarations = VarScopedDeclarations(code);
|
|
854
|
+
// 20. Let declaredVarNames be a new empty List.
|
|
855
|
+
const declaredVarNames = new JSStringSet();
|
|
856
|
+
// 21. For each element d in varDeclarations, do
|
|
857
|
+
for (const d of varDeclarations) {
|
|
858
|
+
// a. For each element dn of the BoundNames of d, do
|
|
859
|
+
for (const dn of BoundNames(d)) {
|
|
860
|
+
// i. If dn is not an element of declaredVarNames, then
|
|
861
|
+
if (!declaredVarNames.has(dn)) {
|
|
862
|
+
// 1. Perform ! env.CreateMutableBinding(dn, false).
|
|
863
|
+
X(env.CreateMutableBinding(dn, Value.false));
|
|
864
|
+
// 2. Call env.InitializeBinding(dn, undefined).
|
|
865
|
+
X(env.InitializeBinding(dn, Value.undefined));
|
|
866
|
+
// 3. Append dn to declaredVarNames.
|
|
867
|
+
declaredVarNames.add(dn);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
// 22. Let lexDeclarations be the LexicallyScopedDeclarations of code.
|
|
872
|
+
const lexDeclarations = LexicallyScopedDeclarations(code);
|
|
873
|
+
// 24. For each element d in lexDeclarations, do
|
|
874
|
+
for (const d of lexDeclarations) {
|
|
875
|
+
// a. For each element dn of the BoundNames of d, do
|
|
876
|
+
for (const dn of BoundNames(d)) {
|
|
877
|
+
// i. If IsConstantDeclaration of d is true, then
|
|
878
|
+
if (IsConstantDeclaration(d)) {
|
|
879
|
+
// 1. Perform ! env.CreateImmutableBinding(dn, true).
|
|
880
|
+
X(env.CreateImmutableBinding(dn, Value.true));
|
|
881
|
+
} else { // ii. Else,
|
|
882
|
+
// 1. Perform ! env.CreateMutableBinding(dn, false).
|
|
883
|
+
X(env.CreateMutableBinding(dn, Value.false));
|
|
884
|
+
}
|
|
885
|
+
// iii. If d is a FunctionDeclaration, a GeneratorDeclaration, an AsyncFunctionDeclaration, or an AsyncGeneratorDeclaration, then
|
|
886
|
+
if (d.type === 'FunctionDeclaration'
|
|
887
|
+
|| d.type === 'GeneratorDeclaration'
|
|
888
|
+
|| d.type === 'AsyncFunctionDeclaration'
|
|
889
|
+
|| d.type === 'AsyncGeneratorDeclaration') {
|
|
890
|
+
// 1. Let fo be InstantiateFunctionObject of d with argument env.
|
|
891
|
+
const fo = InstantiateFunctionObject(d, env, null);
|
|
892
|
+
// 2. Call env.InitializeBinding(dn, fo).
|
|
893
|
+
X(env.InitializeBinding(dn, fo));
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
// 25. Remove moduleContext from the execution context stack.
|
|
898
|
+
surroundingAgent.executionContextStack.pop(moduleContext);
|
|
899
|
+
// 26. Return unused.
|
|
900
|
+
return NormalCompletion(undefined);
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
/** https://tc39.es/ecma262/#sec-source-text-module-record-execute-module */
|
|
904
|
+
* ExecuteModule(capability?: PromiseCapabilityRecord): ValueEvaluator {
|
|
905
|
+
// 1. Let module be this Source Text Module Record.
|
|
906
|
+
const module = this;
|
|
907
|
+
// 2. Assert: module has been linked and declarations in its module environment have been instantiated.
|
|
908
|
+
// 3. Let moduleContext be module.[[Context]].
|
|
909
|
+
const moduleContext = module.Context!;
|
|
910
|
+
const env = module.Environment!;
|
|
911
|
+
if (module.HasTLA === Value.false) {
|
|
912
|
+
Assert(capability === undefined);
|
|
913
|
+
// 4. Push moduleContext onto the execution context stack; moduleContext is now the running execution context.
|
|
914
|
+
surroundingAgent.executionContextStack.push(moduleContext);
|
|
915
|
+
// 5. Let result be the result of evaluating module.[[ECMAScriptCode]].
|
|
916
|
+
let result = EnsureCompletion(yield* Evaluate(module.ECMAScriptCode));
|
|
917
|
+
result = yield* DisposeResources(env.DisposableResourceStack, result);
|
|
918
|
+
// 6. Suspend moduleContext and remove it from the execution context stack.
|
|
919
|
+
// 7. Resume the context that is now on the top of the execution context stack as the running execution context.
|
|
920
|
+
surroundingAgent.executionContextStack.pop(moduleContext);
|
|
921
|
+
// 8. Return Completion(result).
|
|
922
|
+
return Q(result);
|
|
923
|
+
} else { // (*TopLevelAwait)
|
|
924
|
+
// a. Assert: capability is a PromiseCapability Record.
|
|
925
|
+
Assert(capability instanceof PromiseCapabilityRecord);
|
|
926
|
+
// b. Perform ! AsyncBlockStart(capability, module.[[ECMAScriptCode]], moduleCxt).
|
|
927
|
+
X(yield* AsyncBlockStart(capability, function* evaluateModule(): ValueEvaluator {
|
|
928
|
+
let result = EnsureCompletion(yield* Evaluate(module.ECMAScriptCode));
|
|
929
|
+
result = yield* DisposeResources(env.DisposableResourceStack, result);
|
|
930
|
+
return result;
|
|
931
|
+
}, moduleContext));
|
|
932
|
+
// c. Return.
|
|
933
|
+
return Value.undefined;
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
override mark(m: GCMarker) {
|
|
938
|
+
super.mark(m);
|
|
939
|
+
m(this.ImportMeta);
|
|
940
|
+
m(this.Context);
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
function EnsureResolvableBinding(
|
|
945
|
+
module: AbstractModuleRecord,
|
|
946
|
+
name: JSStringValue,
|
|
947
|
+
onAmbiguous: 'allow-ambiguous' | 'disallow-ambiguous',
|
|
948
|
+
): PlainCompletion<void> {
|
|
949
|
+
const resolution = module.ResolveExport(name);
|
|
950
|
+
if (resolution === null) {
|
|
951
|
+
return Throw.SyntaxError('Module "$1" does not have an export named $2', module.HostDefined?.specifier || '<anonymous module>', name);
|
|
952
|
+
}
|
|
953
|
+
if (onAmbiguous === 'disallow-ambiguous') {
|
|
954
|
+
if (resolution === 'ambiguous') {
|
|
955
|
+
return Throw.SyntaxError('Export $1 from module "$2" is ambiguous', name, module.HostDefined?.specifier || '<anonymous module>');
|
|
956
|
+
}
|
|
957
|
+
Assert(resolution instanceof ResolvedBindingRecord);
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
function NamespaceMemberIsUnresolvableOptional(
|
|
962
|
+
deferNamespaceExportSet: AbstractModuleRecord[],
|
|
963
|
+
reexporterModule: AbstractModuleRecord,
|
|
964
|
+
exportName: JSStringValue,
|
|
965
|
+
namespaceModule: AbstractModuleRecord,
|
|
966
|
+
namespaceNames: readonly JSStringValue[] | readonly string[],
|
|
967
|
+
onAmbiguous: 'allow-ambiguous' | 'disallow-ambiguous',
|
|
968
|
+
): boolean {
|
|
969
|
+
if (ResolveSetContains(deferNamespaceExportSet, reexporterModule, exportName)) {
|
|
970
|
+
return false;
|
|
971
|
+
}
|
|
972
|
+
deferNamespaceExportSet.push(reexporterModule);
|
|
973
|
+
Assert(ResolveSetContains(deferNamespaceExportSet, reexporterModule, exportName));
|
|
974
|
+
for (const name of namespaceNames) {
|
|
975
|
+
const resolution = namespaceModule.ResolveExport(name instanceof JSStringValue ? name : Value(name), [], deferNamespaceExportSet);
|
|
976
|
+
if (resolution === null) return true;
|
|
977
|
+
if (resolution === 'ambiguous' && onAmbiguous === 'disallow-ambiguous') return true;
|
|
978
|
+
}
|
|
979
|
+
return false;
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
export type SyntheticModuleRecordInit = AbstractModuleInit & Pick<SyntheticModuleRecord, 'ExportNames' | 'EvaluationSteps'>;
|
|
983
|
+
/** https://tc39.es/ecma262/#sec-synthetic-module-records */
|
|
984
|
+
export class SyntheticModuleRecord extends AbstractModuleRecord {
|
|
985
|
+
override LoadRequestedModules(): PromiseObject {
|
|
986
|
+
const promise = X(NewPromiseCapability(surroundingAgent.intrinsic('%Promise%')));
|
|
987
|
+
X(Call(promise.Resolve, Value.undefined, [Value.undefined]));
|
|
988
|
+
return promise.Promise;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
readonly ExportNames: readonly JSStringValue[];
|
|
992
|
+
|
|
993
|
+
readonly EvaluationSteps: (module: SyntheticModuleRecord) => PlainEvaluator | Completion<unknown> | void;
|
|
994
|
+
|
|
995
|
+
constructor(init: SyntheticModuleRecordInit) {
|
|
996
|
+
super(init);
|
|
997
|
+
|
|
998
|
+
this.ExportNames = init.ExportNames;
|
|
999
|
+
this.EvaluationSteps = init.EvaluationSteps;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
/** https://tc39.es/ecma262/#sec-synthetic-module-record-getexportednames */
|
|
1003
|
+
GetExportedNames() {
|
|
1004
|
+
const module = this;
|
|
1005
|
+
// 1. Return module.[[ExportNames]].
|
|
1006
|
+
return module.ExportNames;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
/** https://tc39.es/ecma262/#sec-synthetic-module-record-resolveexport */
|
|
1010
|
+
ResolveExport(exportName: JSStringValue): ResolvedBindingRecord | null {
|
|
1011
|
+
const module = this;
|
|
1012
|
+
// 1. If module.[[ExportNames]] does not contain exportName, return null.
|
|
1013
|
+
// 2. Return ResolvedBinding Record { [[Module]]: module, [[BindingName]]: exportName }.
|
|
1014
|
+
for (const e of module.ExportNames) {
|
|
1015
|
+
if (SameValue(e, exportName)) {
|
|
1016
|
+
return new ResolvedBindingRecord({ Module: module, BindingName: exportName });
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
return null;
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
/** https://tc39.es/ecma262/#sec-synthetic-module-record-link */
|
|
1023
|
+
Link() {
|
|
1024
|
+
const module = this;
|
|
1025
|
+
// 1. Let realm be module.[[Realm]].
|
|
1026
|
+
const realm = module.Realm;
|
|
1027
|
+
// 2. Assert: realm is not undefined.
|
|
1028
|
+
Assert(!(realm instanceof UndefinedValue));
|
|
1029
|
+
// 3. Let env be NewModuleEnvironment(realm.[[GlobalEnv]]).
|
|
1030
|
+
const env = new ModuleEnvironmentRecord(realm.GlobalEnv);
|
|
1031
|
+
// 4. Set module.[[Environment]] to env.
|
|
1032
|
+
(module as Mutable<AbstractModuleRecord>).Environment = env;
|
|
1033
|
+
// 5. For each exportName in module.[[ExportNames]],
|
|
1034
|
+
for (const exportName of module.ExportNames) {
|
|
1035
|
+
// a. Perform ! env.CreateMutableBinding(exportName, false).
|
|
1036
|
+
X(env.CreateMutableBinding(exportName, Value.false));
|
|
1037
|
+
// b. Perform ! env.InitializeBinding(exportName, undefined).
|
|
1038
|
+
X(env.InitializeBinding(exportName, Value.undefined));
|
|
1039
|
+
}
|
|
1040
|
+
// 8. Return undefined.
|
|
1041
|
+
return undefined;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
/** https://tc39.es/ecma262/#sec-synthetic-module-record-evaluate */
|
|
1045
|
+
* Evaluate(): Evaluator<PromiseObject> {
|
|
1046
|
+
const module = this;
|
|
1047
|
+
// 1. Suspend the currently running execution context.
|
|
1048
|
+
// 2. Let moduleContext be a new ECMAScript code execution context.
|
|
1049
|
+
const moduleContext = new ExecutionContext();
|
|
1050
|
+
// 3. Set the Function of moduleContext to null.
|
|
1051
|
+
moduleContext.Function = Value.null;
|
|
1052
|
+
// 4. Set the Realm of moduleContext to module.[[Realm]].
|
|
1053
|
+
moduleContext.Realm = module.Realm;
|
|
1054
|
+
// 5. Set the ScriptOrModule of moduleContext to module.
|
|
1055
|
+
moduleContext.ScriptOrModule = module;
|
|
1056
|
+
// 6. Set the VariableEnvironment of moduleContext to module.[[Environment]].
|
|
1057
|
+
moduleContext.VariableEnvironment = module.Environment!;
|
|
1058
|
+
// 7. Set the LexicalEnvironment of moduleContext to module.[[Environment]].
|
|
1059
|
+
moduleContext.LexicalEnvironment = module.Environment!;
|
|
1060
|
+
moduleContext.PrivateEnvironment = null;
|
|
1061
|
+
// 8. Push moduleContext on to the execution context stack; moduleContext is now the running execution context.
|
|
1062
|
+
surroundingAgent.executionContextStack.push(moduleContext);
|
|
1063
|
+
// 9. Let steps be module.[[EvaluationSteps]].
|
|
1064
|
+
const steps = module.EvaluationSteps;
|
|
1065
|
+
// 10. Let result be Completion(steps(module)).
|
|
1066
|
+
let result = steps(module);
|
|
1067
|
+
if (isEvaluator(result)) {
|
|
1068
|
+
result = yield* result;
|
|
1069
|
+
}
|
|
1070
|
+
// 11. Suspend moduleContext and remove it from the execution context stack.
|
|
1071
|
+
// 12. Resume the context that is now on the top of the execution context stack as the running execution context.
|
|
1072
|
+
surroundingAgent.executionContextStack.pop(moduleContext);
|
|
1073
|
+
// 13. Let pc be ! NewPromiseCapability(%Promise%).
|
|
1074
|
+
const pc = X(NewPromiseCapability(surroundingAgent.intrinsic('%Promise%')));
|
|
1075
|
+
// 14. IfAbruptRejectPromise(result, pc).
|
|
1076
|
+
IfAbruptRejectPromise(result, pc);
|
|
1077
|
+
// 15. Perform ! Call(pc.[[Resolve]], undefined, « undefined »).
|
|
1078
|
+
X(Call(pc.Resolve, Value.undefined, [Value.undefined]));
|
|
1079
|
+
// 16. Return pc.[[Promise]].
|
|
1080
|
+
return pc.Promise;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1083
|
+
* SetSyntheticExport(name: JSStringValue, value: Value): PlainEvaluator {
|
|
1084
|
+
const module = this;
|
|
1085
|
+
// 1. Return module.[[Environment]].SetMutableBinding(name, value, true).
|
|
1086
|
+
return yield* module.Environment!.SetMutableBinding(name, value, Value.true);
|
|
1087
|
+
}
|
|
1088
|
+
}
|