diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/javascript/jsc/base.zig | 11 | ||||
-rw-r--r-- | src/js_parser/js_parser.zig | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/javascript/jsc/base.zig b/src/javascript/jsc/base.zig index b77baa550..141810ea4 100644 --- a/src/javascript/jsc/base.zig +++ b/src/javascript/jsc/base.zig @@ -872,8 +872,9 @@ pub fn NewClass( var property_name_refs_set: bool = false; const property_name_literals = property_names; - pub var ref: js.JSClassRef = null; - pub var loaded = false; + pub threadlocal var ref: js.JSClassRef = null; + pub threadlocal var loaded = false; + pub var defined: bool = false; pub var definition: js.JSClassDefinition = .{ .version = 0, .attributes = js.JSClassAttributes.kJSClassAttributeNone, @@ -926,9 +927,13 @@ pub fn NewClass( pub const Constructor = ConstructorWrapper.rfn; pub fn get() callconv(.C) [*c]js.JSClassRef { + if (!defined) { + definition = define(); + defined = true; + } + if (!loaded) { loaded = true; - definition = define(); ref = js.JSClassCreate(&definition); } diff --git a/src/js_parser/js_parser.zig b/src/js_parser/js_parser.zig index 68f54d154..9251d1fa7 100644 --- a/src/js_parser/js_parser.zig +++ b/src/js_parser/js_parser.zig @@ -8104,7 +8104,7 @@ pub fn NewParser( } pub fn storeNameInRef(p: *P, name: string) !Ref { - if (comptime ParsePassSymbolUsageType != void) { + if (comptime track_symbol_usage_during_parse_pass) { if (p.parse_pass_symbol_uses.getPtr(name)) |res| { res.used = true; } |