src/jdk/nashorn/internal/objects/NativeError.java
Print this page
@@ -325,11 +325,16 @@
}
final Object exception = ECMAException.getException(sobj);
if (exception instanceof Throwable) {
Object value = getScriptStackString(sobj, (Throwable)exception);
+ if (sobj.hasOwnProperty(STACK)) {
sobj.put(STACK, value, false);
+ } else {
+ sobj.addOwnProperty(STACK, Attribute.NOT_ENUMERABLE, value);
+ }
+
return value;
}
return UNDEFINED;
}
@@ -344,11 +349,16 @@
* @return value that was set
*/
public static Object setStack(final Object self, final Object value) {
Global.checkObject(self);
final ScriptObject sobj = (ScriptObject)self;
- sobj.set(STACK, value, false);
+ if (sobj.hasOwnProperty(STACK)) {
+ sobj.put(STACK, value, false);
+ } else {
+ sobj.addOwnProperty(STACK, Attribute.NOT_ENUMERABLE, value);
+ }
+
return value;
}
/**
* ECMA 15.11.4.4 Error.prototype.toString ( )