@scriptc/compiler 0.3.5 → 0.3.6
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 +278 -32
- package/dist/backend/llvm/dyn.js +31 -1
- package/dist/backend/llvm/dyn.js.map +1 -1
- package/dist/backend/llvm/emitter.d.ts +45 -1
- package/dist/backend/llvm/emitter.js +412 -104
- package/dist/backend/llvm/emitter.js.map +1 -1
- package/dist/backend/llvm/expr-dispatch.js +1 -0
- package/dist/backend/llvm/expr-dispatch.js.map +1 -1
- package/dist/backend/llvm/expr-dynamic.js +25 -1
- package/dist/backend/llvm/expr-dynamic.js.map +1 -1
- package/dist/backend/llvm/expr-primitives.d.ts +1 -1
- package/dist/backend/llvm/expr-primitives.js +11 -0
- package/dist/backend/llvm/expr-primitives.js.map +1 -1
- package/dist/backend/llvm/lib-dispatch.js +28 -1
- package/dist/backend/llvm/lib-dispatch.js.map +1 -1
- package/dist/backend/llvm/lib-filesystem.js +61 -1
- package/dist/backend/llvm/lib-filesystem.js.map +1 -1
- package/dist/backend/llvm/lib-network.js +21 -3
- package/dist/backend/llvm/lib-network.js.map +1 -1
- package/dist/backend/llvm/lib-process.js +10 -0
- package/dist/backend/llvm/lib-process.js.map +1 -1
- package/dist/backend/llvm/lib-shared.js +43 -0
- package/dist/backend/llvm/lib-shared.js.map +1 -1
- package/dist/backend/llvm/lib-test.js +16 -3
- package/dist/backend/llvm/lib-test.js.map +1 -1
- package/dist/backend/llvm/nullable-unions.d.ts +6 -3
- package/dist/backend/llvm/nullable-unions.js +2 -0
- package/dist/backend/llvm/nullable-unions.js.map +1 -1
- package/dist/backend/llvm/record-results.d.ts +1 -1
- package/dist/backend/llvm/record-results.js +2 -2
- package/dist/backend/llvm/record-results.js.map +1 -1
- package/dist/backend/llvm/reference-writes.js +1 -0
- package/dist/backend/llvm/reference-writes.js.map +1 -1
- package/dist/backend/llvm/shapes.d.ts +3 -0
- package/dist/backend/llvm/shapes.js +5 -0
- package/dist/backend/llvm/shapes.js.map +1 -1
- package/dist/backend/llvm/speculative-integers.d.ts +74 -0
- package/dist/backend/llvm/speculative-integers.js +571 -0
- package/dist/backend/llvm/speculative-integers.js.map +1 -0
- package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
- package/dist/backend/llvm/speculative-integers.test.js +148 -0
- package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
- package/dist/backend/may-throw.js +2 -0
- package/dist/backend/may-throw.js.map +1 -1
- package/dist/backend/native/executable.js +3 -0
- 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/runtime-pack.d.ts +7 -3
- package/dist/backend/runtime-pack.js +12 -6
- package/dist/backend/runtime-pack.js.map +1 -1
- package/dist/backend/runtime-pack.test.js +15 -6
- package/dist/backend/runtime-pack.test.js.map +1 -1
- package/dist/contracts/check.js +1 -0
- package/dist/contracts/check.js.map +1 -1
- package/dist/coverage/surface-manifest.js +3 -3
- package/dist/coverage/surface-manifest.js.map +1 -1
- package/dist/diagnostics/diagnostic.d.ts +1 -1
- package/dist/diagnostics/diagnostic.js +6 -2
- package/dist/diagnostics/diagnostic.js.map +1 -1
- package/dist/frontend/lowering/builtin-calls.js +10 -0
- package/dist/frontend/lowering/builtin-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/callable-aliases.js +31 -3
- package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
- package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
- package/dist/frontend/lowering/builtins/compression.js +145 -30
- package/dist/frontend/lowering/builtins/compression.js.map +1 -1
- package/dist/frontend/lowering/builtins/crypto.js +12 -1
- package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
- package/dist/frontend/lowering/builtins/errors.js +5 -3
- package/dist/frontend/lowering/builtins/errors.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +4 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js +11 -0
- package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
- package/dist/frontend/lowering/builtins/filesystem.js +139 -2
- package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
- package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
- package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
- package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
- package/dist/frontend/lowering/builtins/module-calls.js +13 -3
- package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
- package/dist/frontend/lowering/builtins/process.js +9 -2
- package/dist/frontend/lowering/builtins/process.js.map +1 -1
- package/dist/frontend/lowering/builtins/readline.d.ts +45 -13
- package/dist/frontend/lowering/builtins/readline.js +812 -47
- package/dist/frontend/lowering/builtins/readline.js.map +1 -1
- package/dist/frontend/lowering/builtins/workers.d.ts +4 -0
- package/dist/frontend/lowering/builtins/workers.js +58 -0
- package/dist/frontend/lowering/builtins/workers.js.map +1 -1
- package/dist/frontend/lowering/class-protocols.d.ts +55 -0
- package/dist/frontend/lowering/class-protocols.js +735 -0
- package/dist/frontend/lowering/class-protocols.js.map +1 -1
- package/dist/frontend/lowering/containers/array-from-async.d.ts +18 -0
- package/dist/frontend/lowering/containers/array-from-async.js +282 -0
- package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
- package/dist/frontend/lowering/containers/collection-grouping.js +2 -1
- package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
- package/dist/frontend/lowering/containers/collection-methods.js +27 -23
- package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
- package/dist/frontend/lowering/divergences.js +188 -15
- package/dist/frontend/lowering/divergences.js.map +1 -1
- package/dist/frontend/lowering/lower-calls.js +71 -22
- package/dist/frontend/lowering/lower-calls.js.map +1 -1
- package/dist/frontend/lowering/lower-classes.js +39 -1
- package/dist/frontend/lowering/lower-classes.js.map +1 -1
- package/dist/frontend/lowering/lower-event-emitter.js +10 -1
- package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
- package/dist/frontend/lowering/lower-exprs.js +107 -13
- package/dist/frontend/lowering/lower-exprs.js.map +1 -1
- package/dist/frontend/lowering/lower-inspect.js +23 -3
- package/dist/frontend/lowering/lower-inspect.js.map +1 -1
- package/dist/frontend/lowering/lower-mock.d.ts +11 -1
- package/dist/frontend/lowering/lower-mock.js +377 -61
- package/dist/frontend/lowering/lower-mock.js.map +1 -1
- package/dist/frontend/lowering/lower-modules.js +1 -0
- package/dist/frontend/lowering/lower-modules.js.map +1 -1
- package/dist/frontend/lowering/lower-server.js +161 -16
- package/dist/frontend/lowering/lower-server.js.map +1 -1
- package/dist/frontend/lowering/lower-stmts.js +48 -7
- package/dist/frontend/lowering/lower-stmts.js.map +1 -1
- package/dist/frontend/lowering/lower-stream.d.ts +1 -3
- package/dist/frontend/lowering/lower-stream.js +317 -20
- package/dist/frontend/lowering/lower-stream.js.map +1 -1
- package/dist/frontend/lowering/lower-test.js +147 -48
- package/dist/frontend/lowering/lower-test.js.map +1 -1
- package/dist/frontend/lowering/lowerer.d.ts +10 -0
- package/dist/frontend/lowering/lowerer.js +8 -0
- package/dist/frontend/lowering/lowerer.js.map +1 -1
- package/dist/frontend/lowering/null-prototype.d.ts +13 -0
- package/dist/frontend/lowering/null-prototype.js +33 -0
- package/dist/frontend/lowering/null-prototype.js.map +1 -0
- package/dist/frontend/lowering/surfaces.d.ts +3 -3
- package/dist/frontend/lowering/surfaces.js +27 -5
- package/dist/frontend/lowering/surfaces.js.map +1 -1
- package/dist/frontend/mock-shapes.d.ts +5 -0
- package/dist/frontend/mock-shapes.js +27 -2
- package/dist/frontend/mock-shapes.js.map +1 -1
- package/dist/frontend/program.js +5 -4
- package/dist/frontend/program.js.map +1 -1
- package/dist/frontend/type-mapper.js +95 -4
- package/dist/frontend/type-mapper.js.map +1 -1
- package/dist/index.js +18 -8
- package/dist/index.js.map +1 -1
- package/dist/ir/builtin-effects.js +36 -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 +167 -6
- package/dist/ir/builtin-signatures.js.map +1 -1
- package/dist/ir/function-references.test.js +1 -0
- package/dist/ir/function-references.test.js.map +1 -1
- package/dist/ir/int32-slots.js +22 -0
- package/dist/ir/int32-slots.js.map +1 -1
- package/dist/ir/int32-slots.test.js +28 -0
- package/dist/ir/int32-slots.test.js.map +1 -1
- package/dist/ir/integer-loop-facts.d.ts +14 -6
- package/dist/ir/integer-loop-facts.js +119 -35
- package/dist/ir/integer-loop-facts.js.map +1 -1
- package/dist/ir/integer-ranges.js +1 -5
- package/dist/ir/integer-ranges.js.map +1 -1
- package/dist/ir/integer-ranges.test.js +60 -0
- package/dist/ir/integer-ranges.test.js.map +1 -1
- package/dist/ir/ir.d.ts +13 -0
- package/dist/ir/ir.js +4 -0
- package/dist/ir/ir.js.map +1 -1
- package/dist/ir/runtime-features.d.ts +3 -1
- package/dist/ir/runtime-features.js +96 -6
- package/dist/ir/runtime-features.js.map +1 -1
- package/dist/ir/runtime-features.test.js +62 -0
- package/dist/ir/runtime-features.test.js.map +1 -1
- package/dist/ir/traverse.js +4 -0
- package/dist/ir/traverse.js.map +1 -1
- package/dist/ir/validate.js +45 -3
- package/dist/ir/validate.js.map +1 -1
- package/dist/ir/validate.test.js +38 -0
- package/dist/ir/validate.test.js.map +1 -1
- package/dist/library/ir-policy.js +5 -0
- package/dist/library/ir-policy.js.map +1 -1
- package/package.json +20 -20
- package/surface-manifest.json +31 -19
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { dynUndefinedExpr, nodeThrowExpr, varRef } from "../../ir/build.js";
|
|
2
2
|
import { checkedIterableSpread } from "./checked-iterable-spread.js";
|
|
3
|
+
import { lowerReadlineUiNew } from "./builtins/readline.js";
|
|
3
4
|
import { collectClassMethodMutations } from "./class-method-mutations.js";
|
|
4
5
|
import { InternalCompilerError } from "../../errors.js";
|
|
5
6
|
/* Class lowering: shape collection over the single-inheritance graph
|
|
@@ -28,7 +29,7 @@ import { bufEncoding } from "./containers/bytes.js";
|
|
|
28
29
|
import { isSafeToRepeat } from "./expressions/evaluation-safety.js";
|
|
29
30
|
import { lowerSearchParamsNew } from "./builtins/url.js";
|
|
30
31
|
import { lowerTextCodecNew } from "./builtins/text-codecs.js";
|
|
31
|
-
import { lowerWorkerNew } from "./builtins/workers.js";
|
|
32
|
+
import { lowerMessageChannelNew, lowerWorkerNew } from "./builtins/workers.js";
|
|
32
33
|
import { unsupportedPackageValueDiag, unsupportedDiag, } from "../../diagnostics/diagnostic.js";
|
|
33
34
|
import { STREAM_API_MEMBERS, STREAM_PROP_MEMBERS, UNDERSCORE_METHODS, lowerStreamNew, lowerStreamSuperCall, streamCtorShape, } from "./lower-stream.js";
|
|
34
35
|
import { builtinEventTargetBaseOf, eventTargetApiMembers, eventTargetApiMethod, eventTargetRootOf, eventTargetSuperCall, lowerEventTargetMethodCall, } from "./lower-event-target.js";
|
|
@@ -390,6 +391,10 @@ export function registerBuiltinErrorClasses(lowerer) {
|
|
|
390
391
|
{ name: "%systemCall", type: STRING },
|
|
391
392
|
{ name: "%systemPath", type: STRING },
|
|
392
393
|
{ name: "%systemDest", type: STRING },
|
|
394
|
+
{ name: "%systemMessage", type: STRING },
|
|
395
|
+
{ name: "%systemCode", type: STRING },
|
|
396
|
+
{ name: "%nativePlain", type: BOOL },
|
|
397
|
+
{ name: "%errnoOrder", type: BOOL },
|
|
393
398
|
],
|
|
394
399
|
loc,
|
|
395
400
|
},
|
|
@@ -1447,6 +1452,9 @@ mixin) {
|
|
|
1447
1452
|
if (lowerer.builtinErrorInfoOf(symbol)?.def.name === "%AssertionError") {
|
|
1448
1453
|
lowerer.unsupported("SC1090", t, "extending AssertionError (its constructor takes an options object the subclass constructor would have to forward — extend Error, or construct AssertionError directly)");
|
|
1449
1454
|
}
|
|
1455
|
+
if (lowerer.builtinErrorInfoOf(symbol)?.def.name === "%SuppressedError") {
|
|
1456
|
+
lowerer.unsupported("SC1090", t, "extending SuppressedError (extend Error and keep error and suppressed in fields)");
|
|
1457
|
+
}
|
|
1450
1458
|
const named = (symbol && lowerer.classBySymbol.get(symbol)) ??
|
|
1451
1459
|
lowerer.builtinErrorInfoOf(symbol) ??
|
|
1452
1460
|
lowerer.builtinEmitterInfoOf(symbol) ??
|
|
@@ -6845,6 +6853,12 @@ export function lowerNew(lowerer, expr) {
|
|
|
6845
6853
|
const worker = lowerWorkerNew(lowerer, expr);
|
|
6846
6854
|
if (worker)
|
|
6847
6855
|
return worker;
|
|
6856
|
+
const readlineUi = lowerReadlineUiNew(lowerer, expr);
|
|
6857
|
+
if (readlineUi)
|
|
6858
|
+
return readlineUi;
|
|
6859
|
+
const channel = lowerMessageChannelNew(lowerer, expr);
|
|
6860
|
+
if (channel)
|
|
6861
|
+
return channel;
|
|
6848
6862
|
let intlConstructor = expr.expression;
|
|
6849
6863
|
if (ts.isIdentifier(intlConstructor)) {
|
|
6850
6864
|
const symbol = lowerer.resolveValueSymbol(intlConstructor);
|
|
@@ -7161,6 +7175,19 @@ export function lowerNew(lowerer, expr) {
|
|
|
7161
7175
|
loc,
|
|
7162
7176
|
};
|
|
7163
7177
|
}
|
|
7178
|
+
if (errInfo && errInfo.def.name === "%SuppressedError") {
|
|
7179
|
+
const args = expr.arguments ?? [];
|
|
7180
|
+
if (args.length > 3 || args.some(ts.isSpreadElement)) {
|
|
7181
|
+
lowerer.noLowering(`new SuppressedError with this argument list`, expr);
|
|
7182
|
+
}
|
|
7183
|
+
return {
|
|
7184
|
+
kind: "libCall",
|
|
7185
|
+
fn: "error.newSuppressed",
|
|
7186
|
+
args: [0, 1, 2].map((index) => args[index] ? lowerer.lowerExprExpecting(args[index], DYN) : dynUndefinedExpr(loc)),
|
|
7187
|
+
type: { kind: "object", className: "%SuppressedError" },
|
|
7188
|
+
loc,
|
|
7189
|
+
};
|
|
7190
|
+
}
|
|
7164
7191
|
if (errInfo && errInfo.def.name === "%AggregateError") {
|
|
7165
7192
|
const args = expr.arguments ?? [];
|
|
7166
7193
|
if (args.length > 3 || args.some(ts.isSpreadElement)) {
|
|
@@ -7270,6 +7297,17 @@ export function lowerNew(lowerer, expr) {
|
|
|
7270
7297
|
};
|
|
7271
7298
|
const pattern = strArg(args[0], "pattern");
|
|
7272
7299
|
const flags = strArg(args[1], "flags argument");
|
|
7300
|
+
// Node accepts the 'd' and 'v' flags the engine does not have; a
|
|
7301
|
+
// literal flags string refuses here like the literal regex form.
|
|
7302
|
+
if (flags.kind === "strLit" && args[1] !== undefined) {
|
|
7303
|
+
for (const f of ["d", "v"]) {
|
|
7304
|
+
if (flags.value.includes(f)) {
|
|
7305
|
+
lowerer.unsupported("SC1120", args[1], f === "d"
|
|
7306
|
+
? "the regex 'd' flag (match indices)"
|
|
7307
|
+
: "the regex 'v' flag (unicode sets)");
|
|
7308
|
+
}
|
|
7309
|
+
}
|
|
7310
|
+
}
|
|
7273
7311
|
return {
|
|
7274
7312
|
kind: "libCall",
|
|
7275
7313
|
fn: "regex.new",
|