aboutsummaryrefslogtreecommitdiff
path: root/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jdk/nashorn/api/scripting/ScriptObjectMirror.java')
-rw-r--r--src/jdk/nashorn/api/scripting/ScriptObjectMirror.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java b/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java
index 7f4ca755..e28da041 100644
--- a/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java
+++ b/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java
@@ -50,6 +50,7 @@ import jdk.nashorn.internal.runtime.ScriptFunction;
import jdk.nashorn.internal.runtime.ScriptObject;
import jdk.nashorn.internal.runtime.ScriptRuntime;
import jdk.nashorn.internal.runtime.arrays.ArrayData;
+import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor;
/**
* Mirror object that wraps a given Nashorn Script object.
@@ -261,7 +262,7 @@ public final class ScriptObjectMirror extends AbstractJSObject implements Bindin
public void setSlot(final int index, final Object value) {
inGlobal(new Callable<Void>() {
@Override public Void call() {
- sobj.set(index, unwrap(value, global), strict);
+ sobj.set(index, unwrap(value, global), getCallSiteFlags());
return null;
}
});
@@ -425,7 +426,7 @@ public final class ScriptObjectMirror extends AbstractJSObject implements Bindin
for (final Map.Entry<? extends String, ? extends Object> entry : map.entrySet()) {
final Object value = entry.getValue();
final Object modValue = globalChanged? wrap(value, oldGlobal) : value;
- sobj.set(entry.getKey(), unwrap(modValue, global), strict);
+ sobj.set(entry.getKey(), unwrap(modValue, global), getCallSiteFlags());
}
return null;
}
@@ -756,6 +757,10 @@ public final class ScriptObjectMirror extends AbstractJSObject implements Bindin
return (obj == ScriptRuntime.UNDEFINED)? null : obj;
}
+ private int getCallSiteFlags() {
+ return strict ? NashornCallSiteDescriptor.CALLSITE_STRICT : 0;
+ }
+
// internals only below this.
private <V> V inGlobal(final Callable<V> callable) {
final Global oldGlobal = Context.getGlobal();