diff options
-rw-r--r-- | src/javascript/jsc/bindings/bindings.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/javascript/jsc/bindings/bindings.cpp b/src/javascript/jsc/bindings/bindings.cpp index ef1d78e27..7c190153f 100644 --- a/src/javascript/jsc/bindings/bindings.cpp +++ b/src/javascript/jsc/bindings/bindings.cpp @@ -306,13 +306,15 @@ JSC__JSValue SystemError__toErrorInstance(const SystemError* arg0, JSC::JSValue options = JSC::jsUndefined(); - JSC::Structure* errorStructure = globalObject->errorStructure(); - JSC::JSObject* result = JSC::ErrorInstance::create(globalObject, errorStructure, message, options); + Structure* errorStructure = JSC_GET_DERIVED_STRUCTURE(vm, errorStructure, globalObject->errorPrototype(), globalObject->errorPrototype()); + + JSC::JSObject* result + = JSC::ErrorInstance::create(globalObject, errorStructure, message, options); auto clientData = WebCore::clientData(vm); - if (err.code.len > 0) { - JSC::JSValue code = Zig::toJSString(err.code, globalObject); + if (err.code.len > 0 && !(err.code.len == 1 and err.code.ptr[0] == 0)) { + JSC::JSValue code = Zig::toJSStringGC(err.code, globalObject); result->putDirect(vm, clientData->builtinNames().codePublicName(), code, JSC::PropertyAttribute::DontDelete | 0); |