aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/javascript/jsc/bindings/bindings.cpp10
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);