@scriptc/compiler 0.3.2 → 0.3.3
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/scriptc-node-fallback.d.ts +490 -39
- package/dist/backend/cycle-analysis.js +6 -1
- package/dist/backend/cycle-analysis.js.map +1 -1
- package/dist/backend/llvm/alloc.js +24 -10
- package/dist/backend/llvm/alloc.js.map +1 -1
- package/dist/backend/llvm/alloc.test.js +47 -1
- package/dist/backend/llvm/alloc.test.js.map +1 -1
- package/dist/backend/llvm/array-search.d.ts +8 -0
- package/dist/backend/llvm/array-search.js +52 -0
- package/dist/backend/llvm/array-search.js.map +1 -0
- package/dist/backend/llvm/array-search.test.d.ts +1 -0
- package/dist/backend/llvm/array-search.test.js +72 -0
- package/dist/backend/llvm/array-search.test.js.map +1 -0
- package/dist/backend/llvm/call-lifetimes.d.ts +8 -1
- package/dist/backend/llvm/call-lifetimes.js +33 -11
- package/dist/backend/llvm/call-lifetimes.js.map +1 -1
- package/dist/backend/llvm/call-lifetimes.test.js +54 -0
- package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
- package/dist/backend/llvm/classes.js +87 -36
- package/dist/backend/llvm/classes.js.map +1 -1
- package/dist/backend/llvm/common.d.ts +1 -1
- package/dist/backend/llvm/common.js +1 -1
- package/dist/backend/llvm/dense-array-access.d.ts +5 -0
- package/dist/backend/llvm/dense-array-access.js +1 -1
- package/dist/backend/llvm/dense-array-access.js.map +1 -1
- package/dist/backend/llvm/dyn.d.ts +4 -0
- package/dist/backend/llvm/dyn.js +73 -9
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +65 -14
- package/dist/backend/llvm/emitter.js +297 -81
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/emitter.test.js +26 -3
- package/dist/backend/llvm/emitter.test.js.map +1 -1
- package/dist/backend/llvm/expr-async.js +52 -1
- package/dist/backend/llvm/expr-async.js.map +1 -1
- package/dist/backend/llvm/expr-bytes.js +11 -0
- package/dist/backend/llvm/expr-bytes.js.map +1 -1
- package/dist/backend/llvm/expr-callbacks.js +16 -2
- package/dist/backend/llvm/expr-callbacks.js.map +1 -1
- package/dist/backend/llvm/expr-calls.js +8 -1
- package/dist/backend/llvm/expr-calls.js.map +1 -1
- package/dist/backend/llvm/expr-containers.js +42 -15
- package/dist/backend/llvm/expr-containers.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +19 -8
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.js +28 -30
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/expr-records.js +8 -4
- package/dist/backend/llvm/expr-records.js.map +1 -1
- package/dist/backend/llvm/expr-stream-bridges.js +35 -32
- package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
- package/dist/backend/llvm/expr-stream-callbacks.d.ts +13 -2
- package/dist/backend/llvm/expr-stream-callbacks.js +80 -5
- package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
- package/dist/backend/llvm/inline-unions.d.ts +48 -0
- package/dist/backend/llvm/inline-unions.js +134 -0
- package/dist/backend/llvm/inline-unions.js.map +1 -0
- package/dist/backend/llvm/inline-unions.test.d.ts +1 -0
- package/dist/backend/llvm/inline-unions.test.js +124 -0
- package/dist/backend/llvm/inline-unions.test.js.map +1 -0
- package/dist/backend/llvm/integer-remainder.d.ts +28 -5
- package/dist/backend/llvm/integer-remainder.js +80 -9
- package/dist/backend/llvm/integer-remainder.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +163 -28
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +125 -7
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +9 -6
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +2 -2
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +132 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-stream.js +97 -0
- package/dist/backend/llvm/lib-stream.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.js +7 -3
- package/dist/backend/llvm/local-array-reads.js.map +1 -1
- package/dist/backend/llvm/local-array-reads.test.js +6 -3
- package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.d.ts +2 -0
- package/dist/backend/llvm/local-union-storage.js +5 -0
- package/dist/backend/llvm/local-union-storage.js.map +1 -1
- package/dist/backend/llvm/local-union-storage.test.js +1 -0
- package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
- package/dist/backend/llvm/loop-array-borrows.d.ts +8 -2
- package/dist/backend/llvm/loop-array-borrows.js +93 -13
- package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.d.ts +20 -0
- package/dist/backend/llvm/map-number-lookup.js +66 -0
- package/dist/backend/llvm/map-number-lookup.js.map +1 -1
- package/dist/backend/llvm/map-number-lookup.test.d.ts +1 -0
- package/dist/backend/llvm/map-number-lookup.test.js +102 -0
- package/dist/backend/llvm/map-number-lookup.test.js.map +1 -0
- package/dist/backend/llvm/map-read-lifetimes.js +1 -0
- package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
- package/dist/backend/llvm/publish.d.ts +4 -0
- package/dist/backend/llvm/publish.js +3 -1
- package/dist/backend/llvm/publish.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +8 -5
- package/dist/backend/llvm/record-results.js +20 -12
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-effects.js +13 -0
- package/dist/backend/llvm/reference-effects.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +14 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/regions.d.ts +1 -0
- package/dist/backend/llvm/regions.js +12 -7
- package/dist/backend/llvm/regions.js.map +1 -1
- package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
- package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +56 -10
- package/dist/backend/llvm/shapes.js +178 -39
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/shapes.test.js +61 -3
- package/dist/backend/llvm/shapes.test.js.map +1 -1
- package/dist/backend/llvm/stack-objects.js +16 -4
- package/dist/backend/llvm/stack-objects.js.map +1 -1
- package/dist/backend/llvm/stack-objects.test.js +3 -0
- package/dist/backend/llvm/stack-objects.test.js.map +1 -1
- package/dist/backend/llvm/walkers.d.ts +11 -0
- package/dist/backend/llvm/walkers.js +106 -10
- package/dist/backend/llvm/walkers.js.map +1 -1
- package/dist/backend/may-throw.js +9 -4
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/contracts.d.ts +2 -2
- package/dist/backend/native/executable.js +14 -3
- package/dist/backend/native/executable.js.map +1 -1
- package/dist/backend/native/runtime-inputs.d.ts +1 -1
- package/dist/backend/native/runtime-inputs.js +1 -0
- package/dist/backend/native/runtime-inputs.js.map +1 -1
- package/dist/backend/native-toolchain.test.js +1 -1
- package/dist/backend/native-toolchain.test.js.map +1 -1
- package/dist/backend/runtime-abi.d.ts +2 -2
- package/dist/backend/runtime-abi.js +2 -2
- package/dist/backend/runtime-pack-targets.test.js +1 -1
- package/dist/backend/runtime-pack.test.js +1 -1
- package/dist/backend/target-diagnostics.js +4 -1
- package/dist/backend/target-diagnostics.js.map +1 -1
- package/dist/backend/target-diagnostics.test.js +4 -1
- package/dist/backend/target-diagnostics.test.js.map +1 -1
- package/dist/compat/fetch-profile.js +4 -4
- package/dist/compat/fetch-profile.js.map +1 -1
- package/dist/contracts/check.js +2 -0
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/report.js +1 -1
- package/dist/coverage/report.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +6 -5
- package/dist/diagnostics/diagnostic.js +7 -6
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/builtin-modules.d.ts +1 -1
- package/dist/frontend/builtin-modules.js +1 -0
- package/dist/frontend/builtin-modules.js.map +1 -1
- package/dist/frontend/comptime-node.js +2 -2
- package/dist/frontend/comptime-node.js.map +1 -1
- package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
- package/dist/frontend/lowering/binding-analysis.js +1 -1
- package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
- package/dist/frontend/lowering/builtins/arguments.js +8 -4
- package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
- package/dist/frontend/lowering/builtins/blob.d.ts +20 -0
- package/dist/frontend/lowering/builtins/blob.js +167 -0
- package/dist/frontend/lowering/builtins/blob.js.map +1 -0
- package/dist/frontend/lowering/builtins/child-process-async.d.ts +2 -2
- package/dist/frontend/lowering/builtins/child-process-async.js +2 -2
- package/dist/frontend/lowering/builtins/child-process-methods.js +1 -1
- package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js +1 -1
- package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.js +3 -2
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.js +415 -120
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +10 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +89 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +16 -7
- package/dist/frontend/lowering/builtins/filesystem.js +97 -15
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/fs-glob.d.ts +23 -0
- package/dist/frontend/lowering/builtins/fs-glob.js +224 -0
- package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -0
- package/dist/frontend/lowering/builtins/key-object.d.ts +13 -0
- package/dist/frontend/lowering/builtins/key-object.js +56 -0
- package/dist/frontend/lowering/builtins/key-object.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +44 -11
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/performance.d.ts +25 -3
- package/dist/frontend/lowering/builtins/performance.js +340 -5
- package/dist/frontend/lowering/builtins/performance.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.d.ts +2 -2
- package/dist/frontend/lowering/builtins/process.js +107 -14
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/properties.d.ts +0 -7
- package/dist/frontend/lowering/builtins/properties.js +39 -11
- package/dist/frontend/lowering/builtins/properties.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +23 -8
- package/dist/frontend/lowering/builtins/readline.js +266 -90
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/url.d.ts +8 -0
- package/dist/frontend/lowering/builtins/url.js +36 -0
- package/dist/frontend/lowering/builtins/url.js.map +1 -1
- package/dist/frontend/lowering/call-arguments.js +1 -1
- package/dist/frontend/lowering/call-arguments.js.map +1 -1
- package/dist/frontend/lowering/call-signatures.js +20 -2
- package/dist/frontend/lowering/call-signatures.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +2 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.js +105 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
- package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
- package/dist/frontend/lowering/class-protocol-dispatch.d.ts +45 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js +516 -0
- package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -0
- package/dist/frontend/lowering/coercions/structural-plans.js +2 -1
- package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
- package/dist/frontend/lowering/coercions/structural.js +3 -3
- package/dist/frontend/lowering/coercions/structural.js.map +1 -1
- package/dist/frontend/lowering/collation-repertoire.js +6 -5
- package/dist/frontend/lowering/collation-repertoire.js.map +1 -1
- package/dist/frontend/lowering/containers/array-callbacks.js +4 -7
- package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
- package/dist/frontend/lowering/containers/array-methods.d.ts +0 -7
- package/dist/frontend/lowering/containers/array-methods.js +43 -2
- package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
- package/dist/frontend/lowering/containers/bytes.js +38 -26
- package/dist/frontend/lowering/containers/bytes.js.map +1 -1
- package/dist/frontend/lowering/containers/for-of.d.ts +1 -1
- package/dist/frontend/lowering/containers/for-of.js +5 -1
- package/dist/frontend/lowering/containers/for-of.js.map +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js +1 -1
- package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
- package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
- package/dist/frontend/lowering/crypto-tables.js +77 -12
- package/dist/frontend/lowering/crypto-tables.js.map +1 -1
- package/dist/frontend/lowering/expressions/nullish-assignment.js +10 -0
- package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
- package/dist/frontend/lowering/expressions/object-literals.js +16 -12
- package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
- package/dist/frontend/lowering/generic-functions.d.ts +2 -2
- package/dist/frontend/lowering/generic-functions.js +2 -2
- package/dist/frontend/lowering/generic-functions.js.map +1 -1
- package/dist/frontend/lowering/http2-constants.js +1 -1
- package/dist/frontend/lowering/lower-array-sort.d.ts +12 -1
- package/dist/frontend/lowering/lower-array-sort.js +561 -191
- package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
- package/dist/frontend/lowering/lower-array-sort.test.js +4 -2
- package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
- package/dist/frontend/lowering/lower-assert.js +2 -2
- package/dist/frontend/lowering/lower-async-iteration.d.ts +6 -3
- package/dist/frontend/lowering/lower-async-iteration.js +248 -2
- package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +101 -9
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.d.ts +8 -2
- package/dist/frontend/lowering/lower-classes.js +40 -9
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
- package/dist/frontend/lowering/lower-comptime.js +4 -4
- package/dist/frontend/lowering/lower-comptime.js.map +1 -1
- package/dist/frontend/lowering/lower-event-target.d.ts +63 -0
- package/dist/frontend/lowering/lower-event-target.js +362 -0
- package/dist/frontend/lowering/lower-event-target.js.map +1 -0
- package/dist/frontend/lowering/lower-expando.js +2 -2
- package/dist/frontend/lowering/lower-exprs.js +112 -22
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +129 -11
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mixins.js +1 -1
- package/dist/frontend/lowering/lower-modules.d.ts +1 -1
- package/dist/frontend/lowering/lower-modules.js +7 -3
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-namespaces.d.ts +2 -2
- package/dist/frontend/lowering/lower-namespaces.js +2 -2
- package/dist/frontend/lowering/lower-server.js +39 -14
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stdlib.d.ts +7 -1
- package/dist/frontend/lowering/lower-stdlib.js +10 -3
- package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.d.ts +2 -2
- package/dist/frontend/lowering/lower-stmts.js +46 -12
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.js +234 -22
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-timers.js +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +23 -5
- package/dist/frontend/lowering/lowerer.js +245 -41
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/native-ffi.js +2 -2
- package/dist/frontend/lowering/native-ffi.js.map +1 -1
- package/dist/frontend/lowering/runtime-optional-records.d.ts +115 -0
- package/dist/frontend/lowering/runtime-optional-records.js +715 -0
- package/dist/frontend/lowering/runtime-optional-records.js.map +1 -0
- package/dist/frontend/lowering/runtime-optional-records.test.d.ts +1 -0
- package/dist/frontend/lowering/runtime-optional-records.test.js +175 -0
- package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +7 -3
- package/dist/frontend/lowering/surfaces.js +273 -22
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/module-syntax.d.ts +1 -1
- package/dist/frontend/module-syntax.js +1 -1
- package/dist/frontend/npm-static-prune.js +1 -1
- package/dist/frontend/npm-static-prune.js.map +1 -1
- package/dist/frontend/npm-static-rewrite-syntax.js +4 -3
- package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
- package/dist/frontend/pipeline.js +1 -1
- package/dist/frontend/pipeline.js.map +1 -1
- package/dist/frontend/program.d.ts +3 -3
- package/dist/frontend/program.js +19 -17
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/resolve.js +1 -1
- package/dist/frontend/ts7/adapter.js +1 -1
- package/dist/frontend/ts7/ast-bytes.d.ts +1 -1
- package/dist/frontend/ts7/ast-bytes.js +1 -1
- package/dist/frontend/ts7/semantic-json.d.ts +1 -1
- package/dist/frontend/ts7/semantic-json.js +1 -1
- package/dist/frontend/ts7/semantic-json.js.map +1 -1
- package/dist/frontend/ts7/world-check.js +1 -1
- package/dist/frontend/tsc-codes.js +2 -2
- package/dist/frontend/tsc-codes.js.map +1 -1
- package/dist/frontend/type-mapper.d.ts +16 -1
- package/dist/frontend/type-mapper.js +143 -18
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/ir/analysis.d.ts +12 -6
- package/dist/ir/analysis.js +26 -10
- package/dist/ir/analysis.js.map +1 -1
- package/dist/ir/analysis.test.js +15 -3
- package/dist/ir/analysis.test.js.map +1 -1
- package/dist/ir/builtin-effects.js +79 -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 +291 -38
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/int32-slots.js +1 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/ir.d.ts +64 -16
- package/dist/ir/ir.js +37 -1
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.js +83 -6
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/serialize.js +1 -1
- package/dist/ir/serialize.js.map +1 -1
- package/dist/ir/traverse.js +1 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +100 -9
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +60 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/fence-eval.d.ts +1 -1
- package/dist/library/fence-eval.js +5 -4
- package/dist/library/fence-eval.js.map +1 -1
- package/dist/library/ir-policy.js +10 -4
- package/dist/library/ir-policy.js.map +1 -1
- package/dist/library/library-profile.js +13 -13
- package/dist/library/library-profile.js.map +1 -1
- package/dist/library/prepare.js +1 -1
- package/dist/library/prepare.js.map +1 -1
- package/dist/library/sidecar.js +3 -3
- package/dist/library/sidecar.js.map +1 -1
- package/dist/native/prepare.js +3 -2
- package/dist/native/prepare.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +379 -142
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/crypto.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,16 @@ export declare function lowerFsReadDescriptorCall(lowerer: Lowerer, expr: ts.Cal
|
|
|
24
24
|
/** Encoding-bearing reads share Buffer's decoder and runtime alias checks.
|
|
25
25
|
* Keep the read and encoding evaluation in source order in one helper. */
|
|
26
26
|
export declare function lowerFsEncodedRead(lowerer: Lowerer, expr: ts.CallExpression, descriptor: boolean, loc: SrcLoc): IrExpr | null;
|
|
27
|
+
/** fs.promises.readFile(path, encoding | { encoding }) when its result is a
|
|
28
|
+
* Promise<string>: the runtime checks the name and decodes, as
|
|
29
|
+
* readFileSync's encoded read does. Null for other shapes. */
|
|
30
|
+
export declare function lowerFsPromisesEncodedRead(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcLoc): IrExpr | null;
|
|
31
|
+
/** opendirSync(path[, options]) and fs.promises.opendir: the options are a
|
|
32
|
+
* literal `{ bufferSize?: <number>, encoding?: "utf8" }`. bufferSize
|
|
33
|
+
* defaults to Node's 32 and is checked by the runtime after the directory
|
|
34
|
+
* opens, as Node's Dir constructor does; other options (recursive, other
|
|
35
|
+
* encodings) have no lowering. */
|
|
36
|
+
export declare function lowerFsOpendirCall(lowerer: Lowerer, expr: ts.CallExpression, fn: BuiltinModuleFn, member: string, loc: SrcLoc): IrExpr;
|
|
27
37
|
export declare function lowerFsMkdirSyncCall(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcLoc): IrExpr;
|
|
28
38
|
export declare function lowerFsPromisesMkdirCall(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcLoc): IrExpr;
|
|
29
39
|
export declare function lowerFsRemoveCall(lowerer: Lowerer, expr: ts.CallExpression, loc: SrcLoc): IrExpr;
|
|
@@ -443,6 +443,85 @@ export function lowerFsEncodedRead(lowerer, expr, descriptor, loc) {
|
|
|
443
443
|
loc,
|
|
444
444
|
};
|
|
445
445
|
}
|
|
446
|
+
/** fs.promises.readFile(path, encoding | { encoding }) when its result is a
|
|
447
|
+
* Promise<string>: the runtime checks the name and decodes, as
|
|
448
|
+
* readFileSync's encoded read does. Null for other shapes. */
|
|
449
|
+
export function lowerFsPromisesEncodedRead(lowerer, expr, loc) {
|
|
450
|
+
if (expr.arguments.length !== 2 || expr.arguments.some(ts.isSpreadElement))
|
|
451
|
+
return null;
|
|
452
|
+
const result = lowerer.mapTypeOf(lowerer.typeOf(expr));
|
|
453
|
+
if (result?.kind !== "promise" || result.inner.kind !== "string")
|
|
454
|
+
return null;
|
|
455
|
+
const options = expr.arguments[1];
|
|
456
|
+
const optionsTsType = lowerer.typeOf(options);
|
|
457
|
+
if (optionsTsType.isStringLiteralType() &&
|
|
458
|
+
(optionsTsType.value === "utf8" || optionsTsType.value === "utf-8"))
|
|
459
|
+
return null;
|
|
460
|
+
const optionsType = lowerer.mapTypeOf(optionsTsType);
|
|
461
|
+
if (optionsType?.kind !== "string" && optionsType?.kind !== "record")
|
|
462
|
+
return null;
|
|
463
|
+
if (optionsType.kind === "record") {
|
|
464
|
+
const fields = lowerer.shapes.get(optionsType.shapeId)?.fields;
|
|
465
|
+
if (!fields ||
|
|
466
|
+
fields.find((entry) => entry.name === "encoding")?.type.kind !== "string" ||
|
|
467
|
+
fields.some((entry) => entry.name !== "encoding"))
|
|
468
|
+
return null;
|
|
469
|
+
}
|
|
470
|
+
const path = lowerer.lowerExprExpecting(expr.arguments[0], STRING);
|
|
471
|
+
const encoding = optionsType.kind === "string"
|
|
472
|
+
? lowerer.lowerExprExpecting(options, STRING)
|
|
473
|
+
: {
|
|
474
|
+
kind: "recordGet",
|
|
475
|
+
obj: lowerer.lowerExpr(options),
|
|
476
|
+
shapeId: optionsType.shapeId,
|
|
477
|
+
field: "encoding",
|
|
478
|
+
type: STRING,
|
|
479
|
+
loc,
|
|
480
|
+
};
|
|
481
|
+
return {
|
|
482
|
+
kind: "libCall",
|
|
483
|
+
fn: "fsp.readFileEncoded",
|
|
484
|
+
args: [path, encoding],
|
|
485
|
+
type: { kind: "promise", inner: STRING },
|
|
486
|
+
loc,
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
/** opendirSync(path[, options]) and fs.promises.opendir: the options are a
|
|
490
|
+
* literal `{ bufferSize?: <number>, encoding?: "utf8" }`. bufferSize
|
|
491
|
+
* defaults to Node's 32 and is checked by the runtime after the directory
|
|
492
|
+
* opens, as Node's Dir constructor does; other options (recursive, other
|
|
493
|
+
* encodings) have no lowering. */
|
|
494
|
+
export function lowerFsOpendirCall(lowerer, expr, fn, member, loc) {
|
|
495
|
+
if (expr.arguments.length < 1 ||
|
|
496
|
+
expr.arguments.length > 2 ||
|
|
497
|
+
expr.arguments.some(ts.isSpreadElement)) {
|
|
498
|
+
lowerer.noLowering(`${member} with ${expr.arguments.length} arguments`, expr);
|
|
499
|
+
}
|
|
500
|
+
const path = lowerer.lowerExprExpecting(expr.arguments[0], STRING);
|
|
501
|
+
let bufferSize = { kind: "numLit", value: 32, type: F64, loc };
|
|
502
|
+
const optsNode = expr.arguments[1];
|
|
503
|
+
if (optsNode && !(ts.isIdentifier(optsNode) && optsNode.text === "undefined")) {
|
|
504
|
+
const fence = () => lowerer.noLowering(`${member} options beyond { bufferSize, encoding: "utf8" }`, optsNode, "pass an object literal with a numeric bufferSize and a utf8 encoding; recursive walks and other encodings have no lowering");
|
|
505
|
+
if (!ts.isObjectLiteralExpression(optsNode))
|
|
506
|
+
fence();
|
|
507
|
+
for (const property of optsNode.properties) {
|
|
508
|
+
const option = optionMember(property);
|
|
509
|
+
if (!option)
|
|
510
|
+
fence();
|
|
511
|
+
else if (option.name === "bufferSize")
|
|
512
|
+
bufferSize = lowerer.lowerExprExpecting(option.value, F64);
|
|
513
|
+
else if (option.name === "encoding") {
|
|
514
|
+
const encoding = lowerer.typeOf(option.value);
|
|
515
|
+
if (!(encoding.isStringLiteralType() &&
|
|
516
|
+
(encoding.value === "utf8" || encoding.value === "utf-8")))
|
|
517
|
+
fence();
|
|
518
|
+
}
|
|
519
|
+
else
|
|
520
|
+
fence();
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
return { kind: "libCall", fn: fn.fn, args: [path, bufferSize], type: fn.result, loc };
|
|
524
|
+
}
|
|
446
525
|
// mkdirSync(p, options): the lowered options form is a literal
|
|
447
526
|
// `{ recursive?: <boolean literal>, mode?: <number> }` — recursive:
|
|
448
527
|
// true routes to Node's recursive algorithm (the mode, when present,
|
|
@@ -501,7 +580,7 @@ export function lowerFsPromisesMkdirCall(lowerer, expr, loc) {
|
|
|
501
580
|
// lower as ordinary number expressions into the retry libCall, whose
|
|
502
581
|
// runtime implements Node's linear-backoff retry on
|
|
503
582
|
// EBUSY/EMFILE/ENFILE/ENOTEMPTY/EPERM. The retry-free shape keeps the
|
|
504
|
-
// historical rmOptsSync
|
|
583
|
+
// historical rmOptsSync lowering unchanged.
|
|
505
584
|
export function lowerFsRemoveCall(lowerer, expr, loc) {
|
|
506
585
|
const opts = literalBoolOptions(expr.arguments[1], ["recursive", "force"], ["maxRetries", "retryDelay"]);
|
|
507
586
|
if (opts === null) {
|
|
@@ -552,6 +631,15 @@ export function lowerFsWriteBytesCall(lowerer, expr, bi, loc) {
|
|
|
552
631
|
}
|
|
553
632
|
const path = lowerer.lowerExprExpecting(expr.arguments[0], STRING);
|
|
554
633
|
const data = lowerer.lowerExprExpecting(expr.arguments[1], BYTES_U8);
|
|
634
|
+
if (bi.module === "fs/promises") {
|
|
635
|
+
return {
|
|
636
|
+
kind: "libCall",
|
|
637
|
+
fn: "fsp.appendFileBytes",
|
|
638
|
+
args: [path, data],
|
|
639
|
+
type: { kind: "promise", inner: VOID },
|
|
640
|
+
loc,
|
|
641
|
+
};
|
|
642
|
+
}
|
|
555
643
|
return {
|
|
556
644
|
kind: "libCall",
|
|
557
645
|
fn: bi.member === "appendFileSync" ? "fs.appendFileSyncBytes" : "fs.writeFileSyncBytes",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-calls.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/filesystem-calls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-calls.js","sourceRoot":"","sources":["../../../../src/frontend/lowering/builtins/filesystem-calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as ts from "../../ts7/adapter.js";
|
|
2
2
|
import { type Lowerer } from "../lowerer.js";
|
|
3
|
-
import { type IrExpr, type IrType, type SrcLoc } from "../../../ir/ir.js";
|
|
3
|
+
import { type IrExpr, type IrLibFn, type IrType, type SrcLoc } from "../../../ir/ir.js";
|
|
4
4
|
type FsSyncBufferWindowSource = {
|
|
5
5
|
kind: "options";
|
|
6
6
|
node: ts.Expression | undefined;
|
|
@@ -54,12 +54,21 @@ export declare function lowerStringOrBytesWrite(lowerer: Lowerer, call: ts.CallE
|
|
|
54
54
|
* writeSync, then settle so failures reject at await. read/write retain
|
|
55
55
|
* the caller's buffer in the Node-shaped result record. */
|
|
56
56
|
export declare function lowerFileHandleMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
/** fs.Dir's members: path, and the sync and promise read/close forms (the
|
|
58
|
+
* callback overloads have no lowering; for-await lowers in
|
|
59
|
+
* lower-async-iteration.ts). */
|
|
60
|
+
export declare const DIR_METHODS: Set<string>;
|
|
61
|
+
export declare const DIR_MEMBERS = "path, readSync(), read(), closeSync(), close(), and for-await iteration are the supported Dir members (no callbacks)";
|
|
62
|
+
/** Method calls on Dir-typed receivers. readSync answers the call site's
|
|
63
|
+
* `Dirent | null` (the emitter builds the row); read is its promise twin.
|
|
64
|
+
* Null for non-Dir receivers. */
|
|
65
|
+
export declare function lowerDirMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
66
|
+
/** The Stats type tests, each a read of the snapshot's mode. */
|
|
67
|
+
export declare const STATS_TYPE_TESTS: Record<string, IrLibFn>;
|
|
68
|
+
/** Method calls on Stats-typed receivers: the type tests are pure reads on
|
|
69
|
+
* the stat snapshot (a followed statSync snapshot never answers true to
|
|
70
|
+
* isSymbolicLink — take lstatSync's, Node's own split). Anything else
|
|
71
|
+
* fences member-qualified. Null for non-Stats receivers. */
|
|
63
72
|
export declare function lowerStatsMethodCall(lowerer: Lowerer, call: ts.CallExpression, access: ts.PropertyAccessExpression): IrExpr | null;
|
|
64
73
|
/** `fs.watch(path[, options][, listener])` → the fs.watch libCall
|
|
65
74
|
* (scr_watch.c — kqueue EVFILT_VNODE on the opened path; an unopenable
|
|
@@ -4,7 +4,7 @@ import { ladderFenceExpr } from "../lowerer.js";
|
|
|
4
4
|
import { isJsSourceFile, locOf } from "../../program.js";
|
|
5
5
|
import { builtinModuleFnOf, FS_READDIR_DOCUMENTED_OPTIONS, FS_WATCH_DOCUMENTED_OPTIONS, fenceOrDropOptionKey, } from "../surfaces.js";
|
|
6
6
|
import { defaultAfterUndefined, lowerStaticallyUndefinedArgument } from "../optional-arguments.js";
|
|
7
|
-
import { BOOL, BYTES_U8, DYN, F64, FILEHANDLE_T, FSWATCHER_T, STRING, VOID, arrayOf, isUnitType, typeEquals, } from "../../../ir/ir.js";
|
|
7
|
+
import { BOOL, BYTES_U8, DIR_T, DYN, F64, FILEHANDLE_T, FSWATCHER_T, STRING, VOID, arrayOf, isUnitType, typeEquals, } from "../../../ir/ir.js";
|
|
8
8
|
import { optionMember, lowerBuiltinOptionalDefault } from "./arguments.js";
|
|
9
9
|
/** Normalize fs.readSync/fs.writeSync's shorthand and inline-options buffer
|
|
10
10
|
* forms into the existing fixed-width descriptor IR. fd and buffer bind
|
|
@@ -151,6 +151,31 @@ export function lowerFsToUnixTimestampCall(lowerer, expr, bi, loc) {
|
|
|
151
151
|
loc,
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
|
+
/** True when opendirSync's arguments fit lowerFsOpendirCall: a string
|
|
155
|
+
* path and no options, or an object literal whose members are a numeric
|
|
156
|
+
* bufferSize and a utf8 encoding. */
|
|
157
|
+
function opendirLowers(lowerer, args) {
|
|
158
|
+
if (args.length < 1 || args.length > 2)
|
|
159
|
+
return false;
|
|
160
|
+
if (lowerer.mapTypeOf(lowerer.typeOf(args[0]))?.kind !== "string")
|
|
161
|
+
return false;
|
|
162
|
+
const options = args[1];
|
|
163
|
+
if (!options || (ts.isIdentifier(options) && options.text === "undefined"))
|
|
164
|
+
return true;
|
|
165
|
+
if (!ts.isObjectLiteralExpression(options))
|
|
166
|
+
return false;
|
|
167
|
+
return options.properties.every((property) => {
|
|
168
|
+
const option = optionMember(property);
|
|
169
|
+
if (!option)
|
|
170
|
+
return false;
|
|
171
|
+
if (option.name === "bufferSize")
|
|
172
|
+
return lowerer.mapTypeOf(lowerer.typeOf(option.value))?.kind === "f64";
|
|
173
|
+
if (option.name !== "encoding")
|
|
174
|
+
return false;
|
|
175
|
+
const encoding = lowerer.typeOf(option.value);
|
|
176
|
+
return (encoding.isStringLiteralType() && (encoding.value === "utf8" || encoding.value === "utf-8"));
|
|
177
|
+
});
|
|
178
|
+
}
|
|
154
179
|
/** The fs validation-ladder spoke (checked-dynamic lane, JS sources
|
|
155
180
|
* only — TypeScript keeps its compile fences): implemented-namespace
|
|
156
181
|
* calls whose misuse Node rejects with typed errors lower to fs.*Chk
|
|
@@ -277,6 +302,11 @@ export function lowerFsLadderCall(lowerer, expr, bi, loc) {
|
|
|
277
302
|
return (a && chk("fs.readFileChk", [...a, ladderFenceExpr(lowerer, "fs.readFile", expr)], resultT));
|
|
278
303
|
}
|
|
279
304
|
case "opendirSync": {
|
|
305
|
+
// A string path with no options or a literal { bufferSize, encoding:
|
|
306
|
+
// "utf8" } takes the real lowering; anything else keeps Node's
|
|
307
|
+
// validation ladder and its fence.
|
|
308
|
+
if (opendirLowers(lowerer, args))
|
|
309
|
+
return null;
|
|
280
310
|
const a = dynArgs([args[0], args[1]]);
|
|
281
311
|
return (a && chk("fs.opendirChk", [...a, ladderFenceExpr(lowerer, "fs.opendirSync", expr)], resultT));
|
|
282
312
|
}
|
|
@@ -799,12 +829,69 @@ export function lowerFileHandleMethodCall(lowerer, call, access) {
|
|
|
799
829
|
}
|
|
800
830
|
lowerer.noLowering(`FileHandle.${name}`, call, "fd, close(), read(), write(), readv(), writev(), readFile(), writeFile(), appendFile(), stat(), sync(), datasync(), truncate(), and chmod() are the supported FileHandle members", lowerer.checker.getSymbolAtLocation(access.name));
|
|
801
831
|
}
|
|
802
|
-
/**
|
|
803
|
-
*
|
|
804
|
-
*
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
832
|
+
/** fs.Dir's members: path, and the sync and promise read/close forms (the
|
|
833
|
+
* callback overloads have no lowering; for-await lowers in
|
|
834
|
+
* lower-async-iteration.ts). */
|
|
835
|
+
export const DIR_METHODS = new Set(["readSync", "read", "closeSync", "close"]);
|
|
836
|
+
export const DIR_MEMBERS = "path, readSync(), read(), closeSync(), close(), and for-await iteration are the supported Dir members (no callbacks)";
|
|
837
|
+
/** Method calls on Dir-typed receivers. readSync answers the call site's
|
|
838
|
+
* `Dirent | null` (the emitter builds the row); read is its promise twin.
|
|
839
|
+
* Null for non-Dir receivers. */
|
|
840
|
+
export function lowerDirMethodCall(lowerer, call, access) {
|
|
841
|
+
if (call.questionDotToken || access.questionDotToken)
|
|
842
|
+
return null;
|
|
843
|
+
if (lowerer.mapTypeOf(lowerer.typeOf(access.expression))?.kind !== "dir")
|
|
844
|
+
return null;
|
|
845
|
+
if (!lowerer.isStdlibMember(access))
|
|
846
|
+
return null;
|
|
847
|
+
const name = access.name.text;
|
|
848
|
+
const loc = locOf(call);
|
|
849
|
+
if (DIR_METHODS.has(name) && call.arguments.length === 0) {
|
|
850
|
+
const receiver = lowerer.lowerExprExpecting(access.expression, DIR_T);
|
|
851
|
+
if (name === "closeSync")
|
|
852
|
+
return { kind: "libCall", fn: "dir.closeSync", args: [receiver], type: VOID, loc };
|
|
853
|
+
if (name === "close") {
|
|
854
|
+
return {
|
|
855
|
+
kind: "libCall",
|
|
856
|
+
fn: "dir.close",
|
|
857
|
+
args: [receiver],
|
|
858
|
+
type: { kind: "promise", inner: VOID },
|
|
859
|
+
loc,
|
|
860
|
+
};
|
|
861
|
+
}
|
|
862
|
+
const type = lowerer.mapTypeOf(lowerer.typeOf(call));
|
|
863
|
+
const entry = type?.kind === "promise" ? type.inner : type;
|
|
864
|
+
const arms = entry?.kind === "union" ? lowerer.unions.get(entry.unionId)?.arms : undefined;
|
|
865
|
+
if (type &&
|
|
866
|
+
arms?.length === 2 &&
|
|
867
|
+
arms.some((arm) => arm.kind === "record") &&
|
|
868
|
+
arms.some((arm) => arm.kind === "nullT") &&
|
|
869
|
+
(name === "read") === (type.kind === "promise")) {
|
|
870
|
+
return {
|
|
871
|
+
kind: "libCall",
|
|
872
|
+
fn: name === "read" ? "dir.read" : "dir.readSync",
|
|
873
|
+
args: [receiver],
|
|
874
|
+
type,
|
|
875
|
+
loc,
|
|
876
|
+
};
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
return lowerer.noLowering(`Dir.${name}`, call, DIR_MEMBERS, lowerer.checker.getSymbolAtLocation(access.name));
|
|
880
|
+
}
|
|
881
|
+
/** The Stats type tests, each a read of the snapshot's mode. */
|
|
882
|
+
export const STATS_TYPE_TESTS = {
|
|
883
|
+
isFile: "stats.isFile",
|
|
884
|
+
isDirectory: "stats.isDirectory",
|
|
885
|
+
isSymbolicLink: "stats.isSymbolicLink",
|
|
886
|
+
isBlockDevice: "stats.isBlockDevice",
|
|
887
|
+
isCharacterDevice: "stats.isCharacterDevice",
|
|
888
|
+
isFIFO: "stats.isFIFO",
|
|
889
|
+
isSocket: "stats.isSocket",
|
|
890
|
+
};
|
|
891
|
+
/** Method calls on Stats-typed receivers: the type tests are pure reads on
|
|
892
|
+
* the stat snapshot (a followed statSync snapshot never answers true to
|
|
893
|
+
* isSymbolicLink — take lstatSync's, Node's own split). Anything else
|
|
894
|
+
* fences member-qualified. Null for non-Stats receivers. */
|
|
808
895
|
export function lowerStatsMethodCall(lowerer, call, access) {
|
|
809
896
|
if (call.questionDotToken || access.questionDotToken)
|
|
810
897
|
return null;
|
|
@@ -813,17 +900,12 @@ export function lowerStatsMethodCall(lowerer, call, access) {
|
|
|
813
900
|
if (!lowerer.isStdlibMember(access))
|
|
814
901
|
return null;
|
|
815
902
|
const name = access.name.text;
|
|
816
|
-
|
|
817
|
-
|
|
903
|
+
const fn = Object.hasOwn(STATS_TYPE_TESTS, name) ? STATS_TYPE_TESTS[name] : undefined;
|
|
904
|
+
if (fn && call.arguments.length === 0) {
|
|
818
905
|
const receiver = lowerer.lowerExpr(access.expression);
|
|
819
|
-
const fn = name === "isFile"
|
|
820
|
-
? "stats.isFile"
|
|
821
|
-
: name === "isDirectory"
|
|
822
|
-
? "stats.isDirectory"
|
|
823
|
-
: "stats.isSymbolicLink";
|
|
824
906
|
return { kind: "libCall", fn, args: [receiver], type: BOOL, loc: locOf(call) };
|
|
825
907
|
}
|
|
826
|
-
lowerer.noLowering(`Stats.${name}`, call, "isFile(), isDirectory(), isSymbolicLink(), dev, ino, size, blocks,
|
|
908
|
+
lowerer.noLowering(`Stats.${name}`, call, "isFile(), isDirectory(), isSymbolicLink(), isBlockDevice(), isCharacterDevice(), isFIFO(), isSocket(), dev, mode, nlink, uid, gid, rdev, blksize, ino, size, blocks, atimeMs, mtimeMs, ctimeMs, birthtimeMs, atime, mtime, ctime, and birthtime are the supported Stats members", lowerer.checker.getSymbolAtLocation(access.name));
|
|
827
909
|
}
|
|
828
910
|
/** `fs.watch(path[, options][, listener])` → the fs.watch libCall
|
|
829
911
|
* (scr_watch.c — kqueue EVFILT_VNODE on the opened path; an unopenable
|