aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp4
-rw-r--r--src/bun.js/builtins/js/ImportMetaObject.js2
-rw-r--r--src/bun.js/javascript.zig29
3 files changed, 19 insertions, 16 deletions
diff --git a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
index c24d67a81..65d2f206c 100644
--- a/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
+++ b/src/bun.js/builtins/cpp/ImportMetaObjectBuiltins.cpp
@@ -96,7 +96,7 @@ const char* const s_importMetaObjectRequireCode =
const JSC::ConstructAbility s_importMetaObjectLoadModuleCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_importMetaObjectLoadModuleCodeConstructorKind = JSC::ConstructorKind::None;
-const int s_importMetaObjectLoadModuleCodeLength = 2818;
+const int s_importMetaObjectLoadModuleCodeLength = 2834;
static const JSC::Intrinsic s_importMetaObjectLoadModuleCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_importMetaObjectLoadModuleCode =
"(function (meta, resolvedSpecifier) {\n" \
@@ -110,7 +110,7 @@ const char* const s_importMetaObjectLoadModuleCode =
" //\n" \
" var entry = Loader.registry.@get(key);\n" \
"\n" \
- " if (!entry || entry.state <= @ModuleFetch) {\n" \
+ " if (!entry || !entry.state || entry.state <= @ModuleFetch) {\n" \
" @fulfillModuleSync(key);\n" \
" entry = Loader.registry.@get(key);\n" \
" }\n" \
diff --git a/src/bun.js/builtins/js/ImportMetaObject.js b/src/bun.js/builtins/js/ImportMetaObject.js
index 40e60ed22..6d9fdb00d 100644
--- a/src/bun.js/builtins/js/ImportMetaObject.js
+++ b/src/bun.js/builtins/js/ImportMetaObject.js
@@ -75,7 +75,7 @@ function loadModule(meta, resolvedSpecifier) {
// @throwTypeError("Requested module is already fetched.");
var entry = Loader.registry.@get(key);
- if (!entry || entry.state <= @ModuleFetch) {
+ if (!entry || !entry.state || entry.state <= @ModuleFetch) {
@fulfillModuleSync(key);
entry = Loader.registry.@get(key);
}
diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig
index 0908505a3..90356fafa 100644
--- a/src/bun.js/javascript.zig
+++ b/src/bun.js/javascript.zig
@@ -1074,18 +1074,18 @@ pub const VirtualMachine = struct {
jsc_vm.bundler.linker.import_counter = 0;
var printer = source_code_printer.?.*;
- defer source_code_printer.?.* = printer;
printer.ctx.reset();
- var written: usize = 0;
-
- written = try jsc_vm.bundler.printWithSourceMap(
- parse_result,
- @TypeOf(&printer),
- &printer,
- .esm_ascii,
- SavedSourceMap.SourceMapHandler.init(&jsc_vm.source_mappings),
- );
+ const written = brk: {
+ defer source_code_printer.?.* = printer;
+ break :brk try jsc_vm.bundler.printWithSourceMap(
+ parse_result,
+ @TypeOf(&printer),
+ &printer,
+ .esm_ascii,
+ SavedSourceMap.SourceMapHandler.init(&jsc_vm.source_mappings),
+ );
+ };
if (written == 0) {
return error.PrintingErrorWriteFailed;
@@ -1097,11 +1097,14 @@ pub const VirtualMachine = struct {
return ResolvedSource{
.allocator = null,
- .source_code = ZigString.init(printer.ctx.writtenWithoutTrailingZero()),
+ .source_code = ZigString.init(try default_allocator.dupe(u8, printer.ctx.getWritten())),
.specifier = ZigString.init(specifier),
.source_url = ZigString.init(path.text),
- // TODO: change hash to a bitfield
- .hash = 1,
+ // // TODO: change hash to a bitfield
+ // .hash = 1,
+
+ // having JSC own the memory causes crashes
+ .hash = 0,
};
},
// provideFetch() should be called