src/jdk/nashorn/internal/objects/NativeError.java
Print this page
@@ -314,11 +314,16 @@
}
final Object exception = ECMAException.getException(sobj);
if (exception instanceof Throwable) {
final 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;
}
@@ -332,11 +337,15 @@
*
* @return value that was set
*/
public static Object setStack(final Object self, final Object value) {
final ScriptObject sobj = Global.checkObject(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 ( )