Mercurial > hg > shenandoah-preopenjdk-archive > openjdk8 > nashorn
changeset 751:e8ca05a58112
8029003: setField in ScriptObject is incorrect for non extensible objects
Reviewed-by: lagergren, jlaskey
author | sundar |
---|---|
date | Tue, 07 Jan 2014 18:14:18 +0530 |
parents | 3f2b4f3e2c11 |
children | 2f55fa4b2e88 |
files | src/jdk/nashorn/internal/runtime/ScriptObject.java |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/jdk/nashorn/internal/runtime/ScriptObject.java Fri Jan 03 10:09:48 2014 +0530 +++ b/src/jdk/nashorn/internal/runtime/ScriptObject.java Tue Jan 07 18:14:18 2014 +0530 @@ -1888,7 +1888,9 @@ final ScriptObject obj = (ScriptObject)self; final boolean isStrict = NashornCallSiteDescriptor.isStrict(desc); if (!obj.isExtensible()) { - throw typeError("object.non.extensible", desc.getNameToken(2), ScriptRuntime.safeToString(obj)); + if (isStrict) { + throw typeError("object.non.extensible", desc.getNameToken(2), ScriptRuntime.safeToString(obj)); + } } else if (obj.compareAndSetMap(oldMap, newMap)) { setter.invokeExact(self, value); } else {