@scriptc/compiler 0.4.7 → 0.4.8
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/ambient/node-fallback/child_process.d.ts +71 -22
- package/ambient/node-fallback/crypto.d.ts +15 -7
- package/ambient/node-fallback/events.d.ts +23 -5
- package/ambient/node-fallback/fs.d.ts +3 -2
- package/ambient/node-fallback/http.d.ts +23 -17
- package/ambient/node-fallback/https.d.ts +5 -2
- package/ambient/node-fallback/net.d.ts +6 -0
- package/ambient/node-fallback/os.d.ts +11 -1
- package/ambient/node-fallback/path-posix.d.ts +6 -0
- package/ambient/node-fallback/path-win32.d.ts +5 -0
- package/ambient/node-fallback/path.d.ts +2 -0
- package/ambient/node-fallback/zlib.d.ts +31 -2
- package/ambient/scriptc-node-fallback.d.ts +37 -7
- package/ambient/scriptc.d.ts +7 -2
- package/dist/backend/executable-features.js +11 -3
- package/dist/backend/executable-features.js.map +1 -1
- package/dist/backend/library-pack.d.ts +6 -0
- package/dist/backend/library-pack.js +17 -6
- package/dist/backend/library-pack.js.map +1 -1
- package/dist/backend/library-pack.test.d.ts +1 -0
- package/dist/backend/library-pack.test.js +28 -0
- package/dist/backend/library-pack.test.js.map +1 -0
- package/dist/backend/linker.d.ts +9 -2
- package/dist/backend/linker.js +190 -32
- package/dist/backend/linker.js.map +1 -1
- package/dist/backend/lld.d.ts +8 -4
- package/dist/backend/lld.js +19 -13
- package/dist/backend/lld.js.map +1 -1
- package/dist/backend/lld.test.js +3 -1
- package/dist/backend/lld.test.js.map +1 -1
- package/dist/backend/llvm/alloc.d.ts +15 -2
- package/dist/backend/llvm/alloc.js +172 -36
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +69 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/arenas.d.ts +17 -4
- package/dist/backend/llvm/arenas.js +105 -10
- package/dist/backend/llvm/arenas.js.map +1 -1
- package/dist/backend/llvm/arenas.test.js +229 -0
- package/dist/backend/llvm/arenas.test.js.map +1 -1
- package/dist/backend/llvm/bytes-alias.js +10 -1
- package/dist/backend/llvm/bytes-alias.js.map +1 -1
- package/dist/backend/llvm/bytes-headers.js +6 -0
- package/dist/backend/llvm/bytes-headers.js.map +1 -1
- package/dist/backend/llvm/bytes-loop-versions.test.js +25 -0
- package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.js +10 -0
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/classes.d.ts +16 -9
- package/dist/backend/llvm/classes.js +142 -37
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/classes.test.js +42 -0
- package/dist/backend/llvm/classes.test.js.map +1 -1
- package/dist/backend/llvm/cpu-dispatch.d.ts +15 -5
- package/dist/backend/llvm/cpu-dispatch.js +31 -7
- package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +12 -3
- package/dist/backend/llvm/dyn.js +31 -7
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emit-function.js +67 -4
- package/dist/backend/llvm/emit-function.js.map +1 -1
- package/dist/backend/llvm/emit-module.js +90 -39
- package/dist/backend/llvm/emit-module.js.map +1 -1
- package/dist/backend/llvm/emit-module.test.d.ts +1 -0
- package/dist/backend/llvm/emit-module.test.js +52 -0
- package/dist/backend/llvm/emit-module.test.js.map +1 -0
- package/dist/backend/llvm/emit-statements.js +99 -15
- package/dist/backend/llvm/emit-statements.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +113 -8
- package/dist/backend/llvm/emitter.js +438 -67
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +31 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +19 -1
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +16 -1
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +18 -2
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +31 -10
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +31 -3
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.d.ts +1 -1
- package/dist/backend/llvm/expr-records.js +124 -56
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +17 -0
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/js-groups.d.ts +21 -0
- package/dist/backend/llvm/js-groups.js +277 -0
- package/dist/backend/llvm/js-groups.js.map +1 -0
- package/dist/backend/llvm/js-ic.d.ts +19 -1
- package/dist/backend/llvm/js-ic.js +96 -23
- package/dist/backend/llvm/js-ic.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +132 -1
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +33 -6
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +44 -3
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +69 -2
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +32 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-state.js +7 -2
- package/dist/backend/llvm/loop-state.js.map +1 -1
- package/dist/backend/llvm/map-entry-fusion.d.ts +8 -0
- package/dist/backend/llvm/map-entry-fusion.js +3 -3
- package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.js +6 -6
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.js +7 -6
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.test.js +4 -1
- package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
- package/dist/backend/llvm/receivers.js +3 -0
- package/dist/backend/llvm/receivers.js.map +1 -1
- package/dist/backend/llvm/record-entry-fusion.d.ts +32 -0
- package/dist/backend/llvm/record-entry-fusion.js +217 -0
- package/dist/backend/llvm/record-entry-fusion.js.map +1 -0
- package/dist/backend/llvm/record-results.d.ts +5 -2
- package/dist/backend/llvm/record-results.js +13 -12
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/record-views.js +12 -6
- package/dist/backend/llvm/record-views.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +1 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +3 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/region-ir.js +1 -0
- package/dist/backend/llvm/region-ir.js.map +1 -1
- package/dist/backend/llvm/region-sites.d.ts +18 -0
- package/dist/backend/llvm/region-sites.js +79 -1
- package/dist/backend/llvm/region-sites.js.map +1 -1
- package/dist/backend/llvm/runtime-registries.test.js +53 -6
- package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
- package/dist/backend/llvm/serialized-ir-emission.test.js +3 -1
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +33 -3
- package/dist/backend/llvm/shapes.js +183 -13
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/stack-objects.d.ts +1 -2
- package/dist/backend/llvm/stack-objects.js +8 -5
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +12 -0
- package/dist/backend/llvm/walkers.js +46 -2
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.js +12 -2
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/may-throw.test.js +13 -0
- package/dist/backend/may-throw.test.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +48 -8
- package/dist/backend/native/executable.js +55 -13
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/helper-identity-record.d.ts +11 -0
- package/dist/backend/native/helper-identity-record.js +76 -0
- package/dist/backend/native/helper-identity-record.js.map +1 -0
- package/dist/backend/native/helper-identity-record.test.d.ts +1 -0
- package/dist/backend/native/helper-identity-record.test.js +101 -0
- package/dist/backend/native/helper-identity-record.test.js.map +1 -0
- package/dist/backend/native/library.js +9 -1
- package/dist/backend/native/library.js.map +1 -1
- package/dist/backend/native/runtime-inputs.js +4 -1
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native/vendor.d.ts +1 -1
- package/dist/backend/native/vendor.js +1 -1
- package/dist/backend/native/vendor.js.map +1 -1
- package/dist/backend/native-codegen-core.d.ts +13 -10
- package/dist/backend/native-codegen-core.js +26 -13
- package/dist/backend/native-codegen-core.js.map +1 -1
- package/dist/backend/native-codegen.js +27 -8
- package/dist/backend/native-codegen.js.map +1 -1
- package/dist/backend/native-codegen.test.js +110 -14
- package/dist/backend/native-codegen.test.js.map +1 -1
- package/dist/backend/native-link-info-core.d.ts +37 -8
- package/dist/backend/native-link-info-core.js.map +1 -1
- package/dist/backend/runtime-pack-core.d.ts +17 -2
- package/dist/backend/runtime-pack-core.js +18 -3
- package/dist/backend/runtime-pack-core.js.map +1 -1
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack-targets.test.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +211 -2
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/backend/tree-classes.d.ts +42 -0
- package/dist/backend/tree-classes.js +723 -0
- package/dist/backend/tree-classes.js.map +1 -0
- package/dist/backend/tree-classes.test.d.ts +1 -0
- package/dist/backend/tree-classes.test.js +338 -0
- package/dist/backend/tree-classes.test.js.map +1 -0
- package/dist/backend/vendor-archives.d.ts +5 -1
- package/dist/backend/vendor-archives.js +51 -7
- package/dist/backend/vendor-archives.js.map +1 -1
- package/dist/backend/vendor-inputs.d.ts +25 -4
- package/dist/backend/vendor-inputs.js +68 -4
- package/dist/backend/vendor-inputs.js.map +1 -1
- package/dist/backend/vendor-inputs.test.js +35 -1
- package/dist/backend/vendor-inputs.test.js.map +1 -1
- package/dist/backend/warm-cache.js +1 -1
- package/dist/backend/warm-cache.js.map +1 -1
- package/dist/compat/fetch-profile.js +2 -2
- package/dist/coverage/report.js +47 -0
- package/dist/coverage/report.js.map +1 -1
- package/dist/coverage/surface-manifest.js +1 -1
- package/dist/diagnostics/codes.d.ts +8 -0
- package/dist/diagnostics/codes.js +8 -0
- package/dist/diagnostics/codes.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +27 -9
- package/dist/diagnostics/diagnostic.js +60 -19
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/diagnostics/envelope.d.ts +18 -0
- package/dist/diagnostics/envelope.js.map +1 -1
- package/dist/executable/executable-cache.d.ts +21 -2
- package/dist/executable/executable-cache.js +21 -1
- package/dist/executable/executable-cache.js.map +1 -1
- package/dist/executable/executable-cache.test.js +123 -1
- package/dist/executable/executable-cache.test.js.map +1 -1
- package/dist/executable/prepare.js +199 -248
- package/dist/executable/prepare.js.map +1 -1
- package/dist/frontend/analysis.js +200 -18
- package/dist/frontend/analysis.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +4 -0
- package/dist/frontend/builtin-modules.js +10 -0
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/early-errors.d.ts +12 -2
- package/dist/frontend/early-errors.js +535 -4
- package/dist/frontend/early-errors.js.map +1 -1
- package/dist/frontend/early-errors.test.js +165 -0
- package/dist/frontend/early-errors.test.js.map +1 -1
- package/dist/frontend/inferred-js-diagnostics.test.js +65 -0
- package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
- package/dist/frontend/jsx-opinion-sites.test.d.ts +1 -0
- package/dist/frontend/jsx-opinion-sites.test.js +86 -0
- package/dist/frontend/jsx-opinion-sites.test.js.map +1 -0
- package/dist/frontend/lib-exports.d.ts +23 -4
- package/dist/frontend/lib-exports.js +98 -26
- package/dist/frontend/lib-exports.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.js +21 -3
- package/dist/frontend/lowering/binding-analysis.js.map +1 -1
- package/dist/frontend/lowering/buffers.d.ts +8 -0
- package/dist/frontend/lowering/buffers.js +43 -0
- package/dist/frontend/lowering/buffers.js.map +1 -0
- package/dist/frontend/lowering/builtin-calls.js +4 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtin-namespaces.d.ts +3 -2
- package/dist/frontend/lowering/builtin-namespaces.js +24 -3
- package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
- package/dist/frontend/lowering/builtin-statics.d.ts +24 -0
- package/dist/frontend/lowering/builtin-statics.js +407 -0
- package/dist/frontend/lowering/builtin-statics.js.map +1 -0
- package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
- package/dist/frontend/lowering/builtins/arguments.js +12 -0
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/atomics.d.ts +6 -1
- package/dist/frontend/lowering/builtins/atomics.js +87 -1
- package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js +2 -2
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.d.ts +13 -0
- package/dist/frontend/lowering/builtins/child-process-sync.js +1 -13
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process.d.ts +10 -4
- package/dist/frontend/lowering/builtins/child-process.js +560 -27
- package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.d.ts +2 -2
- package/dist/frontend/lowering/builtins/compression.js +41 -21
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/constants.js +7 -2
- package/dist/frontend/lowering/builtins/constants.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +28 -2
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/json.js +4 -0
- package/dist/frontend/lowering/builtins/json.js.map +1 -1
- package/dist/frontend/lowering/builtins/module-calls.js +3 -1
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/numbers.d.ts +4 -1
- package/dist/frontend/lowering/builtins/numbers.js +10 -2
- package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
- package/dist/frontend/lowering/builtins/operating-system.d.ts +6 -3
- package/dist/frontend/lowering/builtins/operating-system.js +96 -16
- package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +2 -2
- package/dist/frontend/lowering/builtins/process.js +103 -8
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/promises.js +169 -8
- package/dist/frontend/lowering/builtins/promises.js.map +1 -1
- package/dist/frontend/lowering/builtins/properties.js +6 -2
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +6 -4
- package/dist/frontend/lowering/builtins/readline.js +180 -36
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.js +35 -12
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/builtins/webassembly.js +2 -0
- package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.d.ts +10 -0
- package/dist/frontend/lowering/call-arguments.js +37 -2
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.d.ts +10 -0
- package/dist/frontend/lowering/call-signatures.js +103 -0
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-construction.d.ts +14 -2
- package/dist/frontend/lowering/class-construction.js +99 -5
- package/dist/frontend/lowering/class-construction.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +9 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +1283 -1030
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +158 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-prototypes.js +20 -15
- package/dist/frontend/lowering/class-prototypes.js.map +1 -1
- package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
- package/dist/frontend/lowering/class-runtime-statics.js +20 -1
- package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
- package/dist/frontend/lowering/class-unions.js +21 -4
- package/dist/frontend/lowering/class-unions.js.map +1 -1
- package/dist/frontend/lowering/coercions/function-adapters.js +9 -0
- package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
- package/dist/frontend/lowering/coercions/state.d.ts +8 -0
- package/dist/frontend/lowering/coercions/state.js +17 -0
- package/dist/frontend/lowering/coercions/state.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural-plans.js +20 -5
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +10 -1
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/coercions/unions.d.ts +2 -1
- package/dist/frontend/lowering/coercions/unions.js +54 -10
- package/dist/frontend/lowering/coercions/unions.js.map +1 -1
- package/dist/frontend/lowering/constructor-returns.d.ts +23 -2
- package/dist/frontend/lowering/constructor-returns.js +284 -58
- package/dist/frontend/lowering/constructor-returns.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +156 -62
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-construction.js +21 -3
- package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
- package/dist/frontend/lowering/containers/array-from-async.js +139 -3
- package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
- package/dist/frontend/lowering/containers/array-iteration.d.ts +14 -4
- package/dist/frontend/lowering/containers/array-iteration.js +24 -7
- package/dist/frontend/lowering/containers/array-iteration.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.js +14 -11
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.d.ts +6 -0
- package/dist/frontend/lowering/containers/bytes.js +446 -86
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/callback-arguments.d.ts +5 -0
- package/dist/frontend/lowering/containers/callback-arguments.js +21 -12
- package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-grouping.js +421 -2
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +52 -17
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/iterator-helpers.d.ts +23 -0
- package/dist/frontend/lowering/containers/iterator-helpers.js +176 -10
- package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
- package/dist/frontend/lowering/containers/string-and-regexp.d.ts +5 -2
- package/dist/frontend/lowering/containers/string-and-regexp.js +45 -11
- package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
- package/dist/frontend/lowering/crypto-tables.js +5 -5
- package/dist/frontend/lowering/dispatch-sites.js +3 -0
- package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
- package/dist/frontend/lowering/divergences.d.ts +40 -0
- package/dist/frontend/lowering/divergences.js +239 -20
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/effect-free.d.ts +12 -0
- package/dist/frontend/lowering/effect-free.js +44 -0
- package/dist/frontend/lowering/effect-free.js.map +1 -0
- package/dist/frontend/lowering/expressions/array-literals.d.ts +10 -0
- package/dist/frontend/lowering/expressions/array-literals.js +62 -0
- package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/binary.js +115 -5
- package/dist/frontend/lowering/expressions/binary.js.map +1 -1
- package/dist/frontend/lowering/expressions/element-access.js +151 -7
- package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +15 -0
- package/dist/frontend/lowering/expressions/hosted-narrowing.js +54 -1
- package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/identifiers.js +31 -2
- package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
- package/dist/frontend/lowering/expressions/narrowing.d.ts +3 -0
- package/dist/frontend/lowering/expressions/narrowing.js +175 -22
- package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +173 -11
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/expressions/optional-chains.js +5 -1
- package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
- package/dist/frontend/lowering/expressions/property-access.d.ts +8 -0
- package/dist/frontend/lowering/expressions/property-access.js +379 -109
- package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
- package/dist/frontend/lowering/expressions/relational.js +237 -7
- package/dist/frontend/lowering/expressions/relational.js.map +1 -1
- package/dist/frontend/lowering/expressions/typeof.js +8 -0
- package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
- package/dist/frontend/lowering/expressions/union-fields.d.ts +20 -1
- package/dist/frontend/lowering/expressions/union-fields.js +103 -13
- package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
- package/dist/frontend/lowering/expressions/updates.js +74 -55
- package/dist/frontend/lowering/expressions/updates.js.map +1 -1
- package/dist/frontend/lowering/function-returns.js +37 -10
- package/dist/frontend/lowering/function-returns.js.map +1 -1
- package/dist/frontend/lowering/general-streams.js +5 -0
- package/dist/frontend/lowering/general-streams.js.map +1 -1
- package/dist/frontend/lowering/generator-delegation.d.ts +15 -7
- package/dist/frontend/lowering/generator-delegation.js +301 -118
- package/dist/frontend/lowering/generator-delegation.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +27 -1
- package/dist/frontend/lowering/generic-functions.js +432 -18
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/global-function-values.d.ts +25 -0
- package/dist/frontend/lowering/global-function-values.js +193 -0
- package/dist/frontend/lowering/global-function-values.js.map +1 -0
- package/dist/frontend/lowering/global-values.d.ts +6 -4
- package/dist/frontend/lowering/global-values.js +24 -10
- package/dist/frontend/lowering/global-values.js.map +1 -1
- package/dist/frontend/lowering/host-global-values.d.ts +31 -0
- package/dist/frontend/lowering/host-global-values.js +121 -0
- package/dist/frontend/lowering/host-global-values.js.map +1 -0
- package/dist/frontend/lowering/host-globals.d.ts +74 -0
- package/dist/frontend/lowering/host-globals.js +344 -0
- package/dist/frontend/lowering/host-globals.js.map +1 -0
- package/dist/frontend/lowering/http2-constants.js +1 -1
- package/dist/frontend/lowering/iterator-adapters.js +46 -17
- package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
- package/dist/frontend/lowering/iterator-prototype.d.ts +30 -0
- package/dist/frontend/lowering/iterator-prototype.js +160 -0
- package/dist/frontend/lowering/iterator-prototype.js.map +1 -0
- package/dist/frontend/lowering/key-order-witness.js +43 -22
- package/dist/frontend/lowering/key-order-witness.js.map +1 -1
- package/dist/frontend/lowering/key-order-witness.test.js +1 -0
- package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
- package/dist/frontend/lowering/lib-boundary.js +11 -3
- package/dist/frontend/lowering/lib-boundary.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +30 -15
- package/dist/frontend/lowering/lower-assert.js.map +1 -1
- package/dist/frontend/lowering/lower-async-iteration.d.ts +11 -0
- package/dist/frontend/lowering/lower-async-iteration.js +15 -0
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-builtin-values.js +11 -1
- package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.d.ts +25 -0
- package/dist/frontend/lowering/lower-calls.js +929 -227
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.test.js +59 -16
- package/dist/frontend/lowering/lower-calls.test.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +20 -0
- package/dist/frontend/lowering/lower-classes.js +468 -44
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -2
- package/dist/frontend/lowering/lower-event-emitter.js +253 -83
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
- package/dist/frontend/lowering/lower-exprs.js +71 -20
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-functions.js +25 -6
- package/dist/frontend/lowering/lower-functions.js.map +1 -1
- package/dist/frontend/lowering/lower-generators.js +57 -10
- package/dist/frontend/lowering/lower-generators.js.map +1 -1
- package/dist/frontend/lowering/lower-global-value.d.ts +6 -0
- package/dist/frontend/lowering/lower-global-value.js +14 -5
- package/dist/frontend/lowering/lower-global-value.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
- package/dist/frontend/lowering/lower-inspect.js +638 -64
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +48 -2
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.js +18 -0
- package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
- package/dist/frontend/lowering/lower-node-island.js +16 -6
- package/dist/frontend/lowering/lower-node-island.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +303 -87
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.js +45 -0
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +14 -11
- package/dist/frontend/lowering/lower-stmts.js +270 -52
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +110 -27
- package/dist/frontend/lowering/lower-timers.js.map +1 -1
- package/dist/frontend/lowering/lower-url.js +6 -3
- package/dist/frontend/lowering/lower-url.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +227 -21
- package/dist/frontend/lowering/lowerer.js +651 -92
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/lowerer.test.js +18 -0
- package/dist/frontend/lowering/lowerer.test.js.map +1 -1
- package/dist/frontend/lowering/lowering-facts.d.ts +110 -0
- package/dist/frontend/lowering/lowering-facts.js +323 -0
- package/dist/frontend/lowering/lowering-facts.js.map +1 -0
- package/dist/frontend/lowering/lowering-facts.test.d.ts +1 -0
- package/dist/frontend/lowering/lowering-facts.test.js +100 -0
- package/dist/frontend/lowering/lowering-facts.test.js.map +1 -0
- package/dist/frontend/lowering/nan-coded-reads.d.ts +27 -4
- package/dist/frontend/lowering/nan-coded-reads.js +112 -9
- package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
- package/dist/frontend/lowering/optional-arguments.d.ts +4 -0
- package/dist/frontend/lowering/optional-arguments.js +26 -2
- package/dist/frontend/lowering/optional-arguments.js.map +1 -1
- package/dist/frontend/lowering/partial-assertions.d.ts +0 -3
- package/dist/frontend/lowering/partial-assertions.js +9 -15
- package/dist/frontend/lowering/partial-assertions.js.map +1 -1
- package/dist/frontend/lowering/primitive-throws.d.ts +100 -0
- package/dist/frontend/lowering/primitive-throws.js +241 -0
- package/dist/frontend/lowering/primitive-throws.js.map +1 -0
- package/dist/frontend/lowering/primitive-wrappers.js +1 -0
- package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
- package/dist/frontend/lowering/record-inherited.d.ts +17 -1
- package/dist/frontend/lowering/record-inherited.js +16 -2
- package/dist/frontend/lowering/record-inherited.js.map +1 -1
- package/dist/frontend/lowering/record-links.d.ts +73 -0
- package/dist/frontend/lowering/record-links.js +797 -0
- package/dist/frontend/lowering/record-links.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-provenance.d.ts +27 -7
- package/dist/frontend/lowering/runtime-optional-provenance.js +25 -11
- package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-report.d.ts +40 -0
- package/dist/frontend/lowering/runtime-optional-report.js +300 -0
- package/dist/frontend/lowering/runtime-optional-report.js.map +1 -0
- package/dist/frontend/lowering/scoped-type-memo.test.d.ts +1 -0
- package/dist/frontend/lowering/scoped-type-memo.test.js +86 -0
- package/dist/frontend/lowering/scoped-type-memo.test.js.map +1 -0
- package/dist/frontend/lowering/static-typeof.d.ts +3 -1
- package/dist/frontend/lowering/static-typeof.js +6 -1
- package/dist/frontend/lowering/static-typeof.js.map +1 -1
- package/dist/frontend/lowering/strict-mode.d.ts +1 -5
- package/dist/frontend/lowering/strict-mode.js +4 -30
- package/dist/frontend/lowering/strict-mode.js.map +1 -1
- package/dist/frontend/lowering/structural-instances.d.ts +7 -0
- package/dist/frontend/lowering/structural-instances.js +23 -0
- package/dist/frontend/lowering/structural-instances.js.map +1 -1
- package/dist/frontend/lowering/surfaces.d.ts +15 -1
- package/dist/frontend/lowering/surfaces.js +78 -10
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/lowering/union-retag.d.ts +13 -1
- package/dist/frontend/lowering/union-retag.js +55 -1
- package/dist/frontend/lowering/union-retag.js.map +1 -1
- package/dist/frontend/lowering/union-retag.test.js +51 -0
- package/dist/frontend/lowering/union-retag.test.js.map +1 -1
- package/dist/frontend/lowering/unit-journal.d.ts +8 -0
- package/dist/frontend/lowering/unit-journal.js +14 -0
- package/dist/frontend/lowering/unit-journal.js.map +1 -1
- package/dist/frontend/lowering/unit-journal.test.js +36 -1
- package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
- package/dist/frontend/lowering/zlib-constants.js +3 -2
- package/dist/frontend/lowering/zlib-constants.js.map +1 -1
- package/dist/frontend/npm-static.js +78 -9
- package/dist/frontend/npm-static.js.map +1 -1
- package/dist/frontend/npm-static.test.js +95 -2
- package/dist/frontend/npm-static.test.js.map +1 -1
- package/dist/frontend/pipeline.d.ts +5 -4
- package/dist/frontend/pipeline.js +94 -31
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/pipeline.test.js +68 -11
- package/dist/frontend/pipeline.test.js.map +1 -1
- package/dist/frontend/program.d.ts +62 -2
- package/dist/frontend/program.js +695 -422
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/program.test.js +37 -1
- package/dist/frontend/program.test.js.map +1 -1
- package/dist/frontend/services-node.d.ts +7 -0
- package/dist/frontend/services-node.js +32 -1
- package/dist/frontend/services-node.js.map +1 -1
- package/dist/frontend/services-node.test.js +51 -0
- package/dist/frontend/services-node.test.js.map +1 -1
- package/dist/frontend/shape-inference/overlay.js +68 -2
- package/dist/frontend/shape-inference/overlay.js.map +1 -1
- package/dist/frontend/tier-analysis.d.ts +9 -0
- package/dist/frontend/tier-analysis.js +1 -0
- package/dist/frontend/tier-analysis.js.map +1 -1
- package/dist/frontend/tsc-codes.d.ts +57 -3
- package/dist/frontend/tsc-codes.js +935 -150
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/tsc-codes.test.js +221 -12
- package/dist/frontend/tsc-codes.test.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +91 -9
- package/dist/frontend/type-mapper.js +622 -181
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +80 -15
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +60 -0
- package/dist/index.test.js.map +1 -0
- package/dist/ir/builtin-effects.js +43 -0
- package/dist/ir/builtin-effects.js.map +1 -1
- package/dist/ir/builtin-signatures.d.ts +1 -1
- package/dist/ir/builtin-signatures.js +242 -16
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/callback-specialization.d.ts +3 -2
- package/dist/ir/callback-specialization.js +35 -25
- package/dist/ir/callback-specialization.js.map +1 -1
- package/dist/ir/capture-values.d.ts +8 -4
- package/dist/ir/capture-values.js +9 -6
- package/dist/ir/capture-values.js.map +1 -1
- package/dist/ir/char-unit-locals.d.ts +6 -2
- package/dist/ir/char-unit-locals.js +11 -2
- package/dist/ir/char-unit-locals.js.map +1 -1
- package/dist/ir/class-key-index.d.ts +18 -0
- package/dist/ir/class-key-index.js +29 -0
- package/dist/ir/class-key-index.js.map +1 -0
- package/dist/ir/class-key-index.test.d.ts +1 -0
- package/dist/ir/class-key-index.test.js +25 -0
- package/dist/ir/class-key-index.test.js.map +1 -0
- package/dist/ir/codec.generated.d.ts +1 -1
- package/dist/ir/codec.generated.js +724 -648
- package/dist/ir/codec.generated.js.map +1 -1
- package/dist/ir/constant-globals.d.ts +5 -2
- package/dist/ir/constant-globals.js +25 -27
- package/dist/ir/constant-globals.js.map +1 -1
- package/dist/ir/expression-inlining.d.ts +4 -2
- package/dist/ir/expression-inlining.js +8 -2
- package/dist/ir/expression-inlining.js.map +1 -1
- package/dist/ir/field-values.d.ts +5 -2
- package/dist/ir/field-values.js +32 -21
- package/dist/ir/field-values.js.map +1 -1
- package/dist/ir/fields.generated.d.ts +11 -2
- package/dist/ir/fields.generated.js +8 -0
- package/dist/ir/fields.generated.js.map +1 -1
- package/dist/ir/final-fields.js +1 -1
- package/dist/ir/final-fields.js.map +1 -1
- package/dist/ir/function-references.d.ts +5 -4
- package/dist/ir/function-references.js +7 -4
- package/dist/ir/function-references.js.map +1 -1
- package/dist/ir/function-references.test.js +7 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/init-only-globals.d.ts +4 -2
- package/dist/ir/init-only-globals.js +17 -18
- package/dist/ir/init-only-globals.js.map +1 -1
- package/dist/ir/inline-array-views.js +1 -0
- package/dist/ir/inline-array-views.js.map +1 -1
- package/dist/ir/int32-slots.js +7 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/ir.d.ts +59 -4
- package/dist/ir/ir.js +7 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/js-groups.d.ts +51 -0
- package/dist/ir/js-groups.js +394 -0
- package/dist/ir/js-groups.js.map +1 -0
- package/dist/ir/js-groups.test.d.ts +1 -0
- package/dist/ir/js-groups.test.js +555 -0
- package/dist/ir/js-groups.test.js.map +1 -0
- package/dist/ir/js-ic.js +30 -5
- package/dist/ir/js-ic.js.map +1 -1
- package/dist/ir/js-ic.test.js +27 -1
- package/dist/ir/js-ic.test.js.map +1 -1
- package/dist/ir/node-index.d.ts +23 -6
- package/dist/ir/node-index.js +126 -49
- package/dist/ir/node-index.js.map +1 -1
- package/dist/ir/numeric-call-specialization.d.ts +4 -2
- package/dist/ir/numeric-call-specialization.js +40 -26
- package/dist/ir/numeric-call-specialization.js.map +1 -1
- package/dist/ir/paired-while-loops.d.ts +4 -2
- package/dist/ir/paired-while-loops.js +8 -2
- package/dist/ir/paired-while-loops.js.map +1 -1
- package/dist/ir/parameter-versions.d.ts +13 -4
- package/dist/ir/parameter-versions.js +63 -42
- package/dist/ir/parameter-versions.js.map +1 -1
- package/dist/ir/property-bags.d.ts +4 -2
- package/dist/ir/property-bags.js +22 -17
- package/dist/ir/property-bags.js.map +1 -1
- package/dist/ir/row-pairs.d.ts +4 -2
- package/dist/ir/row-pairs.js +12 -11
- package/dist/ir/row-pairs.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +87 -12
- package/dist/ir/runtime-features.js +263 -160
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +109 -139
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/runtime-jam-loops.d.ts +35 -0
- package/dist/ir/runtime-jam-loops.js +604 -0
- package/dist/ir/runtime-jam-loops.js.map +1 -0
- package/dist/ir/runtime-jam-loops.test.d.ts +1 -0
- package/dist/ir/runtime-jam-loops.test.js +565 -0
- package/dist/ir/runtime-jam-loops.test.js.map +1 -0
- package/dist/ir/saturating-loop-jams.d.ts +4 -2
- package/dist/ir/saturating-loop-jams.js +11 -10
- package/dist/ir/saturating-loop-jams.js.map +1 -1
- package/dist/ir/scalar-records.d.ts +5 -2
- package/dist/ir/scalar-records.js +12 -2
- package/dist/ir/scalar-records.js.map +1 -1
- package/dist/ir/self-captures.d.ts +4 -2
- package/dist/ir/self-captures.js +32 -27
- package/dist/ir/self-captures.js.map +1 -1
- package/dist/ir/serialize.d.ts +6 -1
- package/dist/ir/serialize.js +87 -23
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/serialize.test.js +26 -0
- package/dist/ir/serialize.test.js.map +1 -1
- package/dist/ir/tiers.js +1 -0
- package/dist/ir/tiers.js.map +1 -1
- package/dist/ir/traverse.js +4 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/typed-argument-clones.d.ts +30 -0
- package/dist/ir/typed-argument-clones.js +789 -0
- package/dist/ir/typed-argument-clones.js.map +1 -0
- package/dist/ir/union-arm-loops.d.ts +3 -0
- package/dist/ir/union-arm-loops.js +373 -0
- package/dist/ir/union-arm-loops.js.map +1 -0
- package/dist/ir/union-arm-loops.test.d.ts +1 -0
- package/dist/ir/union-arm-loops.test.js +230 -0
- package/dist/ir/union-arm-loops.test.js.map +1 -0
- package/dist/ir/validate.js +88 -18
- package/dist/ir/validate.js.map +1 -1
- package/dist/library/compiler-self-identity.d.ts +8 -2
- package/dist/library/compiler-self-identity.js +92 -18
- package/dist/library/compiler-self-identity.js.map +1 -1
- package/dist/library/compiler-self-identity.test.js +150 -3
- package/dist/library/compiler-self-identity.test.js.map +1 -1
- package/dist/library/int-infer.d.ts +5 -0
- package/dist/library/int-infer.js +15 -3
- package/dist/library/int-infer.js.map +1 -1
- package/dist/library/ir-policy.js +1 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-cache.d.ts +4 -0
- package/dist/library/library-cache.js +2 -0
- package/dist/library/library-cache.js.map +1 -1
- package/dist/library/library-cache.test.js +26 -0
- package/dist/library/library-cache.test.js.map +1 -1
- package/dist/library/prepare.js +99 -31
- package/dist/library/prepare.js.map +1 -1
- package/dist/native/cache.d.ts +7 -0
- package/dist/native/cache.js +47 -0
- package/dist/native/cache.js.map +1 -1
- package/dist/native/cache.test.js +13 -1
- package/dist/native/cache.test.js.map +1 -1
- package/dist/native/cli.js +1 -1
- package/dist/native/cli.js.map +1 -1
- package/dist/native/compiler.js +18 -3
- package/dist/native/compiler.js.map +1 -1
- package/dist/native/executable-cache-open.test.js +31 -5
- package/dist/native/executable-cache-open.test.js.map +1 -1
- package/dist/native/executable-cache.d.ts +6 -1
- package/dist/native/executable-cache.js +7 -1
- package/dist/native/executable-cache.js.map +1 -1
- package/dist/native/prepare.d.ts +3 -0
- package/dist/native/prepare.js +43 -26
- package/dist/native/prepare.js.map +1 -1
- package/dist/native/prepare.test.js +25 -3
- package/dist/native/prepare.test.js.map +1 -1
- package/dist/native/sanitizer.js +10 -1
- package/dist/native/sanitizer.js.map +1 -1
- package/dist/native/sanitizer.test.js +7 -2
- package/dist/native/sanitizer.test.js.map +1 -1
- package/dist/node-islands/boundary.d.ts +12 -0
- package/dist/node-islands/boundary.js +38 -6
- package/dist/node-islands/boundary.js.map +1 -1
- package/dist/node-islands/boundary.test.d.ts +1 -0
- package/dist/node-islands/boundary.test.js +76 -0
- package/dist/node-islands/boundary.test.js.map +1 -0
- package/dist/node-islands/detect.d.ts +9 -0
- package/dist/node-islands/detect.js +110 -0
- package/dist/node-islands/detect.js.map +1 -1
- package/dist/node-islands/detect.test.js +24 -0
- package/dist/node-islands/detect.test.js.map +1 -1
- package/dist/node-islands/graph-islands.d.ts +40 -0
- package/dist/node-islands/graph-islands.js +128 -0
- package/dist/node-islands/graph-islands.js.map +1 -0
- package/dist/node-islands/growth.d.ts +57 -0
- package/dist/node-islands/growth.js +205 -0
- package/dist/node-islands/growth.js.map +1 -0
- package/dist/node-islands/report.d.ts +12 -0
- package/dist/node-islands/report.js +28 -0
- package/dist/node-islands/report.js.map +1 -1
- package/dist/node-islands/report.test.js +2 -0
- package/dist/node-islands/report.test.js.map +1 -1
- package/dist/node-islands/rules.js +5 -0
- package/dist/node-islands/rules.js.map +1 -1
- package/dist/node-islands/scan.d.ts +11 -2
- package/dist/node-islands/scan.js +61 -9
- package/dist/node-islands/scan.js.map +1 -1
- package/dist/wasm/translate.js +11 -5
- package/dist/wasm/translate.js.map +1 -1
- package/dist/wasm/translate.test.js +35 -0
- package/dist/wasm/translate.test.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +184 -117
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
*
|
|
11
11
|
* One code per construct, so C1's checker relaxation stays safe: relaxing a
|
|
12
12
|
* tsc code that doubles as an early error removes the ONLY rejection some
|
|
13
|
-
* parse-negative test had, which is why these codes live beside
|
|
14
|
-
*
|
|
13
|
+
* parse-negative test had, which is why these codes live beside the
|
|
14
|
+
* JS_OPINIONS table in tsc-codes.ts and never depend on it.
|
|
15
15
|
*
|
|
16
16
|
* Scope: JavaScript sources only. A TypeScript source is type-checked, and
|
|
17
17
|
* its checker diagnostics (TS2451 and friends) are the gate; re-reporting
|
|
@@ -25,14 +25,46 @@ import { isJsSourceFileName } from "./tsc-codes.js";
|
|
|
25
25
|
/** The early-error codes. SC0005 and SC0006 are the Block/CaseBlock static
|
|
26
26
|
* semantics (a statement list may not declare one lexical name twice, and a
|
|
27
27
|
* lexical name may not be `var`-declared in the same list); SC0007 is a
|
|
28
|
-
* declaration where the grammar admits only a Statement
|
|
29
|
-
|
|
28
|
+
* declaration where the grammar admits only a Statement; SC0008 is the
|
|
29
|
+
* ImportCall grammar (a dynamic import takes one or two arguments, and
|
|
30
|
+
* `import.defer` and friends take exactly one); SC0009 is
|
|
31
|
+
* AllPrivateNamesValid (a `#name` may only be read where an enclosing class
|
|
32
|
+
* declares it); SC0010 is AssignmentTargetType (an assignment target must be
|
|
33
|
+
* a variable reference or a property access); SC0011 is the reserved-word
|
|
34
|
+
* rule for `await` in the positions a keyword-`await` context owns; SC0012 is
|
|
35
|
+
* ContainsArguments, the ban on `arguments` in a class field initializer or
|
|
36
|
+
* a class static block; SC0013 is the Script-goal rule for `using`; SC0014 is
|
|
37
|
+
* the strict-mode ban on `eval` and `arguments` as assignment targets;
|
|
38
|
+
* SC0015 is the CatchParameter/LexicallyDeclaredNames collision. */
|
|
39
|
+
export const EARLY_ERROR_CODES = [
|
|
40
|
+
"SC0005",
|
|
41
|
+
"SC0006",
|
|
42
|
+
"SC0007",
|
|
43
|
+
"SC0008",
|
|
44
|
+
"SC0009",
|
|
45
|
+
"SC0010",
|
|
46
|
+
"SC0011",
|
|
47
|
+
"SC0012",
|
|
48
|
+
"SC0013",
|
|
49
|
+
"SC0014",
|
|
50
|
+
"SC0015",
|
|
51
|
+
];
|
|
30
52
|
const NO_DUPLICATE_LEXICAL = "SC0005";
|
|
31
53
|
const LEXICAL_VAR_COLLISION = "SC0006";
|
|
32
54
|
const NOT_A_STATEMENT = "SC0007";
|
|
55
|
+
const IMPORT_CALL_FORM = "SC0008";
|
|
56
|
+
const UNBOUND_PRIVATE_NAME = "SC0009";
|
|
57
|
+
const INVALID_ASSIGNMENT_TARGET = "SC0010";
|
|
58
|
+
const AWAIT_IS_RESERVED = "SC0011";
|
|
59
|
+
const ARGUMENTS_IN_CLASS_INITIALIZER = "SC0012";
|
|
60
|
+
const USING_IN_SCRIPT_TOP_LEVEL = "SC0013";
|
|
61
|
+
const STRICT_EVAL_BINDING = "SC0014";
|
|
62
|
+
const CATCH_PARAMETER_COLLISION = "SC0015";
|
|
33
63
|
export function earlyErrorDiagnostics7(files, isModuleCode) {
|
|
34
64
|
const diags = [];
|
|
35
65
|
const isStrict = (sf, node) => isStrictCode(sf, node, isModuleCode);
|
|
66
|
+
// PrivateBoundNames per class, for this run only.
|
|
67
|
+
const privateNames = new Map();
|
|
36
68
|
for (const sf of files) {
|
|
37
69
|
if (!isJsSourceFileName(sf.fileName))
|
|
38
70
|
continue;
|
|
@@ -43,6 +75,13 @@ export function earlyErrorDiagnostics7(files, isModuleCode) {
|
|
|
43
75
|
const node = stack.pop();
|
|
44
76
|
checkStatementListScope(sf, node, diags, isStrict);
|
|
45
77
|
checkStatementSlot(node, diags, isStrict);
|
|
78
|
+
checkImportCallForm(node, diags);
|
|
79
|
+
checkPrivateNameUse(node, diags, privateNames);
|
|
80
|
+
checkAssignmentTarget(node, diags, isStrict);
|
|
81
|
+
checkAwaitIdentifier(node, diags, isModuleCode);
|
|
82
|
+
checkClassInitializerArguments(node, diags);
|
|
83
|
+
checkScriptTopLevelUsing(node, diags, isModuleCode);
|
|
84
|
+
checkCatchParameterCollision(node, diags);
|
|
46
85
|
ts.forEachChild(node, (child) => {
|
|
47
86
|
stack.push(child);
|
|
48
87
|
return undefined;
|
|
@@ -263,6 +302,258 @@ function labelledFunctionOf(stmt) {
|
|
|
263
302
|
cur = cur.statement;
|
|
264
303
|
return ts.isFunctionDeclaration(cur) ? cur : null;
|
|
265
304
|
}
|
|
305
|
+
/* ── SC0008: the ImportCall grammar ─────────────────────────────────────
|
|
306
|
+
*
|
|
307
|
+
* ImportCall : import ( AssignmentExpression )
|
|
308
|
+
* import ( AssignmentExpression , AssignmentExpression? )
|
|
309
|
+
* ImportCall : import . defer ( AssignmentExpression )
|
|
310
|
+
*
|
|
311
|
+
* ImportCall is not extensible: no argument list is a SyntaxError, and a
|
|
312
|
+
* third argument is too. The checker reports TS1450 for these in its
|
|
313
|
+
* MESSAGE category ("Dynamic imports can only accept a module specifier and
|
|
314
|
+
* an optional set of attributes as arguments"), which the tsc gate keeps
|
|
315
|
+
* only for errors — so the program compiled and its parse-negative test
|
|
316
|
+
* ran. Node's own parser refuses every form below. */
|
|
317
|
+
function checkImportCallForm(node, diags) {
|
|
318
|
+
if (!ts.isCallExpression(node))
|
|
319
|
+
return;
|
|
320
|
+
const callee = node.expression;
|
|
321
|
+
const argc = node.arguments.nodes.length;
|
|
322
|
+
if (callee.kind === ts.SyntaxKind.ImportKeyword) {
|
|
323
|
+
if (argc < 1 || argc > 2)
|
|
324
|
+
report(diags, IMPORT_CALL_FORM, node, "import() takes a module specifier and an optional second argument; the argument list cannot be omitted or extended");
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
// `import.defer` parses as a MetaProperty (the parser folds the member
|
|
328
|
+
// into one node) and as a property access in adapters that keep the two
|
|
329
|
+
// apart; both spell the same grammar production.
|
|
330
|
+
const deferName = ts.isMetaProperty(callee)
|
|
331
|
+
? callee.keywordToken === ts.SyntaxKind.ImportKeyword
|
|
332
|
+
? callee.name.text
|
|
333
|
+
: null
|
|
334
|
+
: ts.isPropertyAccessExpression(callee) &&
|
|
335
|
+
callee.expression.kind === ts.SyntaxKind.ImportKeyword &&
|
|
336
|
+
!ts.isPrivateIdentifier(callee.name)
|
|
337
|
+
? callee.name.text
|
|
338
|
+
: null;
|
|
339
|
+
if (deferName === null)
|
|
340
|
+
return;
|
|
341
|
+
// import.defer(...) is the one form with a member name today; any other
|
|
342
|
+
// `import.<name>(...)` is module syntax the checker already refuses.
|
|
343
|
+
if (deferName === "defer" && argc !== 1)
|
|
344
|
+
report(diags, IMPORT_CALL_FORM, node, "import.defer() takes exactly one module specifier");
|
|
345
|
+
}
|
|
346
|
+
/* ── SC0009: AllPrivateNamesValid ───────────────────────────────────────
|
|
347
|
+
*
|
|
348
|
+
* ScriptBody : StatementList
|
|
349
|
+
* It is a Syntax Error if AllPrivateNamesValid of StatementList with an
|
|
350
|
+
* empty List is false.
|
|
351
|
+
* ClassBody : ClassElementList
|
|
352
|
+
* newNames = PrivateBoundNames of ClassBody concatenated with names.
|
|
353
|
+
*
|
|
354
|
+
* A `.#name` read or a `#name in obj` check may only name a private
|
|
355
|
+
* declaration of an ENCLOSING class; the class heritage is the exception —
|
|
356
|
+
* it is evaluated in the outer private environment, so a class cannot name
|
|
357
|
+
* its own `#private` from `extends`. TypeScript reports the common case as
|
|
358
|
+
* TS2339 ("Property '#x' does not exist on type 'C'"), which is a relaxed
|
|
359
|
+
* JavaScript code because an ordinary member read of it is legal — but a
|
|
360
|
+
* private name never is, so the pass owns the rule. */
|
|
361
|
+
function checkPrivateNameUse(node, diags, privateNames) {
|
|
362
|
+
if (ts.isPropertyAccessExpression(node) && ts.isPrivateIdentifier(node.name)) {
|
|
363
|
+
if (node.expression.kind === ts.SyntaxKind.SuperKeyword) {
|
|
364
|
+
report(diags, UNBOUND_PRIVATE_NAME, node, `'super.${node.name.text}' is not a SuperProperty: a private name is only readable on 'this' or another object of a declaring class`);
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (!privateNameVisible(node, node.name.text, privateNames))
|
|
368
|
+
report(diags, UNBOUND_PRIVATE_NAME, node, `the private name '${node.name.text}' is not declared in an enclosing class`);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
if (ts.isBinaryExpression(node) &&
|
|
372
|
+
node.operatorToken.kind === ts.SyntaxKind.InKeyword &&
|
|
373
|
+
ts.isPrivateIdentifier(node.left) &&
|
|
374
|
+
!privateNameVisible(node, node.left.text, privateNames))
|
|
375
|
+
report(diags, UNBOUND_PRIVATE_NAME, node.left, `the private name '${node.left.text}' is not declared in an enclosing class`);
|
|
376
|
+
}
|
|
377
|
+
/** Whether the private name `text` is in the environment of `node`: the
|
|
378
|
+
* PrivateBoundNames of every enclosing class body, save a heritage clause,
|
|
379
|
+
* which sees only the classes outside the one it belongs to. */
|
|
380
|
+
function privateNameVisible(node, text, privateNames) {
|
|
381
|
+
let child = node;
|
|
382
|
+
for (let n = node.parent; n !== undefined; child = n, n = n.parent) {
|
|
383
|
+
if (!ts.isClassDeclaration(n) && !ts.isClassExpression(n))
|
|
384
|
+
continue;
|
|
385
|
+
if (ts.isHeritageClause(child))
|
|
386
|
+
continue;
|
|
387
|
+
if (privateBoundNamesOf(n, privateNames).has(text))
|
|
388
|
+
return true;
|
|
389
|
+
}
|
|
390
|
+
return false;
|
|
391
|
+
}
|
|
392
|
+
/** PrivateBoundNames of a ClassBody: every PrivateIdentifier that names an
|
|
393
|
+
* element. A class's own names are visible throughout its body, including
|
|
394
|
+
* the computed names of its elements, so the set is order-independent.
|
|
395
|
+
* `cache` is the pass run's own table, so nothing outlives the walk. */
|
|
396
|
+
function privateBoundNamesOf(classNode, cache) {
|
|
397
|
+
let names = cache.get(classNode);
|
|
398
|
+
if (names !== undefined)
|
|
399
|
+
return names;
|
|
400
|
+
names = new Set();
|
|
401
|
+
for (const member of classNode.members.nodes) {
|
|
402
|
+
const name = member.name;
|
|
403
|
+
if (name !== undefined && ts.isPrivateIdentifier(name))
|
|
404
|
+
names.add(name.text);
|
|
405
|
+
}
|
|
406
|
+
cache.set(classNode, names);
|
|
407
|
+
return names;
|
|
408
|
+
}
|
|
409
|
+
/* ── SC0010: AssignmentTargetType ───────────────────────────────────────
|
|
410
|
+
*
|
|
411
|
+
* AssignmentExpression : LeftHandSideExpression = AssignmentExpression
|
|
412
|
+
* It is a Syntax Error if AssignmentTargetType of LeftHandSideExpression
|
|
413
|
+
* is not simple.
|
|
414
|
+
* ... and the compound-assignment, update and for-in/of productions.
|
|
415
|
+
*
|
|
416
|
+
* A "simple" target is an identifier or a property access (parentheses
|
|
417
|
+
* around one are transparent); a plain assignment additionally accepts a
|
|
418
|
+
* destructuring pattern. A call expression is never either — which is the
|
|
419
|
+
* case that reaches here, because the checker reports `import('') -= 1` as
|
|
420
|
+
* a TS2362 OPERATOR type error, and the JavaScript-any relaxation drops
|
|
421
|
+
* every 2362 whose message names 'any'. Every other invalid target
|
|
422
|
+
* (`f() = 1`, `f() += 1`, `[a] = b = c`) is the same static semantics;
|
|
423
|
+
* reporting it here costs nothing, since an accepted program never reaches
|
|
424
|
+
* this check as a failure.
|
|
425
|
+
*
|
|
426
|
+
* SC0014 rides the same walk: in strict mode code an ASSIGNMENT to `eval` or
|
|
427
|
+
* `arguments` is a Syntax Error (AssignmentTargetType is not simple for those
|
|
428
|
+
* two names in strict code), not the caught TypeError a writable binding
|
|
429
|
+
* would throw. The declarations the checker already refuses (`let eval`,
|
|
430
|
+
* `arguments` as a parameter of strict code, a sloppy-only `with`) are its
|
|
431
|
+
* own diagnostics; this is the reference side the checker types fine. */
|
|
432
|
+
function checkAssignmentTarget(node, diags, isStrict) {
|
|
433
|
+
if (ts.isBinaryExpression(node)) {
|
|
434
|
+
const kind = node.operatorToken.kind;
|
|
435
|
+
if (kind === ts.SyntaxKind.EqualsToken) {
|
|
436
|
+
checkTargetForm(node.left, true, node, diags, strictTargetCheck(node, isStrict));
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
if (assignmentOperatorTokens.has(kind)) {
|
|
440
|
+
checkTargetForm(node.left, false, node, diags, strictTargetCheck(node, isStrict));
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
if (ts.isPrefixUnaryExpression(node) && isUpdateToken(node.operator)) {
|
|
446
|
+
checkTargetForm(node.operand, false, node, diags, strictTargetCheck(node, isStrict));
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
if (ts.isPostfixUnaryExpression(node) && isUpdateToken(node.operator)) {
|
|
450
|
+
checkTargetForm(node.operand, false, node, diags, strictTargetCheck(node, isStrict));
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
if (ts.isForInStatement(node) || ts.isForOfStatement(node)) {
|
|
454
|
+
const initializer = node.initializer;
|
|
455
|
+
if (!ts.isVariableDeclarationList(initializer))
|
|
456
|
+
checkTargetForm(initializer, true, node, diags, strictTargetCheck(node, isStrict));
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
/** Answers whether a target identifier is in strict mode code, for SC0014;
|
|
460
|
+
* a lazy answer keeps the (parent-walking) strictness computation off the
|
|
461
|
+
* targets that never need it. */
|
|
462
|
+
function strictTargetCheck(node, isStrict) {
|
|
463
|
+
const sf = ts.getSourceFileOfNode(node);
|
|
464
|
+
let answer;
|
|
465
|
+
return (identifier) => {
|
|
466
|
+
if (answer === undefined)
|
|
467
|
+
answer = isStrict(sf, identifier);
|
|
468
|
+
return answer;
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
const assignmentOperatorTokens = new Set([
|
|
472
|
+
ts.SyntaxKind.PlusEqualsToken,
|
|
473
|
+
ts.SyntaxKind.MinusEqualsToken,
|
|
474
|
+
ts.SyntaxKind.AsteriskEqualsToken,
|
|
475
|
+
ts.SyntaxKind.SlashEqualsToken,
|
|
476
|
+
ts.SyntaxKind.PercentEqualsToken,
|
|
477
|
+
ts.SyntaxKind.AsteriskAsteriskEqualsToken,
|
|
478
|
+
ts.SyntaxKind.LessThanLessThanEqualsToken,
|
|
479
|
+
ts.SyntaxKind.GreaterThanGreaterThanEqualsToken,
|
|
480
|
+
ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken,
|
|
481
|
+
ts.SyntaxKind.AmpersandEqualsToken,
|
|
482
|
+
ts.SyntaxKind.BarEqualsToken,
|
|
483
|
+
ts.SyntaxKind.CaretEqualsToken,
|
|
484
|
+
ts.SyntaxKind.AmpersandAmpersandEqualsToken,
|
|
485
|
+
ts.SyntaxKind.BarBarEqualsToken,
|
|
486
|
+
ts.SyntaxKind.QuestionQuestionEqualsToken,
|
|
487
|
+
]);
|
|
488
|
+
function isUpdateToken(token) {
|
|
489
|
+
return token === ts.SyntaxKind.PlusPlusToken || token === ts.SyntaxKind.MinusMinusToken;
|
|
490
|
+
}
|
|
491
|
+
/** Reports `target` when it is not an assignment target of the given kind.
|
|
492
|
+
* `pattern` admits a destructuring pattern (a plain `=` and a for-in/of
|
|
493
|
+
* head) around simple targets; a compound assignment and an update take a
|
|
494
|
+
* simple target only. `strict` answers, per identifier, whether SC0014
|
|
495
|
+
* applies. */
|
|
496
|
+
function checkTargetForm(target, pattern, at, diags, strict) {
|
|
497
|
+
// Parentheses are transparent around a simple target only: a pattern is
|
|
498
|
+
// not a LeftHandSideExpression, so `([a]) = rows` is a Syntax Error and
|
|
499
|
+
// `((a)) = 1` is not.
|
|
500
|
+
if (ts.isParenthesizedExpression(target)) {
|
|
501
|
+
checkTargetForm(target.expression, false, at, diags, strict);
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
const node = target;
|
|
505
|
+
if (ts.isIdentifier(node)) {
|
|
506
|
+
if (strict !== null && (node.text === "eval" || node.text === "arguments") && strict(node))
|
|
507
|
+
report(diags, STRICT_EVAL_BINDING, at, `strict mode code may not assign to '${node.text}'`);
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node))
|
|
511
|
+
return;
|
|
512
|
+
// `new.target = 1` is caught by the checker; a meta property is never a
|
|
513
|
+
// reference and never a pattern, so it falls through.
|
|
514
|
+
if (pattern && ts.isArrayLiteralExpression(node)) {
|
|
515
|
+
for (const element of node.elements.nodes) {
|
|
516
|
+
if (ts.isOmittedExpression(element))
|
|
517
|
+
continue;
|
|
518
|
+
// A rest target and the target of a default admit a nested pattern
|
|
519
|
+
// (`[...[a]] = rows`, `[[a] = [1]] = rows`).
|
|
520
|
+
if (ts.isSpreadElement(element)) {
|
|
521
|
+
checkTargetForm(element.expression, true, at, diags, strict);
|
|
522
|
+
continue;
|
|
523
|
+
}
|
|
524
|
+
if (ts.isBinaryExpression(element) &&
|
|
525
|
+
element.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
|
|
526
|
+
checkTargetForm(element.left, true, at, diags, strict);
|
|
527
|
+
continue;
|
|
528
|
+
}
|
|
529
|
+
checkTargetForm(element, true, at, diags, strict);
|
|
530
|
+
}
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
if (pattern && ts.isObjectLiteralExpression(node)) {
|
|
534
|
+
for (const property of node.properties.nodes) {
|
|
535
|
+
if (ts.isSpreadAssignment(property)) {
|
|
536
|
+
checkTargetForm(property.expression, false, at, diags, strict);
|
|
537
|
+
continue;
|
|
538
|
+
}
|
|
539
|
+
if (ts.isShorthandPropertyAssignment(property)) {
|
|
540
|
+
// The shorthand's own name is the target.
|
|
541
|
+
checkTargetForm(property.name, false, at, diags, strict);
|
|
542
|
+
continue;
|
|
543
|
+
}
|
|
544
|
+
if (!ts.isPropertyAssignment(property))
|
|
545
|
+
continue;
|
|
546
|
+
const value = property.initializer;
|
|
547
|
+
if (ts.isBinaryExpression(value) && value.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
|
|
548
|
+
checkTargetForm(value.left, true, at, diags, strict);
|
|
549
|
+
continue;
|
|
550
|
+
}
|
|
551
|
+
checkTargetForm(value, true, at, diags, strict);
|
|
552
|
+
}
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
555
|
+
report(diags, INVALID_ASSIGNMENT_TARGET, at, "the left-hand side of an assignment must be a variable reference or a property access");
|
|
556
|
+
}
|
|
266
557
|
/* ── strictness of the code around a node ───────────────────────────────
|
|
267
558
|
*
|
|
268
559
|
* A directive prologue's "use strict" applies to the function (or script) it
|
|
@@ -302,4 +593,244 @@ function hasUseStrictPrologue(statements) {
|
|
|
302
593
|
}
|
|
303
594
|
return false;
|
|
304
595
|
}
|
|
596
|
+
/* ── SC0011: `await` where the grammar makes it an operator ─────────────
|
|
597
|
+
*
|
|
598
|
+
* Identifier : IdentifierName but not ReservedWord
|
|
599
|
+
*
|
|
600
|
+
* The grammar passes an [Await] parameter down to every production whose
|
|
601
|
+
* tokens are parsed in an async context, and there `await` is the
|
|
602
|
+
* AwaitExpression keyword rather than an Identifier: an async function's
|
|
603
|
+
* FormalParameters and FunctionBody, a class static block's body (its
|
|
604
|
+
* ClassStaticBlockStatementList is parsed with Await=true), and a module's
|
|
605
|
+
* ModuleItemList (top-level await). What resets [Await] to false is a
|
|
606
|
+
* syntactic scope of its own: a non-async function's parameters and body, a
|
|
607
|
+
* class field initializer, and — the one that reads as a surprise — an
|
|
608
|
+
* arrow function's BODY (ConciseBody is [~Await] by production, whatever
|
|
609
|
+
* the arrow's own async-ness), while the arrow's PARAMETERS keep the
|
|
610
|
+
* context's [Await].
|
|
611
|
+
*
|
|
612
|
+
* tsc accepts every one of these positions, so nothing in the checker's
|
|
613
|
+
* gate rejects them; Node's parser does (`var await = 1` in an async
|
|
614
|
+
* function is "Unexpected reserved word"), and the position a negative
|
|
615
|
+
* parse test pins is exactly this one. The IdentifierName positions stay
|
|
616
|
+
* open — `o.await`, `{ await: 1 }`, `class C { await() {} }` are ordinary
|
|
617
|
+
* JavaScript — as do the labels' identifier slots only where [Await] is
|
|
618
|
+
* false (`await: for (;;) break await;` is legal in sloppy script code and
|
|
619
|
+
* a Syntax Error inside an async function). */
|
|
620
|
+
function checkAwaitIdentifier(node, diags, isModuleCode) {
|
|
621
|
+
if (!ts.isIdentifier(node) || node.text !== "await")
|
|
622
|
+
return;
|
|
623
|
+
if (isIdentifierNamePosition(node))
|
|
624
|
+
return;
|
|
625
|
+
if (!awaitIsReservedAt(node, isModuleCode))
|
|
626
|
+
return;
|
|
627
|
+
report(diags, AWAIT_IS_RESERVED, node, "'await' is an operator in this context, not an identifier: an async function body or parameter list, a class static block, and a module's top level parse it as the await keyword");
|
|
628
|
+
}
|
|
629
|
+
/** The [Await] parameter of the context `node` sits in. */
|
|
630
|
+
function awaitIsReservedAt(node, isModuleCode) {
|
|
631
|
+
let child = node;
|
|
632
|
+
for (let n = node.parent; n !== undefined; child = n, n = n.parent) {
|
|
633
|
+
if (ts.isSourceFile(n))
|
|
634
|
+
return isModuleCode(n);
|
|
635
|
+
if (ts.isClassStaticBlockDeclaration(n))
|
|
636
|
+
return true;
|
|
637
|
+
if (ts.isPropertyDeclaration(n)) {
|
|
638
|
+
// A field initializer is its own function-like scope with Await=false;
|
|
639
|
+
// the element's computed name is evaluated in the enclosing one.
|
|
640
|
+
if (n.initializer !== undefined && isWithin(n.initializer, child))
|
|
641
|
+
return false;
|
|
642
|
+
continue;
|
|
643
|
+
}
|
|
644
|
+
if (ts.isArrowFunction(n)) {
|
|
645
|
+
// The body resets [Await] to the arrow's own async-ness; the parameters
|
|
646
|
+
// inherit the enclosing context.
|
|
647
|
+
if (isWithin(n.body, child))
|
|
648
|
+
return isAsyncFunction(n);
|
|
649
|
+
if (isAsyncFunction(n))
|
|
650
|
+
return true;
|
|
651
|
+
continue;
|
|
652
|
+
}
|
|
653
|
+
if (ts.isFunctionLike(n)) {
|
|
654
|
+
// A computed member name is evaluated in the enclosing context: the
|
|
655
|
+
// method's own [Await] applies to its parameter list and its body, not
|
|
656
|
+
// to the name that puts the member on the object or class.
|
|
657
|
+
const name = n.name;
|
|
658
|
+
if (name !== undefined && ts.isComputedPropertyName(name) && isWithin(name, child))
|
|
659
|
+
continue;
|
|
660
|
+
return isAsyncFunction(n);
|
|
661
|
+
}
|
|
662
|
+
if (ts.isClassDeclaration(n) || ts.isClassExpression(n))
|
|
663
|
+
continue;
|
|
664
|
+
}
|
|
665
|
+
return false;
|
|
666
|
+
}
|
|
667
|
+
/** Whether `node` is at or below `container`. */
|
|
668
|
+
function isWithin(container, node) {
|
|
669
|
+
for (let n = node; n !== undefined; n = n.parent) {
|
|
670
|
+
if (n === container)
|
|
671
|
+
return true;
|
|
672
|
+
}
|
|
673
|
+
return false;
|
|
674
|
+
}
|
|
675
|
+
function isAsyncFunction(node) {
|
|
676
|
+
const modifiers = node.modifiers?.nodes;
|
|
677
|
+
if (modifiers !== undefined) {
|
|
678
|
+
for (const modifier of modifiers)
|
|
679
|
+
if (modifier.kind === ts.SyntaxKind.AsyncKeyword)
|
|
680
|
+
return true;
|
|
681
|
+
}
|
|
682
|
+
return (ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async) !== 0;
|
|
683
|
+
}
|
|
684
|
+
/** The positions whose identifier slot is an IdentifierName or a keyword the
|
|
685
|
+
* grammar spells out, never a ReservedWord-checked Identifier: property
|
|
686
|
+
* names, member names, labels, specifier names, and type references. */
|
|
687
|
+
function isIdentifierNamePosition(node) {
|
|
688
|
+
const parent = node.parent;
|
|
689
|
+
if (parent === undefined)
|
|
690
|
+
return false;
|
|
691
|
+
if (ts.isPropertyAccessExpression(parent) && parent.name === node)
|
|
692
|
+
return true;
|
|
693
|
+
if (ts.isQualifiedName(parent) && parent.right === node)
|
|
694
|
+
return true;
|
|
695
|
+
if (ts.isImportSpecifier(parent) || ts.isExportSpecifier(parent))
|
|
696
|
+
return true;
|
|
697
|
+
// A destructuring rename's property name is an IdentifierName; its binding
|
|
698
|
+
// name (`{ await: x }` vs `{ await }`) is a BindingIdentifier and is not.
|
|
699
|
+
if (ts.isBindingElement(parent) && parent.propertyName === node)
|
|
700
|
+
return true;
|
|
701
|
+
if (ts.isTypeReferenceNode(parent) || ts.isExpressionWithTypeArguments(parent))
|
|
702
|
+
return true;
|
|
703
|
+
const named = parent;
|
|
704
|
+
if (named.name === node) {
|
|
705
|
+
if (ts.isPropertyAssignment(parent) ||
|
|
706
|
+
ts.isPropertyDeclaration(parent) ||
|
|
707
|
+
ts.isPropertySignatureDeclaration(parent) ||
|
|
708
|
+
ts.isMethodDeclaration(parent) ||
|
|
709
|
+
ts.isMethodSignatureDeclaration(parent) ||
|
|
710
|
+
ts.isGetAccessorDeclaration(parent) ||
|
|
711
|
+
ts.isSetAccessorDeclaration(parent) ||
|
|
712
|
+
ts.isEnumMember(parent) ||
|
|
713
|
+
ts.isModuleDeclaration(parent) ||
|
|
714
|
+
ts.isClassDeclaration(parent) ||
|
|
715
|
+
ts.isClassExpression(parent) ||
|
|
716
|
+
ts.isFunctionDeclaration(parent) ||
|
|
717
|
+
ts.isFunctionExpression(parent))
|
|
718
|
+
return true;
|
|
719
|
+
}
|
|
720
|
+
return false;
|
|
721
|
+
}
|
|
722
|
+
/* ── SC0012: ContainsArguments in a class field initializer ─────────────
|
|
723
|
+
*
|
|
724
|
+
* FieldDefinition : ClassElementName Initializer_opt
|
|
725
|
+
* It is a Syntax Error if ContainsArguments of Initializer is true.
|
|
726
|
+
* ClassStaticBlockBody : StatementList
|
|
727
|
+
* It is a Syntax Error if ContainsArguments of ClassStaticBlockBody is
|
|
728
|
+
* true.
|
|
729
|
+
*
|
|
730
|
+
* ContainsArguments walks the production tree for an IdentifierReference
|
|
731
|
+
* spelling `arguments` and stops at a function boundary — except an arrow
|
|
732
|
+
* function, whose body is part of the initializer's own evaluation. The
|
|
733
|
+
* computed ClassElementName is NOT part of the rule (`class C { [arguments]
|
|
734
|
+
* = 1 }` is legal: the name is evaluated in the enclosing scope), and a
|
|
735
|
+
* method's `arguments` is a method's own.
|
|
736
|
+
*
|
|
737
|
+
* The checker reports the common spelling of this as TS2304 ("Cannot find
|
|
738
|
+
* name 'arguments'"), which JavaScript sources relax because an undeclared
|
|
739
|
+
* name is Node's catchable ReferenceError — but here the construct never
|
|
740
|
+
* runs at all: Node refuses the source. */
|
|
741
|
+
function checkClassInitializerArguments(node, diags) {
|
|
742
|
+
let root;
|
|
743
|
+
if (ts.isPropertyDeclaration(node))
|
|
744
|
+
root = node.initializer;
|
|
745
|
+
else if (ts.isClassStaticBlockDeclaration(node))
|
|
746
|
+
root = node.body;
|
|
747
|
+
if (root === undefined)
|
|
748
|
+
return;
|
|
749
|
+
const hit = firstArgumentsReference(root);
|
|
750
|
+
if (hit === null)
|
|
751
|
+
return;
|
|
752
|
+
report(diags, ARGUMENTS_IN_CLASS_INITIALIZER, hit, "'arguments' is not allowed in a class field initializer or a class static block");
|
|
753
|
+
}
|
|
754
|
+
/** The first IdentifierReference to `arguments` below `root`, for
|
|
755
|
+
* ContainsArguments: arrows are transparent, every other function form stops
|
|
756
|
+
* the walk. */
|
|
757
|
+
function firstArgumentsReference(root) {
|
|
758
|
+
const stack = [root];
|
|
759
|
+
while (stack.length > 0) {
|
|
760
|
+
const node = stack.pop();
|
|
761
|
+
if (ts.isFunctionLike(node) && !ts.isArrowFunction(node))
|
|
762
|
+
continue;
|
|
763
|
+
if (ts.isIdentifier(node) && node.text === "arguments" && !isIdentifierNamePosition(node))
|
|
764
|
+
return node;
|
|
765
|
+
ts.forEachChild(node, (child) => {
|
|
766
|
+
stack.push(child);
|
|
767
|
+
return undefined;
|
|
768
|
+
});
|
|
769
|
+
}
|
|
770
|
+
return null;
|
|
771
|
+
}
|
|
772
|
+
/* ── SC0013: a `using` declaration at the top level of a Script ─────────
|
|
773
|
+
*
|
|
774
|
+
* UsingDeclaration : using BindingList ;
|
|
775
|
+
* It is a Syntax Error if the goal symbol is Script and the declaration
|
|
776
|
+
* is not contained, directly or indirectly, within a Block, a
|
|
777
|
+
* ForStatement, a ForInOfStatement, a FunctionBody, a GeneratorBody, an
|
|
778
|
+
* AsyncGeneratorBody, an AsyncFunctionBody, a ClassStaticBlockBody, or a
|
|
779
|
+
* ClassBody.
|
|
780
|
+
*
|
|
781
|
+
* A Module's top level is NOT in that list (a module's resources live until
|
|
782
|
+
* the module finishes evaluating), so the rule is the script goal's alone —
|
|
783
|
+
* which is why the check asks the program's own Node classification rather
|
|
784
|
+
* than the statement position. */
|
|
785
|
+
function checkScriptTopLevelUsing(node, diags, isModuleCode) {
|
|
786
|
+
if (!ts.isSourceFile(node))
|
|
787
|
+
return;
|
|
788
|
+
if (isModuleCode(node))
|
|
789
|
+
return;
|
|
790
|
+
for (const stmt of node.statements.nodes) {
|
|
791
|
+
if (!ts.isVariableStatement(stmt))
|
|
792
|
+
continue;
|
|
793
|
+
// `using` is the Using bit; `await using` spells AwaitUsing (Const |
|
|
794
|
+
// Using), so the Using bit alone answers both — and only those.
|
|
795
|
+
if ((stmt.declarationList.flags & ts.NodeFlags.Using) === 0)
|
|
796
|
+
continue;
|
|
797
|
+
report(diags, USING_IN_SCRIPT_TOP_LEVEL, stmt.declarationList, "a 'using' declaration is not allowed at the top level of a script: put it in a block, a function body, or a class static block");
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
/* ── SC0015: a catch parameter colliding with a block declaration ───────
|
|
801
|
+
*
|
|
802
|
+
* Catch : catch ( CatchParameter ) Block
|
|
803
|
+
* It is a Syntax Error if any element of the BoundNames of CatchParameter
|
|
804
|
+
* also occurs in the LexicallyDeclaredNames of Block.
|
|
805
|
+
*
|
|
806
|
+
* A `var` in the block is Annex B's legacy and stays legal, and a nested
|
|
807
|
+
* block is a different Block (its declarations are not this list's).
|
|
808
|
+
* TypeScript reports the let/const/class spellings as TS2300, which the
|
|
809
|
+
* preflight gate keeps; a plain function declaration is the form it does
|
|
810
|
+
* not report (`try {} catch (e) { function e() {} }`), and Node refuses it
|
|
811
|
+
* in both modes. */
|
|
812
|
+
function checkCatchParameterCollision(node, diags) {
|
|
813
|
+
if (!ts.isTryStatement(node) || node.catchClause === undefined)
|
|
814
|
+
return;
|
|
815
|
+
const clause = node.catchClause;
|
|
816
|
+
const parameter = clause.variableDeclaration;
|
|
817
|
+
const block = clause.block;
|
|
818
|
+
if (parameter === undefined || block === undefined)
|
|
819
|
+
return;
|
|
820
|
+
const names = new Set();
|
|
821
|
+
const entries = [];
|
|
822
|
+
collectBindingNames(parameter.name, entries);
|
|
823
|
+
for (const [name] of entries)
|
|
824
|
+
names.add(name);
|
|
825
|
+
if (names.size === 0)
|
|
826
|
+
return;
|
|
827
|
+
for (const stmt of block.statements.nodes) {
|
|
828
|
+
if (!ts.isFunctionDeclaration(stmt))
|
|
829
|
+
continue;
|
|
830
|
+
const name = stmt.name;
|
|
831
|
+
if (name === undefined || !ts.isIdentifier(name) || !names.has(name.text))
|
|
832
|
+
continue;
|
|
833
|
+
report(diags, CATCH_PARAMETER_COLLISION, name, `the catch parameter '${name.text}' is already declared in this catch block`);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
305
836
|
//# sourceMappingURL=early-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"early-errors.js","sourceRoot":"","sources":["../../src/frontend/early-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;qBAqBqB;AAErB,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;4DAG4D;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAEzE,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AACvC,MAAM,eAAe,GAAG,QAAQ,CAAC;AASjC,MAAM,UAAU,sBAAsB,CACpC,KAA+B,EAC/B,YAA4C;IAE5C,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAClF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC/C,sEAAsE;QACtE,gDAAgD;QAChD,MAAM,KAAK,GAAc,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YAC1B,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACnD,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,IAAa;IAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,MAAM,CAAC,KAAsB,EAAE,IAAoB,EAAE,IAAa,EAAE,OAAe;IAC1F,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAID;;;;;;;;;;;;;;;;;;;;qEAoBqE;AAErE,SAAS,uBAAuB,CAC9B,EAAiB,EACjB,IAAa,EACb,KAAsB,EACtB,QAAsB;IAEtB,IAAI,UAAU,GAAmC,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SACpD,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO;IAChC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IAClC,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;;gBAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,YAAY,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAC3E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,CACJ,KAAK,EACL,qBAAqB,EACrB,KAAK,CAAC,CAAC,CAAE,EACT,YAAY;gBACV,CAAC,CAAC,4BAA4B,IAAI,wFAAwF;gBAC1H,CAAC,CAAC,4BAA4B,IAAI,oEAAoE,CACzG,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,uEAAuE;QACvE,+CAA+C;QAC/C,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC;gBAAE,SAAS;QACzC,CAAC;QACD,MAAM,CACJ,KAAK,EACL,oBAAoB,EACpB,KAAK,CAAC,CAAC,CAAE,EACT,oBAAoB,IAAI,sDAAsD,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;qDACqD;AACrD,SAAS,cAAc,CAAC,IAAa;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,EAAE,CAAC,6BAA6B,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,OAAO,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAK,MAA6B,CAAC,IAAI,KAAK,IAAI,CAAC;AACnF,CAAC;AAED;;sEAEsE;AACtE,SAAS,qBAAqB,CAC5B,IAAkB,EAClB,YAAqB;IAErB,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK;YACxD,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAoB,EAAE,IAA8B;IAC/E,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAAE,SAAS;QAC9C,IAAI,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAC5D,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;uBAEuB;AACvB,SAAS,uBAAuB,CAAC,IAAa,EAAE,IAAiB;IAC/D,MAAM,KAAK,GAAc,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC1B,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACtF,SAAS;QACX,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACxF,MAAM,KAAK,GAA6B,EAAE,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK;gBAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClF,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;oBACoB;AACpB,SAAS,kBAAkB,CAAC,IAA4B;IACtD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAaD,SAAS,kBAAkB,CAAC,IAAa,EAAE,KAAsB,EAAE,QAAsB;IACvF,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;YAClC,sBAAsB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IACD,IACE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;QACtB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACzB,CAAC;QACD,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAAE,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAkB,EAClB,IAAmB,EACnB,KAAsB,EACtB,QAAsB;IAEtB,MAAM,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,yEAAyE;IACzE,uEAAuE;IACvE,qEAAqE;IACrE,+CAA+C;IAC/C,MAAM,aAAa,GACjB,IAAI,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACrF,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,CACJ,KAAK,EACL,eAAe,EACf,aAAa,EACb,qGAAqG,CACtG,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;YAC/D,MAAM,CACJ,KAAK,EACL,eAAe,EACf,IAAI,EACJ,oEAAoE,CACrE,CAAC;QACJ,OAAO;IACT,CAAC;IACD,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,CACJ,KAAK,EACL,eAAe,EACf,IAAI,EACJ,kEAAkE,CACnE,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;QAAE,OAAO;IAC5C,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,CACJ,KAAK,EACL,eAAe,EACf,IAAI,EACJ,+FAA+F,CAChG,CAAC;QACF,OAAO;IACT,CAAC;IACD,4EAA4E;IAC5E,4EAA4E;IAC5E,2BAA2B;IAC3B,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACvC,MAAM,CACJ,KAAK,EACL,eAAe,EACf,IAAI,EACJ,4GAA4G,CAC7G,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QACpB,MAAM,CACJ,KAAK,EACL,eAAe,EACf,IAAI,EACJ,4EAA4E,CAC7E,CAAC;AACN,CAAC;AAED;oCACoC;AACpC,SAAS,kBAAkB,CAAC,IAAkB;IAC5C,IAAI,GAAG,GAAiB,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;IACvD,OAAO,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED;;;;;;;;;;mEAUmE;AACnE,SAAS,YAAY,CACnB,EAAiB,EACjB,IAAa,EACb,YAA4C;IAE5C,IAAI,YAAY,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,KAAK,IAAI,CAAC,GAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7E,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACvF,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAmC;IAC/D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"early-errors.js","sourceRoot":"","sources":["../../src/frontend/early-errors.ts"],"names":[],"mappings":"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"}
|