gofront 1.6.0 → 1.7.0
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/README.md +35 -39
- package/package.json +37 -4
- package/src/backend/js/expressions.js +559 -144
- package/src/backend/js/index.js +174 -49
- package/src/backend/js/runtime.js +1518 -54
- package/src/backend/js/statements.js +91 -73
- package/src/backend/js/stdlib/base64.js +12 -0
- package/src/backend/js/stdlib/binary.js +102 -0
- package/src/backend/js/stdlib/bits.js +15 -1
- package/src/backend/js/stdlib/builder.js +28 -9
- package/src/backend/js/stdlib/bytes.js +75 -18
- package/src/backend/js/stdlib/errors.js +25 -1
- package/src/backend/js/stdlib/fmt.js +70 -13
- package/src/backend/js/stdlib/hex.js +17 -0
- package/src/backend/js/stdlib/html.js +1 -1
- package/src/backend/js/stdlib/index.js +28 -0
- package/src/backend/js/stdlib/io.js +105 -3
- package/src/backend/js/stdlib/json.js +972 -0
- package/src/backend/js/stdlib/math.js +13 -1
- package/src/backend/js/stdlib/path.js +18 -4
- package/src/backend/js/stdlib/rand.js +10 -5
- package/src/backend/js/stdlib/sha256.js +12 -0
- package/src/backend/js/stdlib/simd.js +24 -0
- package/src/backend/js/stdlib/slices.js +52 -26
- package/src/backend/js/stdlib/strconv.js +21 -5
- package/src/backend/js/stdlib/strings.js +148 -15
- package/src/backend/js/stdlib/sync.js +13 -0
- package/src/backend/js/stdlib/time.js +90 -19
- package/src/backend/js/stdlib/unicode.js +2 -2
- package/src/backend/wasm/boundary.js +1225 -41
- package/src/backend/wasm/const-fold.js +205 -0
- package/src/backend/wasm/emit-builtins.js +220 -76
- package/src/backend/wasm/emit-exprs.js +475 -276
- package/src/backend/wasm/emit-maps.js +144 -8
- package/src/backend/wasm/emit-stdlib.js +12 -3005
- package/src/backend/wasm/emit-stmts.js +264 -270
- package/src/backend/wasm/emit.js +124 -87
- package/src/backend/wasm/encode.js +140 -29
- package/src/backend/wasm/index.js +1001 -32
- package/src/backend/wasm/optimize.js +17 -6
- package/src/backend/wasm/stdlib/bytes.js +5039 -0
- package/src/backend/wasm/stdlib/core.js +8903 -0
- package/src/backend/wasm/stdlib/index.js +43 -0
- package/src/backend/wasm/stdlib/io.js +2161 -0
- package/src/backend/wasm/stdlib/packages.js +2400 -0
- package/src/backend/wasm/stdlib/pure.js +720 -0
- package/src/backend/wasm/stdlib/simd.js +234 -0
- package/src/backend/wasm/stdlib/time.js +1200 -0
- package/src/backend/wasm/types.js +174 -1
- package/src/backend/wasm/wat.js +37 -0
- package/src/cli-core.js +1 -1
- package/src/compiler.js +18 -4
- package/src/dts-parser.js +150 -140
- package/src/index.js +2 -6
- package/src/lexer.js +80 -29
- package/src/lower/boxing.js +1 -7
- package/src/lower/captures.js +2 -6
- package/src/lower/embedding.js +2 -1
- package/src/lower/ownership.js +30 -9
- package/src/minifier.js +20 -68
- package/src/parser/declarations.js +3 -6
- package/src/parser/expressions.js +3 -8
- package/src/parser/index.js +18 -3
- package/src/parser/statements.js +25 -38
- package/src/parser/struct-tag.js +144 -0
- package/src/parser/types.js +64 -8
- package/src/resolver.js +2 -27
- package/src/templ-lexer.js +29 -63
- package/src/templ-parser.js +22 -45
- package/src/typechecker/assignability.js +126 -13
- package/src/typechecker/expressions.js +168 -16
- package/src/typechecker/index.js +35 -8
- package/src/typechecker/resolve.js +187 -8
- package/src/typechecker/statements.js +68 -9
- package/src/typechecker/stdlib/core.js +280 -89
- package/src/typechecker/stdlib/extended.js +490 -1
- package/src/typechecker/stdlib/simd.js +73 -0
- package/src/typechecker/stdlib.js +2 -0
- package/src/typechecker/types.js +362 -9
- package/src/vendor.js +86 -11
|
@@ -24,8 +24,8 @@ import { join } from "node:path";
|
|
|
24
24
|
import { GOFRONT_SECTION_BYTES, isGoFrontWasm } from "./encode.js";
|
|
25
25
|
|
|
26
26
|
// Binaryen feature bitmask: GC (1024) | ReferenceTypes (256) | BulkMemory (16) | Multivalue (512) |
|
|
27
|
-
// ExceptionHandling (64) | MutableGlobals (2) | NontrappingFPToInt (4) | TailCall (128) =
|
|
28
|
-
export const DEFAULT_WASM_FEATURES =
|
|
27
|
+
// ExceptionHandling (64) | MutableGlobals (2) | NontrappingFPToInt (4) | TailCall (128) | SIMD (8) = 2014
|
|
28
|
+
export const DEFAULT_WASM_FEATURES = 2014;
|
|
29
29
|
|
|
30
30
|
let _nativeWasmOptAvailable = null;
|
|
31
31
|
let _npmWasmOptPath = null;
|
|
@@ -98,10 +98,20 @@ function runWasmOpt(
|
|
|
98
98
|
"--enable-mutable-globals",
|
|
99
99
|
"--enable-nontrapping-float-to-int",
|
|
100
100
|
"--enable-tail-call",
|
|
101
|
+
"--enable-simd",
|
|
101
102
|
];
|
|
102
103
|
if (options.gufa !== false) {
|
|
103
104
|
args.push("--gufa");
|
|
104
105
|
}
|
|
106
|
+
if (options.closedWorld !== false) {
|
|
107
|
+
args.push("--closed-world");
|
|
108
|
+
}
|
|
109
|
+
if (options.trapsNeverHappen === true) {
|
|
110
|
+
args.push("--traps-never-happen");
|
|
111
|
+
}
|
|
112
|
+
if (options.converge) {
|
|
113
|
+
args.push("--converge");
|
|
114
|
+
}
|
|
105
115
|
if (options.sourceMap) {
|
|
106
116
|
if (options.inputSourceMap) {
|
|
107
117
|
const mapInput = join(dir, "in.wasm.map");
|
|
@@ -124,8 +134,6 @@ function runWasmOpt(
|
|
|
124
134
|
if (options.emitWat) {
|
|
125
135
|
try {
|
|
126
136
|
const watArgs = [
|
|
127
|
-
`-O${level}`,
|
|
128
|
-
`--shrink-level=${shrinkLevel}`,
|
|
129
137
|
"--enable-gc",
|
|
130
138
|
"--enable-reference-types",
|
|
131
139
|
"--enable-exception-handling",
|
|
@@ -134,9 +142,12 @@ function runWasmOpt(
|
|
|
134
142
|
"--enable-mutable-globals",
|
|
135
143
|
"--enable-nontrapping-float-to-int",
|
|
136
144
|
"--enable-tail-call",
|
|
145
|
+
"--enable-simd",
|
|
146
|
+
output,
|
|
147
|
+
"-S",
|
|
148
|
+
"-o",
|
|
149
|
+
watOutput,
|
|
137
150
|
];
|
|
138
|
-
if (options.gufa !== false) watArgs.push("--gufa");
|
|
139
|
-
watArgs.push(input, "-S", "-o", watOutput);
|
|
140
151
|
execFileSync(command, [...cmdArgs, ...watArgs], { stdio: "pipe" });
|
|
141
152
|
if (existsSync(watOutput)) {
|
|
142
153
|
wat = readFileSync(watOutput, "utf8");
|