@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
|
@@ -0,0 +1,994 @@
|
|
|
1
|
+
import { AbstractModuleRecord } from '../modules.mts';
|
|
2
|
+
import {
|
|
3
|
+
Descriptor,
|
|
4
|
+
ReferenceRecord,
|
|
5
|
+
UndefinedValue,
|
|
6
|
+
ObjectValue,
|
|
7
|
+
Value,
|
|
8
|
+
wellKnownSymbols,
|
|
9
|
+
BooleanValue,
|
|
10
|
+
JSStringValue,
|
|
11
|
+
} from '../value.mts';
|
|
12
|
+
import { type GCMarker } from '../host-defined/engine.mts';
|
|
13
|
+
import type { DisposableResourceRecord } from '../abstract-ops/disposable-operations.mts';
|
|
14
|
+
import {
|
|
15
|
+
NormalCompletion, Q, X,
|
|
16
|
+
type ValueEvaluator,
|
|
17
|
+
} from '../completion.mts';
|
|
18
|
+
import { JSStringMap } from '../utils/container.mts';
|
|
19
|
+
import type { PlainEvaluator } from '../evaluator.mts';
|
|
20
|
+
import {
|
|
21
|
+
Assert,
|
|
22
|
+
DefinePropertyOrThrow,
|
|
23
|
+
Get,
|
|
24
|
+
HasOwnProperty,
|
|
25
|
+
HasProperty,
|
|
26
|
+
IsDataDescriptor,
|
|
27
|
+
IsExtensible,
|
|
28
|
+
IsPropertyKey,
|
|
29
|
+
Set,
|
|
30
|
+
ToBoolean,
|
|
31
|
+
isECMAScriptFunctionObject,
|
|
32
|
+
type ECMAScriptFunctionObject,
|
|
33
|
+
Throw,
|
|
34
|
+
type FunctionObject,
|
|
35
|
+
} from '#self';
|
|
36
|
+
|
|
37
|
+
/** https://tc39.es/ecma262/#sec-environment-records */
|
|
38
|
+
export abstract class EnvironmentRecord {
|
|
39
|
+
readonly OuterEnv: EnvironmentRecord | null;
|
|
40
|
+
|
|
41
|
+
constructor(outerEnv: EnvironmentRecord | null) {
|
|
42
|
+
this.OuterEnv = outerEnv;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
abstract HasBinding(N: JSStringValue): ValueEvaluator<BooleanValue>;
|
|
46
|
+
|
|
47
|
+
abstract CreateMutableBinding(N: JSStringValue, D: BooleanValue): PlainEvaluator;
|
|
48
|
+
|
|
49
|
+
abstract CreateImmutableBinding(N: JSStringValue, S: BooleanValue): void;
|
|
50
|
+
|
|
51
|
+
abstract InitializeBinding(N: JSStringValue, V: Value): PlainEvaluator;
|
|
52
|
+
|
|
53
|
+
abstract SetMutableBinding(N: JSStringValue, V: Value, S: BooleanValue): PlainEvaluator;
|
|
54
|
+
|
|
55
|
+
abstract GetBindingValue(N: JSStringValue, S: BooleanValue): ValueEvaluator;
|
|
56
|
+
|
|
57
|
+
abstract DeleteBinding(N: JSStringValue): ValueEvaluator<BooleanValue>;
|
|
58
|
+
|
|
59
|
+
abstract HasThisBinding(): BooleanValue;
|
|
60
|
+
|
|
61
|
+
abstract HasSuperBinding(): BooleanValue;
|
|
62
|
+
|
|
63
|
+
abstract WithBaseObject(): ObjectValue | UndefinedValue;
|
|
64
|
+
|
|
65
|
+
// NON-SPEC
|
|
66
|
+
mark(m: GCMarker) {
|
|
67
|
+
m(this.OuterEnv);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
interface DeclarativeEnvironmentBinding {
|
|
72
|
+
readonly indirect: boolean;
|
|
73
|
+
initialized: boolean;
|
|
74
|
+
readonly mutable?: boolean;
|
|
75
|
+
readonly strict?: boolean;
|
|
76
|
+
readonly deletable?: boolean;
|
|
77
|
+
value?: Value | undefined;
|
|
78
|
+
|
|
79
|
+
mark(m: GCMarker): void;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
interface ModuleEnvironmentBinding extends DeclarativeEnvironmentBinding {
|
|
83
|
+
readonly target?: [AbstractModuleRecord, JSStringValue];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The deferred-reexports proposal refers to a "deferred initialization binding"
|
|
88
|
+
* but does not define a record structure for one.
|
|
89
|
+
*/
|
|
90
|
+
interface DeferredInitializationBinding extends ModuleEnvironmentBinding {
|
|
91
|
+
readonly initializationSteps: () => Value;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function isDeferredInitializationBinding(binding: ModuleEnvironmentBinding): binding is DeferredInitializationBinding {
|
|
95
|
+
return 'initializationSteps' in binding;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records */
|
|
99
|
+
export class DeclarativeEnvironmentRecord extends EnvironmentRecord {
|
|
100
|
+
readonly bindings = new JSStringMap<DeclarativeEnvironmentBinding>();
|
|
101
|
+
|
|
102
|
+
/** https://tc39.es/ecma262/#table-additional-fields-of-declarative-environment-records */
|
|
103
|
+
readonly DisposableResourceStack: DisposableResourceRecord[] = [];
|
|
104
|
+
|
|
105
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-hasbinding-n */
|
|
106
|
+
* HasBinding(N: JSStringValue) {
|
|
107
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
108
|
+
const envRec = this;
|
|
109
|
+
// 2. If envRec has a binding for the name that is the value of N, return true.
|
|
110
|
+
if (envRec.bindings.has(N)) {
|
|
111
|
+
return Value.true;
|
|
112
|
+
}
|
|
113
|
+
// 3. Return false.
|
|
114
|
+
return Value.false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-createmutablebinding-n-d */
|
|
118
|
+
* CreateMutableBinding(N: JSStringValue, D: BooleanValue) {
|
|
119
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
120
|
+
const envRec = this;
|
|
121
|
+
// 2. Assert: envRec does not already have a binding for N.
|
|
122
|
+
Assert(!envRec.bindings.has(N));
|
|
123
|
+
// 3. Create a mutable binding in envRec for N and record that it is uninitialized. If D
|
|
124
|
+
// is true, record that the newly created binding may be deleted by a subsequent
|
|
125
|
+
// DeleteBinding call.
|
|
126
|
+
this.bindings.set(N, {
|
|
127
|
+
indirect: false,
|
|
128
|
+
initialized: false,
|
|
129
|
+
mutable: true,
|
|
130
|
+
strict: undefined,
|
|
131
|
+
deletable: D === Value.true,
|
|
132
|
+
value: undefined,
|
|
133
|
+
mark(m: GCMarker) {
|
|
134
|
+
m(this.value);
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
// 4. Return NormalCompletion(empty).
|
|
138
|
+
return NormalCompletion(undefined);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-createimmutablebinding-n-s */
|
|
142
|
+
CreateImmutableBinding(N: JSStringValue, S: BooleanValue) {
|
|
143
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
144
|
+
const envRec = this;
|
|
145
|
+
// 2. Assert: envRec does not already have a binding for N.
|
|
146
|
+
Assert(!envRec.bindings.has(N));
|
|
147
|
+
// 3. Create an immutable binding in envRec for N and record that it is uninitialized. If
|
|
148
|
+
// S is true, record that the newly created binding is a strict binding.
|
|
149
|
+
this.bindings.set(N, {
|
|
150
|
+
indirect: false,
|
|
151
|
+
initialized: false,
|
|
152
|
+
mutable: false,
|
|
153
|
+
strict: S === Value.true,
|
|
154
|
+
deletable: false,
|
|
155
|
+
value: undefined,
|
|
156
|
+
mark(m) {
|
|
157
|
+
m(this.value);
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
// 4. Return NormalCompletion(empty).
|
|
161
|
+
return NormalCompletion(undefined);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-initializebinding-n-v */
|
|
165
|
+
* InitializeBinding(N: JSStringValue, V: Value) {
|
|
166
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
167
|
+
const envRec = this;
|
|
168
|
+
// 2. Assert: envRec must have an uninitialized binding for N.
|
|
169
|
+
const binding = envRec.bindings.get(N);
|
|
170
|
+
Assert(binding !== undefined && binding.initialized === false);
|
|
171
|
+
// 3. Set the bound value for N in envRec to V.
|
|
172
|
+
binding.value = V;
|
|
173
|
+
// 4. Record that the binding for N in envRec has been initialized.
|
|
174
|
+
binding.initialized = true;
|
|
175
|
+
// 5. Return NormalCompletion(empty).
|
|
176
|
+
return NormalCompletion(undefined);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-setmutablebinding-n-v-s */
|
|
180
|
+
* SetMutableBinding(N: JSStringValue, V: Value, S: BooleanValue): PlainEvaluator {
|
|
181
|
+
Assert(IsPropertyKey(N));
|
|
182
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
183
|
+
const envRec = this;
|
|
184
|
+
// 2. If envRec does not have a binding for N, then
|
|
185
|
+
if (!envRec.bindings.has(N)) {
|
|
186
|
+
// a. If S is true, throw a ReferenceError exception.
|
|
187
|
+
if (S === Value.true) {
|
|
188
|
+
return Throw.ReferenceError('$1 is not defined', N);
|
|
189
|
+
}
|
|
190
|
+
// b. Perform envRec.CreateMutableBinding(N, true).
|
|
191
|
+
yield* envRec.CreateMutableBinding(N, Value.true);
|
|
192
|
+
// c. Perform envRec.InitializeBinding(N, V).
|
|
193
|
+
yield* envRec.InitializeBinding(N, V);
|
|
194
|
+
// d. Return NormalCompletion(empty).
|
|
195
|
+
return NormalCompletion(undefined);
|
|
196
|
+
}
|
|
197
|
+
const binding = this.bindings.get(N)!;
|
|
198
|
+
// 3. If the binding for N in envRec is a strict binding, set S to true.
|
|
199
|
+
if (binding.strict === true) {
|
|
200
|
+
S = Value.true;
|
|
201
|
+
}
|
|
202
|
+
// 4. If the binding for N in envRec has not yet been initialized, throw a ReferenceError exception.
|
|
203
|
+
if (binding.initialized === false) {
|
|
204
|
+
return Throw.ReferenceError('$1 cannot be used before initialization', N);
|
|
205
|
+
}
|
|
206
|
+
// 5. Else if the binding for N in envRec is a mutable binding, change its bound value to V.
|
|
207
|
+
if (binding.mutable === true) {
|
|
208
|
+
binding.value = V;
|
|
209
|
+
} else {
|
|
210
|
+
// a. Assert: This is an attempt to change the value of an immutable binding.
|
|
211
|
+
// b. If S is true, throw a TypeError exception.
|
|
212
|
+
if (S === Value.true) {
|
|
213
|
+
return Throw.TypeError('Assignment to constant variable $1', N);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// 7. Return NormalCompletion(empty).
|
|
217
|
+
return NormalCompletion(undefined);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-getbindingvalue-n-s */
|
|
221
|
+
* GetBindingValue(N: JSStringValue, _S: BooleanValue): ValueEvaluator {
|
|
222
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
223
|
+
const envRec = this;
|
|
224
|
+
// 2. Assert: envRec has a binding for N.
|
|
225
|
+
const binding = envRec.bindings.get(N);
|
|
226
|
+
Assert(binding !== undefined);
|
|
227
|
+
// 3. If the binding for N in envRec is an uninitialized binding, throw a ReferenceError exception.
|
|
228
|
+
if (binding.initialized === false) {
|
|
229
|
+
return Throw.ReferenceError('$1 cannot be used before initialization', N);
|
|
230
|
+
}
|
|
231
|
+
// 4. Return the value currently bound to N in envRec.
|
|
232
|
+
return NormalCompletion(binding.value!);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-deletebinding-n */
|
|
236
|
+
* DeleteBinding(N: JSStringValue) {
|
|
237
|
+
// 1. Let envRec be the declarative Environment Record for which the method was invoked.
|
|
238
|
+
const envRec = this;
|
|
239
|
+
// 2. Assert: envRec has a binding for the name that is the value of N.
|
|
240
|
+
const binding = envRec.bindings.get(N);
|
|
241
|
+
Assert(binding !== undefined);
|
|
242
|
+
// 3. If the binding for N in envRec cannot be deleted, return false.
|
|
243
|
+
if (binding.deletable === false) {
|
|
244
|
+
return Value.false;
|
|
245
|
+
}
|
|
246
|
+
// 4. Remove the binding for N from envRec.
|
|
247
|
+
envRec.bindings.delete(N);
|
|
248
|
+
// 5. Return true.
|
|
249
|
+
return Value.true;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-hasthisbinding */
|
|
253
|
+
HasThisBinding(): BooleanValue {
|
|
254
|
+
// 1. Return false.
|
|
255
|
+
return Value.false;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-hassuperbinding */
|
|
259
|
+
HasSuperBinding(): BooleanValue {
|
|
260
|
+
// 1. Return false.
|
|
261
|
+
return Value.false;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/** https://tc39.es/ecma262/#sec-declarative-environment-records-withbaseobject */
|
|
265
|
+
WithBaseObject() {
|
|
266
|
+
// 1. Return undefined.
|
|
267
|
+
return Value.undefined;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// NON-SPEC
|
|
271
|
+
override mark(m: GCMarker) {
|
|
272
|
+
super.mark(m);
|
|
273
|
+
m(this.bindings);
|
|
274
|
+
for (const resource of this.DisposableResourceStack) {
|
|
275
|
+
m(resource.ResourceValue);
|
|
276
|
+
m(resource.DisposeMethod);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/** https://tc39.es/ecma262/#sec-function-environment-records */
|
|
282
|
+
export class FunctionEnvironmentRecord extends DeclarativeEnvironmentRecord {
|
|
283
|
+
/** https://tc39.es/ecma262/#sec-newfunctionenvironment */
|
|
284
|
+
constructor(F: ECMAScriptFunctionObject, newTarget: UndefinedValue | ObjectValue) {
|
|
285
|
+
// 1. Assert: F is an ECMAScript function.
|
|
286
|
+
Assert(isECMAScriptFunctionObject(F));
|
|
287
|
+
// 2. Assert: Type(newTarget) is Undefined or Object.
|
|
288
|
+
Assert(newTarget instanceof UndefinedValue || newTarget instanceof ObjectValue);
|
|
289
|
+
// 3. Let env be a new function Environment Record containing no bindings.
|
|
290
|
+
super(F.Environment);
|
|
291
|
+
// 4. Set env.[[FunctionObject]] to F.
|
|
292
|
+
this.FunctionObject = F;
|
|
293
|
+
// 5. If F.[[ThisMode]] is lexical, set env.[[ThisBindingStatus]] to lexical.
|
|
294
|
+
|
|
295
|
+
if (F.ThisMode === 'lexical') {
|
|
296
|
+
this.ThisBindingStatus = 'lexical';
|
|
297
|
+
} else { // 6. Else, set env.[[ThisBindingStatus]] to uninitialized.
|
|
298
|
+
this.ThisBindingStatus = 'uninitialized';
|
|
299
|
+
}
|
|
300
|
+
// 7. Set env.[[NewTarget]] to newTarget.
|
|
301
|
+
this.NewTarget = newTarget;
|
|
302
|
+
// 8. Set env.[[OuterEnv]] to F.[[Environment]].
|
|
303
|
+
// 9. Return env.
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
protected ThisValue!: Value;
|
|
307
|
+
|
|
308
|
+
ThisBindingStatus: 'lexical' | 'uninitialized' | 'initialized';
|
|
309
|
+
|
|
310
|
+
readonly FunctionObject: ECMAScriptFunctionObject;
|
|
311
|
+
|
|
312
|
+
readonly NewTarget: UndefinedValue | ObjectValue;
|
|
313
|
+
|
|
314
|
+
/** https://tc39.es/ecma262/#sec-bindthisvalue */
|
|
315
|
+
BindThisValue(V: Value) {
|
|
316
|
+
// 1. Let envRec be the function Environment Record for which the method was invoked.
|
|
317
|
+
const envRec = this;
|
|
318
|
+
// 2. Assert: envRec.[[ThisBindingStatus]] is not lexical.
|
|
319
|
+
Assert(envRec.ThisBindingStatus !== 'lexical');
|
|
320
|
+
// 3. If envRec.[[ThisBindingStatus]] is initialized, throw a ReferenceError exception.
|
|
321
|
+
if (envRec.ThisBindingStatus === 'initialized') {
|
|
322
|
+
return Throw.ReferenceError('this has already been initialized');
|
|
323
|
+
}
|
|
324
|
+
// 4. Set envRec.[[ThisValue]] to V.
|
|
325
|
+
envRec.ThisValue = V;
|
|
326
|
+
// 5. Set envRec.[[ThisBindingStatus]] to initialized.
|
|
327
|
+
envRec.ThisBindingStatus = 'initialized';
|
|
328
|
+
// 6. Return V.
|
|
329
|
+
return V;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/** https://tc39.es/ecma262/#sec-function-environment-records-hasthisbinding */
|
|
333
|
+
override HasThisBinding() {
|
|
334
|
+
// 1. Let envRec be the function Environment Record for which the method was invoked.
|
|
335
|
+
const envRec = this;
|
|
336
|
+
// 2. If envRec.[[ThisBindingStatus]] is lexical, return false; otherwise, return true.
|
|
337
|
+
if (envRec.ThisBindingStatus === 'lexical') {
|
|
338
|
+
return Value.false;
|
|
339
|
+
} else {
|
|
340
|
+
return Value.true;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/** https://tc39.es/ecma262/#sec-function-environment-records-hassuperbinding */
|
|
345
|
+
override HasSuperBinding() {
|
|
346
|
+
const envRec = this;
|
|
347
|
+
// 1. If envRec.[[ThisBindingStatus]] is lexical, return false.
|
|
348
|
+
if (envRec.ThisBindingStatus === 'lexical') {
|
|
349
|
+
return Value.false;
|
|
350
|
+
}
|
|
351
|
+
// 2. If envRec.[[FunctionObject]].[[HomeObject]] has the value undefined, return false; otherwise, return true.
|
|
352
|
+
if (envRec.FunctionObject.HomeObject === Value.undefined) {
|
|
353
|
+
return Value.false;
|
|
354
|
+
} else {
|
|
355
|
+
return Value.true;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/** https://tc39.es/ecma262/#sec-function-environment-records-getthisbinding */
|
|
360
|
+
GetThisBinding() {
|
|
361
|
+
// 1. Let envRec be the function Environment Record for which the method was invoked.
|
|
362
|
+
const envRec = this;
|
|
363
|
+
// 2. Assert: envRec.[[ThisBindingStatus]] is not lexical.
|
|
364
|
+
Assert(envRec.ThisBindingStatus !== 'lexical');
|
|
365
|
+
// 3. If envRec.[[ThisBindingStatus]] is uninitialized, throw a ReferenceError exception.
|
|
366
|
+
if (envRec.ThisBindingStatus === 'uninitialized') {
|
|
367
|
+
return Throw.ReferenceError('this has not been initialized');
|
|
368
|
+
}
|
|
369
|
+
// 4. Return envRec.[[ThisValue]].
|
|
370
|
+
return envRec.ThisValue;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/** https://tc39.es/ecma262/#sec-getsuperbase */
|
|
374
|
+
GetSuperBase() {
|
|
375
|
+
const envRec = this;
|
|
376
|
+
// 1. Let home be envRec.[[FunctionObject]].[[HomeObject]].
|
|
377
|
+
const home = envRec.FunctionObject.HomeObject;
|
|
378
|
+
// 2. If home has the value undefined, return undefined.
|
|
379
|
+
if (home === Value.undefined) {
|
|
380
|
+
return Value.undefined;
|
|
381
|
+
}
|
|
382
|
+
// 3. Assert: Type(home) is Object.
|
|
383
|
+
Assert(home instanceof ObjectValue);
|
|
384
|
+
// 4. Return ! home.[[GetPrototypeOf]]().
|
|
385
|
+
return X(home.GetPrototypeOf());
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
override mark(m: GCMarker) {
|
|
389
|
+
super.mark(m);
|
|
390
|
+
m(this.ThisValue);
|
|
391
|
+
m(this.FunctionObject);
|
|
392
|
+
m(this.NewTarget);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/** https://tc39.es/ecma262/#sec-module-environment-records */
|
|
397
|
+
export class ModuleEnvironmentRecord extends DeclarativeEnvironmentRecord {
|
|
398
|
+
declare readonly bindings: JSStringMap<ModuleEnvironmentBinding>;
|
|
399
|
+
|
|
400
|
+
/** https://tc39.es/ecma262/#sec-module-environment-records-getbindingvalue-n-s */
|
|
401
|
+
override* GetBindingValue(N: JSStringValue, S: BooleanValue): ValueEvaluator {
|
|
402
|
+
// 1. Assert: S is true.
|
|
403
|
+
Assert(S === Value.true);
|
|
404
|
+
// 2. Let envRec be the module Environment Record for which the method was invoked.
|
|
405
|
+
const envRec = this;
|
|
406
|
+
// 3. Assert: envRec has a binding for N.
|
|
407
|
+
const binding = envRec.bindings.get(N);
|
|
408
|
+
Assert(binding !== undefined);
|
|
409
|
+
// 4. If the binding for N is an indirect binding, then
|
|
410
|
+
if (binding.indirect === true) {
|
|
411
|
+
// a. Let M and N2 be the indirection values provided when this binding for N was created.
|
|
412
|
+
const [M, N2] = binding.target!;
|
|
413
|
+
// b.Let targetEnv be M.[[Environment]].
|
|
414
|
+
const targetEnv = M.Environment;
|
|
415
|
+
// c. If targetEnv is undefined, throw a ReferenceError exception.
|
|
416
|
+
if (!targetEnv) {
|
|
417
|
+
return Throw.ReferenceError('$1 is not defined', N);
|
|
418
|
+
}
|
|
419
|
+
// d. Return ? targetEnv.GetBindingValue(N2, true).
|
|
420
|
+
return yield* targetEnv.GetBindingValue(N2, Value.true);
|
|
421
|
+
}
|
|
422
|
+
// 5. If the binding for N is an uninitialized deferred initialization binding, initialize it.
|
|
423
|
+
if (binding.initialized === false) {
|
|
424
|
+
if (isDeferredInitializationBinding(binding)) {
|
|
425
|
+
const value = binding.initializationSteps();
|
|
426
|
+
yield* envRec.InitializeBinding(N, value);
|
|
427
|
+
} else {
|
|
428
|
+
return Throw.ReferenceError('$1 cannot be used before initialization', N);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
// 6. Return the value currently bound to N in envRec.
|
|
432
|
+
return NormalCompletion(binding.value!);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/** https://tc39.es/ecma262/#sec-module-environment-records-deletebinding-n */
|
|
436
|
+
override DeleteBinding(): never {
|
|
437
|
+
Assert(false, 'This method is never invoked. See #sec-delete-operator-static-semantics-early-errors');
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/** https://tc39.es/ecma262/#sec-module-environment-records-hasthisbinding */
|
|
441
|
+
override HasThisBinding() {
|
|
442
|
+
// Return true.
|
|
443
|
+
return Value.true;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/** https://tc39.es/ecma262/#sec-module-environment-records-getthisbinding */
|
|
447
|
+
GetThisBinding() {
|
|
448
|
+
// Return undefined.
|
|
449
|
+
return Value.undefined;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/** https://tc39.es/ecma262/#sec-createimportbinding */
|
|
453
|
+
CreateImportBinding(N: JSStringValue, M: AbstractModuleRecord, N2: JSStringValue) {
|
|
454
|
+
// 1. Let envRec be the module Environment Record for which the method was invoked.
|
|
455
|
+
const envRec = this;
|
|
456
|
+
// 2. Assert: envRec does not already have a binding for N.
|
|
457
|
+
Assert(X(envRec.HasBinding(N)) === Value.false);
|
|
458
|
+
// 3. Assert: M is a Module Record.
|
|
459
|
+
Assert(M instanceof AbstractModuleRecord);
|
|
460
|
+
// 4. Assert: When M.[[Environment]] is instantiated it will have a direct binding for N2.
|
|
461
|
+
// 5. Create an immutable indirect binding in envRec for N that references M and N2 as its target binding and record that the binding is initialized.
|
|
462
|
+
envRec.bindings.set(N, {
|
|
463
|
+
indirect: true,
|
|
464
|
+
target: [M, N2],
|
|
465
|
+
initialized: true,
|
|
466
|
+
mark(m: GCMarker) {
|
|
467
|
+
m(this.target?.[0]);
|
|
468
|
+
m(this.target?.[1]);
|
|
469
|
+
},
|
|
470
|
+
});
|
|
471
|
+
// 6. Return NormalCompletion(empty).
|
|
472
|
+
return NormalCompletion(undefined);
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/** https://tc39.es/proposal-deferred-reexports/#sec-createdeferredinitializationbinding */
|
|
476
|
+
CreateDeferredInitializationBinding(N: JSStringValue, initializationSteps: () => Value) {
|
|
477
|
+
Assert(X(this.HasBinding(N)) === Value.false);
|
|
478
|
+
// 2. Create an immutable deferred initialization binding in envRec for name whose deferred initialization steps is initializationSteps, and record that the binding is uninitialized and that it is a strict binding.
|
|
479
|
+
const binding: DeferredInitializationBinding = {
|
|
480
|
+
indirect: false,
|
|
481
|
+
initialized: false,
|
|
482
|
+
mutable: false,
|
|
483
|
+
strict: true,
|
|
484
|
+
deletable: false,
|
|
485
|
+
initializationSteps,
|
|
486
|
+
mark(m) {
|
|
487
|
+
m(this.value);
|
|
488
|
+
},
|
|
489
|
+
};
|
|
490
|
+
this.bindings.set(N, binding);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records */
|
|
495
|
+
export class ObjectEnvironmentRecord extends EnvironmentRecord {
|
|
496
|
+
BindingObject: ObjectValue;
|
|
497
|
+
|
|
498
|
+
IsWithEnvironment: BooleanValue;
|
|
499
|
+
|
|
500
|
+
/** https://tc39.es/ecma262/#sec-newobjectenvironment */
|
|
501
|
+
constructor(O: ObjectValue, W: BooleanValue, E: EnvironmentRecord | null) {
|
|
502
|
+
super(E);
|
|
503
|
+
this.BindingObject = O;
|
|
504
|
+
this.IsWithEnvironment = W;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-hasbinding-n */
|
|
508
|
+
* HasBinding(N: JSStringValue): ValueEvaluator<BooleanValue> {
|
|
509
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
510
|
+
const envRec = this;
|
|
511
|
+
// 2. Let bindings be the binding object for envRec.
|
|
512
|
+
const bindings = envRec.BindingObject;
|
|
513
|
+
// 3. Let foundBinding be ? HasProperty(bindings, N).
|
|
514
|
+
const foundBinding = Q(yield* HasProperty(bindings, N));
|
|
515
|
+
// 4. If foundBinding is false, return false.
|
|
516
|
+
if (foundBinding === Value.false) {
|
|
517
|
+
return Value.false;
|
|
518
|
+
}
|
|
519
|
+
// 5. If the IsWithEnvironment flag of envRec i s false, return true.
|
|
520
|
+
if (envRec.IsWithEnvironment === Value.false) {
|
|
521
|
+
return Value.true;
|
|
522
|
+
}
|
|
523
|
+
// 6. Let unscopables be ? Get(bindings, @@unscopables).
|
|
524
|
+
const unscopables = Q(yield* Get(bindings, wellKnownSymbols.unscopables));
|
|
525
|
+
// 7. If Type(unscopables) is Object, then
|
|
526
|
+
if (unscopables instanceof ObjectValue) {
|
|
527
|
+
// a. Let blocked be ! ToBoolean(? Get(unscopables, N)).
|
|
528
|
+
const blocked = X(ToBoolean(Q(yield* Get(unscopables, N))));
|
|
529
|
+
// b. If blocked is true, return false.
|
|
530
|
+
if (blocked === Value.true) {
|
|
531
|
+
return Value.false;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
// 8. Return true.
|
|
535
|
+
return Value.true;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-createmutablebinding-n-d */
|
|
539
|
+
* CreateMutableBinding(N: JSStringValue, D: BooleanValue): PlainEvaluator {
|
|
540
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
541
|
+
const envRec = this;
|
|
542
|
+
// 2. Let envRec be the object Environment Record for which the method was invoked.
|
|
543
|
+
const bindings = envRec.BindingObject;
|
|
544
|
+
// 3. Return ? DefinePropertyOrThrow(bindings, N, PropertyDescriptor { [[Value]]: undefined, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: D }).
|
|
545
|
+
Q(yield* DefinePropertyOrThrow(bindings, N, Descriptor({
|
|
546
|
+
Value: Value.undefined,
|
|
547
|
+
Writable: Value.true,
|
|
548
|
+
Enumerable: Value.true,
|
|
549
|
+
Configurable: D,
|
|
550
|
+
})));
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-createimmutablebinding-n-s */
|
|
554
|
+
CreateImmutableBinding(_N: JSStringValue, _S: BooleanValue) {
|
|
555
|
+
Assert(false, 'CreateImmutableBinding called on an Object Environment Record');
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-initializebinding-n-v */
|
|
559
|
+
* InitializeBinding(N: JSStringValue, V: Value): PlainEvaluator {
|
|
560
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
561
|
+
const envRec = this;
|
|
562
|
+
// 2. Assert: envRec must have an uninitialized binding for N.
|
|
563
|
+
// 3. Record that the binding for N in envRec has been initialized.
|
|
564
|
+
// 4. Return ? envRec.SetMutableBinding(N, V, false).
|
|
565
|
+
Q(yield* envRec.SetMutableBinding(N, V, Value.false));
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-setmutablebinding-n-v-s */
|
|
569
|
+
* SetMutableBinding(N: JSStringValue, V: Value, S: BooleanValue): PlainEvaluator {
|
|
570
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
571
|
+
const envRec = this;
|
|
572
|
+
// 2. Let bindings be the binding object for envRec.
|
|
573
|
+
const bindings = envRec.BindingObject;
|
|
574
|
+
// 3. Let stillExists be ? HasProperty(bindings, N).
|
|
575
|
+
const stillExists = Q(yield* HasProperty(bindings, N));
|
|
576
|
+
// 4. If stillExists is false and S is true, throw a ReferenceError exception.
|
|
577
|
+
if (stillExists === Value.false && S === Value.true) {
|
|
578
|
+
return Throw.ReferenceError('$1 is not defined', N);
|
|
579
|
+
}
|
|
580
|
+
// 5. Return ? Set(bindings, N, V, S).
|
|
581
|
+
Q(yield* Set(bindings, N, V, S));
|
|
582
|
+
return undefined;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-getbindingvalue-n-s */
|
|
586
|
+
* GetBindingValue(N: JSStringValue, S: BooleanValue): ValueEvaluator {
|
|
587
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
588
|
+
const envRec = this;
|
|
589
|
+
// 2. Let bindings be the binding object for envRec.
|
|
590
|
+
const bindings = envRec.BindingObject;
|
|
591
|
+
// 3. Let value be ? HasProperty(bindings, N).
|
|
592
|
+
const value = Q(yield* HasProperty(bindings, N));
|
|
593
|
+
// 4. If value is false, then
|
|
594
|
+
if (value === Value.false) {
|
|
595
|
+
// a. If S is false, return the value undefined; otherwise throw a ReferenceError exception.
|
|
596
|
+
if (S === Value.false) {
|
|
597
|
+
return NormalCompletion(Value.undefined);
|
|
598
|
+
} else {
|
|
599
|
+
return Throw.ReferenceError('$1 is not defined', N);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
// 5. Return Get(bindings, N).
|
|
603
|
+
return yield* Get(bindings, N);
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-deletebinding-n */
|
|
607
|
+
* DeleteBinding(N: JSStringValue): ValueEvaluator<BooleanValue> {
|
|
608
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
609
|
+
const envRec = this;
|
|
610
|
+
// 2. Let bindings be the binding object for envRec.
|
|
611
|
+
const bindings = envRec.BindingObject;
|
|
612
|
+
// 3. Return ? bindings.[[Delete]](N).
|
|
613
|
+
return Q(yield* bindings.Delete(N));
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-hasthisbinding */
|
|
617
|
+
HasThisBinding() {
|
|
618
|
+
// 1. Return false.
|
|
619
|
+
return Value.false;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-hassuperbinding */
|
|
623
|
+
HasSuperBinding() {
|
|
624
|
+
// 1. Return falase.
|
|
625
|
+
return Value.false;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
/** https://tc39.es/ecma262/#sec-object-environment-records-withbaseobject */
|
|
629
|
+
WithBaseObject() {
|
|
630
|
+
// 1. Let envRec be the object Environment Record for which the method was invoked.
|
|
631
|
+
const envRec = this;
|
|
632
|
+
// 2. If the IsWithEnvironment flag of envRec is true, return the binding object for envRec.
|
|
633
|
+
if (envRec.IsWithEnvironment === Value.true) {
|
|
634
|
+
return envRec.BindingObject;
|
|
635
|
+
}
|
|
636
|
+
// 3. Otherwise, return undefined.
|
|
637
|
+
return Value.undefined;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
// NON-SPEC
|
|
641
|
+
override mark(m: GCMarker) {
|
|
642
|
+
// TODO(ts): this function does not call super.mark(). is it a mistake?
|
|
643
|
+
m(this.BindingObject);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records */
|
|
648
|
+
export class GlobalEnvironmentRecord extends EnvironmentRecord {
|
|
649
|
+
readonly ObjectRecord: ObjectEnvironmentRecord;
|
|
650
|
+
|
|
651
|
+
readonly GlobalThisValue: ObjectValue;
|
|
652
|
+
|
|
653
|
+
readonly DeclarativeRecord: DeclarativeEnvironmentRecord;
|
|
654
|
+
|
|
655
|
+
/** https://tc39.es/ecma262/#sec-newglobalenvironment */
|
|
656
|
+
constructor(G: ObjectValue, thisValue: ObjectValue) {
|
|
657
|
+
// 1. Let objRec be NewObjectEnvironment(G, false, null).
|
|
658
|
+
const objRec = new ObjectEnvironmentRecord(G, Value.false, null);
|
|
659
|
+
// 2. Let dclRec be a new declarative Environment Record containing no bindings.
|
|
660
|
+
const dclRec = new DeclarativeEnvironmentRecord(null);
|
|
661
|
+
// 3. Let env be a new global Environment Record.
|
|
662
|
+
super(null);
|
|
663
|
+
// 4. Set env.[[ObjectRecord]] to objRec.
|
|
664
|
+
this.ObjectRecord = objRec;
|
|
665
|
+
// 5. Set env.[[GlobalThisValue]] to thisValue.
|
|
666
|
+
this.GlobalThisValue = thisValue;
|
|
667
|
+
// 6. Set env.[[DeclarativeRecord]] to dclRec.
|
|
668
|
+
this.DeclarativeRecord = dclRec;
|
|
669
|
+
// 8. Set env.[[OuterEnv]] to null.
|
|
670
|
+
// 9. Return env.
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-hasbinding-n */
|
|
674
|
+
* HasBinding(N: JSStringValue) {
|
|
675
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
676
|
+
const envRec = this;
|
|
677
|
+
// 2. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
678
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
679
|
+
// 3. If DclRec.HasBinding(N) is true, return true.
|
|
680
|
+
if ((yield* DclRec.HasBinding(N)) === Value.true) {
|
|
681
|
+
return Value.true;
|
|
682
|
+
}
|
|
683
|
+
// 4. If DclRec.HasBinding(N) is true, return true.
|
|
684
|
+
const ObjRec = envRec.ObjectRecord;
|
|
685
|
+
// 5. Let ObjRec be envRec.[[ObjectRecord]].
|
|
686
|
+
return yield* ObjRec.HasBinding(N);
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-createmutablebinding-n-d */
|
|
690
|
+
* CreateMutableBinding(N: JSStringValue, D: BooleanValue) {
|
|
691
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
692
|
+
const envRec = this;
|
|
693
|
+
// 2. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
694
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
695
|
+
// 3. If DclRec.HasBinding(N) is true, throw a TypeError exception.
|
|
696
|
+
if ((yield* DclRec.HasBinding(N)) === Value.true) {
|
|
697
|
+
return Throw.TypeError('$1 is already declared', N);
|
|
698
|
+
}
|
|
699
|
+
// 4. Return DclRec.CreateMutableBinding(N, D).
|
|
700
|
+
return yield* DclRec.CreateMutableBinding(N, D);
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-createimmutablebinding-n-s */
|
|
704
|
+
CreateImmutableBinding(N: JSStringValue, S: BooleanValue) {
|
|
705
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
706
|
+
const envRec = this;
|
|
707
|
+
// 2. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
708
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
709
|
+
// 3. If DclRec.HasBinding(N) is true, throw a TypeError exception.
|
|
710
|
+
if (X(DclRec.HasBinding(N)) === Value.true) {
|
|
711
|
+
return Throw.TypeError('$1 is already declared', N);
|
|
712
|
+
}
|
|
713
|
+
// Return DclRec.CreateImmutableBinding(N, S).
|
|
714
|
+
return DclRec.CreateImmutableBinding(N, S);
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-initializebinding-n-v */
|
|
718
|
+
* InitializeBinding(N: JSStringValue, V: Value) {
|
|
719
|
+
const envRec = this;
|
|
720
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
721
|
+
if (X(DclRec.HasBinding(N)) === Value.true) {
|
|
722
|
+
return X(DclRec.InitializeBinding(N, V));
|
|
723
|
+
}
|
|
724
|
+
// 4. Assert: If the binding exists, it must be in the object Environment Record.
|
|
725
|
+
// 5. Let ObjRec be envRec.[[ObjectRecord]].
|
|
726
|
+
const ObjRec = envRec.ObjectRecord;
|
|
727
|
+
// 6. Return ? ObjRec.InitializeBinding(N, V).
|
|
728
|
+
return yield* ObjRec.InitializeBinding(N, V);
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-setmutablebinding-n-v-s */
|
|
732
|
+
* SetMutableBinding(N: JSStringValue, V: Value, S: BooleanValue): PlainEvaluator {
|
|
733
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
734
|
+
const envRec = this;
|
|
735
|
+
// 2. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
736
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
737
|
+
// 3. If DclRec.HasBinding(N) is true, then
|
|
738
|
+
if ((yield* DclRec.HasBinding(N)) === Value.true) {
|
|
739
|
+
// a. Return DclRec.SetMutableBinding(N, V, S).
|
|
740
|
+
return yield* DclRec.SetMutableBinding(N, V, S);
|
|
741
|
+
}
|
|
742
|
+
// 4. Let ObjRec be envRec.[[ObjectRecord]].
|
|
743
|
+
const ObjRec = envRec.ObjectRecord;
|
|
744
|
+
// 5. Return ? ObjRec.SetMutableBinding(N, V, S).
|
|
745
|
+
Q(yield* ObjRec.SetMutableBinding(N, V, S));
|
|
746
|
+
return undefined;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-getbindingvalue-n-s */
|
|
750
|
+
* GetBindingValue(N: JSStringValue, S: BooleanValue): ValueEvaluator {
|
|
751
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
752
|
+
const envRec = this;
|
|
753
|
+
// 2. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
754
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
755
|
+
// 3. If DclRec.HasBinding(N) is true, then
|
|
756
|
+
if ((yield* DclRec.HasBinding(N)) === Value.true) {
|
|
757
|
+
// a. Return DclRec.GetBindingValue(N, S).
|
|
758
|
+
return yield* DclRec.GetBindingValue(N, S);
|
|
759
|
+
}
|
|
760
|
+
// 4. Let ObjRec be envRec.[[ObjectRecord]].
|
|
761
|
+
const ObjRec = envRec.ObjectRecord;
|
|
762
|
+
// 5. Return ObjRec.GetBindingValue(N, S).
|
|
763
|
+
return yield* ObjRec.GetBindingValue(N, S);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-deletebinding-n */
|
|
767
|
+
* DeleteBinding(N: JSStringValue): PlainEvaluator<BooleanValue> {
|
|
768
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
769
|
+
const envRec = this;
|
|
770
|
+
// 2. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
771
|
+
const DclRec = this.DeclarativeRecord;
|
|
772
|
+
// 3. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
773
|
+
if ((yield* DclRec.HasBinding(N)) === Value.true) {
|
|
774
|
+
// a. Return DclRec.DeleteBinding(N).
|
|
775
|
+
return Q(yield* DclRec.DeleteBinding(N));
|
|
776
|
+
}
|
|
777
|
+
// 4. Let ObjRec be envRec.[[ObjectRecord]].
|
|
778
|
+
const ObjRec = envRec.ObjectRecord;
|
|
779
|
+
// 5. Let globalObject be the binding object for ObjRec.
|
|
780
|
+
const globalObject = ObjRec.BindingObject;
|
|
781
|
+
// 6. Let existingProp be ? HasOwnProperty(globalObject, N).
|
|
782
|
+
const existingProp = Q(yield* HasOwnProperty(globalObject, N));
|
|
783
|
+
// 7. If existingProp is true, then
|
|
784
|
+
if (existingProp === Value.true) {
|
|
785
|
+
// a. Return ? ObjRec.DeleteBinding(N).
|
|
786
|
+
return Q(yield* ObjRec.DeleteBinding(N));
|
|
787
|
+
}
|
|
788
|
+
// 8. Return true.
|
|
789
|
+
return Value.true;
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-hasthisbinding */
|
|
793
|
+
HasThisBinding() {
|
|
794
|
+
// Return true.
|
|
795
|
+
return Value.true;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-hassuperbinding */
|
|
799
|
+
HasSuperBinding() {
|
|
800
|
+
// 1. Return false.
|
|
801
|
+
return Value.false;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-withbaseobject */
|
|
805
|
+
WithBaseObject() {
|
|
806
|
+
// 1. Return undefined.
|
|
807
|
+
return Value.undefined;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
/** https://tc39.es/ecma262/#sec-global-environment-records-getthisbinding */
|
|
811
|
+
GetThisBinding() {
|
|
812
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
813
|
+
const envRec = this;
|
|
814
|
+
// 2. Return envRec.[[GlobalThisValue]].
|
|
815
|
+
return envRec.GlobalThisValue;
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
/** https://tc39.es/ecma262/#sec-haslexicaldeclaration */
|
|
819
|
+
* HasLexicalDeclaration(N: JSStringValue) {
|
|
820
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
821
|
+
const envRec = this;
|
|
822
|
+
// 2. Let envRec be the global Environment Record for which the method was invoked.
|
|
823
|
+
const DclRec = envRec.DeclarativeRecord;
|
|
824
|
+
// 3. Let DclRec be envRec.[[DeclarativeRecord]].
|
|
825
|
+
return yield* DclRec.HasBinding(N);
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
/** https://tc39.es/ecma262/#sec-hasrestrictedglobalproperty */
|
|
829
|
+
* HasRestrictedGlobalProperty(N: JSStringValue): ValueEvaluator<BooleanValue> {
|
|
830
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
831
|
+
const envRec = this;
|
|
832
|
+
// 2. Let ObjRec be envRec.[[ObjectRecord]].
|
|
833
|
+
const ObjRec = envRec.ObjectRecord;
|
|
834
|
+
// 3. Let globalObject be the binding object for ObjRec.
|
|
835
|
+
const globalObject = ObjRec.BindingObject;
|
|
836
|
+
// 4. Let existingProp be ? globalObject.[[GetOwnProperty]](N).
|
|
837
|
+
const existingProp = Q(yield* globalObject.GetOwnProperty(N));
|
|
838
|
+
// 5. If existingProp is undefined, return false.
|
|
839
|
+
if (existingProp instanceof UndefinedValue) {
|
|
840
|
+
return Value.false;
|
|
841
|
+
}
|
|
842
|
+
// 6. If existingProp.[[Configurable]] is true, return false.
|
|
843
|
+
if (existingProp.Configurable === Value.true) {
|
|
844
|
+
return Value.false;
|
|
845
|
+
}
|
|
846
|
+
// Return true.
|
|
847
|
+
return Value.true;
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/** https://tc39.es/ecma262/#sec-candeclareglobalvar */
|
|
851
|
+
* CanDeclareGlobalVar(N: JSStringValue): ValueEvaluator<BooleanValue> {
|
|
852
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
853
|
+
const envRec = this;
|
|
854
|
+
// 2. Let ObjRec be envRec.[[ObjectRecord]].
|
|
855
|
+
const ObjRec = envRec.ObjectRecord;
|
|
856
|
+
// 3. Let globalObject be the binding object for ObjRec.
|
|
857
|
+
const globalObject = ObjRec.BindingObject;
|
|
858
|
+
// 4. Let hasProperty be ? HasOwnProperty(globalObject, N).
|
|
859
|
+
const hasProperty = Q(yield* HasOwnProperty(globalObject, N));
|
|
860
|
+
// 5. If hasProperty is true, return true.
|
|
861
|
+
if (hasProperty === Value.true) {
|
|
862
|
+
return Value.true;
|
|
863
|
+
}
|
|
864
|
+
// 6. Return ? IsExtensible(globalObject).
|
|
865
|
+
return Q(yield* IsExtensible(globalObject));
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
/** https://tc39.es/ecma262/#sec-candeclareglobalfunction */
|
|
869
|
+
* CanDeclareGlobalFunction(N: JSStringValue): ValueEvaluator<BooleanValue> {
|
|
870
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
871
|
+
const envRec = this;
|
|
872
|
+
// 2. Let ObjRec be envRec.[[ObjectRecord]].
|
|
873
|
+
const ObjRec = envRec.ObjectRecord;
|
|
874
|
+
// 3. Let globalObject be the binding object for ObjRec.
|
|
875
|
+
const globalObject = ObjRec.BindingObject;
|
|
876
|
+
// 4. Let existingProp be ? globalObject.[[GetOwnProperty]](N).
|
|
877
|
+
const existingProp = Q(yield* globalObject.GetOwnProperty(N));
|
|
878
|
+
// 5. If existingProp is undefined, return ? IsExtensible(globalObject).
|
|
879
|
+
if (existingProp instanceof UndefinedValue) {
|
|
880
|
+
return Q(yield* IsExtensible(globalObject));
|
|
881
|
+
}
|
|
882
|
+
// 6. If existingProp.[[Configurable]] is true, return true.
|
|
883
|
+
if (existingProp.Configurable === Value.true) {
|
|
884
|
+
return Value.true;
|
|
885
|
+
}
|
|
886
|
+
// 7. If IsDataDescriptor(existingProp) is true and existingProp has attribute values
|
|
887
|
+
// { [[Writable]]: true, [[Enumerable]]: true }, return true.
|
|
888
|
+
if (IsDataDescriptor(existingProp) === true
|
|
889
|
+
&& existingProp.Writable === Value.true
|
|
890
|
+
&& existingProp.Enumerable === Value.true) {
|
|
891
|
+
return Value.true;
|
|
892
|
+
}
|
|
893
|
+
// 8. Return false.
|
|
894
|
+
return Value.false;
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
/** https://tc39.es/ecma262/#sec-createglobalvarbinding */
|
|
898
|
+
* CreateGlobalVarBinding(N: JSStringValue, D: BooleanValue): PlainEvaluator {
|
|
899
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
900
|
+
const envRec = this;
|
|
901
|
+
// 2. Let ObjRec be envRec.[[ObjectRecord]].
|
|
902
|
+
const ObjRec = envRec.ObjectRecord;
|
|
903
|
+
// 3. Let globalObject be the binding object for ObjRec.
|
|
904
|
+
const globalObject = ObjRec.BindingObject;
|
|
905
|
+
// 4. Let hasProperty be ? HasOwnProperty(globalObject, N).
|
|
906
|
+
const hasProperty = Q(yield* HasOwnProperty(globalObject, N));
|
|
907
|
+
// 5. Let extensible be ? IsExtensible(globalObject).
|
|
908
|
+
const extensible = Q(yield* IsExtensible(globalObject));
|
|
909
|
+
// 6. If hasProperty is false and extensible is true, then
|
|
910
|
+
if (hasProperty === Value.false && extensible === Value.true) {
|
|
911
|
+
// a. Perform ? ObjRec.CreateMutableBinding(N, D).
|
|
912
|
+
Q(yield* ObjRec.CreateMutableBinding(N, D));
|
|
913
|
+
// b. Perform ? ObjRec.InitializeBinding(N, undefined).
|
|
914
|
+
Q(yield* ObjRec.InitializeBinding(N, Value.undefined));
|
|
915
|
+
}
|
|
916
|
+
// return NormalCompletion(empty).
|
|
917
|
+
return NormalCompletion(undefined);
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
/** https://tc39.es/ecma262/#sec-createglobalfunctionbinding */
|
|
921
|
+
* CreateGlobalFunctionBinding(N: JSStringValue, V: FunctionObject, D: BooleanValue): PlainEvaluator {
|
|
922
|
+
// 1. Let envRec be the global Environment Record for which the method was invoked.
|
|
923
|
+
const envRec = this;
|
|
924
|
+
// 2. Let ObjRec be envRec.[[ObjectRecord]].
|
|
925
|
+
const ObjRec = envRec.ObjectRecord;
|
|
926
|
+
// 3. Let globalObject be the binding object for ObjRec.
|
|
927
|
+
const globalObject = ObjRec.BindingObject;
|
|
928
|
+
// 4. Let existingProp be ? globalObject.[[GetOwnProperty]](N).
|
|
929
|
+
const existingProp = Q(yield* globalObject.GetOwnProperty(N));
|
|
930
|
+
// 5. If existingProp is undefined or existingProp.[[Configurable]] is true, then
|
|
931
|
+
let desc;
|
|
932
|
+
if (existingProp instanceof UndefinedValue || existingProp.Configurable === Value.true) {
|
|
933
|
+
// a. Let desc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: D }.
|
|
934
|
+
desc = Descriptor({
|
|
935
|
+
Value: V,
|
|
936
|
+
Writable: Value.true,
|
|
937
|
+
Enumerable: Value.true,
|
|
938
|
+
Configurable: D,
|
|
939
|
+
});
|
|
940
|
+
} else {
|
|
941
|
+
// a. Let desc be the PropertyDescriptor { [[Value]]: V }.
|
|
942
|
+
desc = Descriptor({
|
|
943
|
+
Value: V,
|
|
944
|
+
});
|
|
945
|
+
}
|
|
946
|
+
// 7. Perform ? DefinePropertyOrThrow(globalObject, N, desc).
|
|
947
|
+
Q(yield* DefinePropertyOrThrow(globalObject, N, desc));
|
|
948
|
+
// 8. Record that the binding for N in ObjRec has been initialized.
|
|
949
|
+
// 9. Perform ? Set(globalObject, N, V, false).
|
|
950
|
+
Q(yield* Set(globalObject, N, V, Value.false));
|
|
951
|
+
// 1. Return NormalCompletion(empty).
|
|
952
|
+
return NormalCompletion(undefined);
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
override mark(m: GCMarker) {
|
|
956
|
+
// TODO(ts): this function does not call super.mark(). is it a mistake?
|
|
957
|
+
m(this.ObjectRecord);
|
|
958
|
+
m(this.GlobalThisValue);
|
|
959
|
+
m(this.DeclarativeRecord);
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
export type EnvironmentRecordWithThisBinding = FunctionEnvironmentRecord | GlobalEnvironmentRecord | ModuleEnvironmentRecord;
|
|
964
|
+
|
|
965
|
+
/** https://tc39.es/ecma262/#sec-getidentifierreference */
|
|
966
|
+
export function* GetIdentifierReference(env: EnvironmentRecord | null, name: JSStringValue, strict: BooleanValue): PlainEvaluator<ReferenceRecord> {
|
|
967
|
+
// 1. If lex is the value null, then
|
|
968
|
+
if (env === null) {
|
|
969
|
+
// a. Return the Reference Record { [[Base]]: unresolvable, [[ReferencedName]]: name, [[Strict]]: strict, [[ThisValue]]: empty }.
|
|
970
|
+
return NormalCompletion(new ReferenceRecord({
|
|
971
|
+
Base: 'unresolvable',
|
|
972
|
+
ReferencedName: name,
|
|
973
|
+
Strict: strict,
|
|
974
|
+
ThisValue: undefined,
|
|
975
|
+
}));
|
|
976
|
+
}
|
|
977
|
+
// 2. Let exists be ? envRec.HasBinding(name).
|
|
978
|
+
const exists = Q(yield* env.HasBinding(name));
|
|
979
|
+
// 3. If exists is true, then
|
|
980
|
+
if (exists === Value.true) {
|
|
981
|
+
// a. Return the Reference Record { [[Base]]: env, [[ReferencedName]]: name, [[Strict]]: strict, [[ThisValue]]: empty }.
|
|
982
|
+
return NormalCompletion(new ReferenceRecord({
|
|
983
|
+
Base: env,
|
|
984
|
+
ReferencedName: name,
|
|
985
|
+
Strict: strict,
|
|
986
|
+
ThisValue: undefined,
|
|
987
|
+
}));
|
|
988
|
+
} else {
|
|
989
|
+
// a. Let outer be env.[[OuterEnv]].
|
|
990
|
+
const outer = env.OuterEnv;
|
|
991
|
+
// b. Return ? GetIdentifierReference(outer, name, strict).
|
|
992
|
+
return yield* GetIdentifierReference(outer, name, strict);
|
|
993
|
+
}
|
|
994
|
+
}
|