aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/javascript/jsc/base.zig11
-rw-r--r--src/js_parser/js_parser.zig2
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;
}