diff options
author | 2022-01-20 01:42:23 -0800 | |
---|---|---|
committer | 2022-01-20 01:42:23 -0800 | |
commit | 85084c6db9a35cc9b605c5015aab9fca74bc611c (patch) | |
tree | c3431fcd4df85ffae2d55ac2d262c014bbf13b18 | |
parent | a09b99565138bb4bc73a5328397428fb5025817b (diff) | |
download | bun-85084c6db9a35cc9b605c5015aab9fca74bc611c.tar.gz bun-85084c6db9a35cc9b605c5015aab9fca74bc611c.tar.zst bun-85084c6db9a35cc9b605c5015aab9fca74bc611c.zip |
Fix segfault
-rw-r--r-- | bench/snippets/scanner/scan.bun.js | 6 | ||||
-rw-r--r-- | bench/snippets/scanner/scan.node-esbuild.mjs | 9 | ||||
-rw-r--r-- | src/javascript/jsc/api/transpiler.zig | 3 |
3 files changed, 12 insertions, 6 deletions
diff --git a/bench/snippets/scanner/scan.bun.js b/bench/snippets/scanner/scan.bun.js index 7a34f056e..eb2b09452 100644 --- a/bench/snippets/scanner/scan.bun.js +++ b/bench/snippets/scanner/scan.bun.js @@ -7,11 +7,9 @@ const transpiler = new Bun.Transpiler({ }); console.time("Get exports"); - +const file = readFileSync("remix-route.ts", "utf8"); for (let i = 0; i < ITERATIONS; i++) { - const { imports, exports } = transpiler.scan( - readFileSync("remix-route.ts", "utf8") - ); + const { imports, exports } = transpiler.scan(file); for (let j = 0; j < fixture.length; j++) { if (fixture[j] !== exports[j]) { diff --git a/bench/snippets/scanner/scan.node-esbuild.mjs b/bench/snippets/scanner/scan.node-esbuild.mjs index 946250d1f..1a7fa79d8 100644 --- a/bench/snippets/scanner/scan.node-esbuild.mjs +++ b/bench/snippets/scanner/scan.node-esbuild.mjs @@ -1,4 +1,5 @@ import { build, buildSync } from "esbuild"; +import { readFileSync } from "fs"; const fixture = ["action", "default", "loader"]; const ITERATIONS = parseInt(process.env.ITERATIONS || "1") || 1; @@ -8,12 +9,16 @@ const opts = { platform: "neutral", write: false, logLevel: "silent", - entryPoints: ["remix-route.ts"], + stdin: { + contents: readFileSync("remix-route.ts", "utf8"), + loader: "ts", + sourcefile: "remix-route.js", + }, }; const getExports = ({ metafile }) => { for (let i = 0; i < fixture.length; i++) { - if (fixture[i] !== metafile.outputs["remix-route.js"].exports[i]) { + if (fixture[i] !== metafile.outputs["stdin.js"].exports[i]) { throw new Error("Mismatch"); } } diff --git a/src/javascript/jsc/api/transpiler.zig b/src/javascript/jsc/api/transpiler.zig index 07d07763e..21209bc69 100644 --- a/src/javascript/jsc/api/transpiler.zig +++ b/src/javascript/jsc/api/transpiler.zig @@ -478,6 +478,9 @@ pub fn scan( } fn namedExportsToJS(global: *JSGlobalObject, named_exports: JSAst.Ast.NamedExports) JSC.JSValue { + if (named_exports.count() == 0) + return JSC.JSValue.fromRef(JSC.C.JSObjectMakeArray(global.ref(), 0, null, null)); + var named_exports_iter = named_exports.iterator(); var stack_fallback = std.heap.stackFallback(@sizeOf(JSC.ZigString) * 32, getAllocator(global.ref())); var allocator = stack_fallback.get(); |