diff options
author | 2022-04-04 23:25:54 -0700 | |
---|---|---|
committer | 2022-04-04 23:25:54 -0700 | |
commit | 30542225c6e140c900078538a6a563561005411b (patch) | |
tree | 9a2c4d1b9b09441df9712d8d410e0810421f5a53 /src/javascript/jsc/bindings/bindings.cpp | |
parent | 759b6c18fdbaa3788dad0ccde0115e4dce1a6470 (diff) | |
download | bun-30542225c6e140c900078538a6a563561005411b.tar.gz bun-30542225c6e140c900078538a6a563561005411b.tar.zst bun-30542225c6e140c900078538a6a563561005411b.zip |
fix bug with io sometimes sleeping permanetly
Diffstat (limited to 'src/javascript/jsc/bindings/bindings.cpp')
-rw-r--r-- | src/javascript/jsc/bindings/bindings.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/javascript/jsc/bindings/bindings.cpp b/src/javascript/jsc/bindings/bindings.cpp index c3684e2bd..a0e5fe4a9 100644 --- a/src/javascript/jsc/bindings/bindings.cpp +++ b/src/javascript/jsc/bindings/bindings.cpp @@ -2410,13 +2410,19 @@ void JSC__JSValue__getNameProperty(JSC__JSValue JSValue0, JSC__JSGlobalObject* a { JSC::JSObject* obj = JSC::JSValue::decode(JSValue0).getObject(); + JSC::VM &vm = arg1->vm(); if (obj == nullptr) { arg2->len = 0; return; } - JSC::JSValue name = obj->getDirect(arg1->vm(), arg1->vm().propertyNames->name); + JSC::JSValue name = obj->getDirect(vm, vm.propertyNames->toStringTagSymbol); + if (name == JSC::JSValue{}) { + name = obj->getDirect(vm, vm.propertyNames->name); + } + + if (name && name.isString()) { auto str = name.toWTFString(arg1); if (!str.isEmpty()) { @@ -2425,9 +2431,9 @@ void JSC__JSValue__getNameProperty(JSC__JSValue JSValue0, JSC__JSGlobalObject* a } } - if (JSC::JSFunction* function = JSC::jsDynamicCast<JSC::JSFunction*>(arg1->vm(), obj)) { + if (JSC::JSFunction* function = JSC::jsDynamicCast<JSC::JSFunction*>(vm, obj)) { - WTF::String actualName = function->name(arg1->vm()); + WTF::String actualName = function->name(vm); if (!actualName.isEmpty() || function->isHostOrBuiltinFunction()) { *arg2 = Zig::toZigString(actualName); return; @@ -2439,7 +2445,7 @@ void JSC__JSValue__getNameProperty(JSC__JSValue JSValue0, JSC__JSGlobalObject* a return; } - if (JSC::InternalFunction* function = JSC::jsDynamicCast<JSC::InternalFunction*>(arg1->vm(), obj)) { + if (JSC::InternalFunction* function = JSC::jsDynamicCast<JSC::InternalFunction*>(vm, obj)) { auto view = WTF::StringView(function->name()); *arg2 = Zig::toZigString(view); return; |