mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
[bun.js] Fix segfault when running many bun.js instances
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user