src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java
Print this page
*** 58,67 ****
--- 58,68 ----
import jdk.nashorn.internal.objects.annotations.Property;
import jdk.nashorn.internal.objects.annotations.ScriptClass;
import jdk.nashorn.internal.objects.annotations.Setter;
import jdk.nashorn.internal.runtime.Context;
import jdk.nashorn.internal.runtime.ECMAErrors;
+ import jdk.nashorn.internal.runtime.FindProperty;
import jdk.nashorn.internal.runtime.GlobalConstants;
import jdk.nashorn.internal.runtime.GlobalFunctions;
import jdk.nashorn.internal.runtime.JSType;
import jdk.nashorn.internal.runtime.NativeJavaPackage;
import jdk.nashorn.internal.runtime.PropertyDescriptor;
*** 2202,2211 ****
--- 2203,2223 ----
return invocation;
}
@Override
+ protected FindProperty findProperty(final String key, final boolean deep, final ScriptObject start) {
+ if (lexicalScope != null && start != this && start.isScope()) {
+ final FindProperty find = lexicalScope.findProperty(key, false);
+ if (find != null) {
+ return find;
+ }
+ }
+ return super.findProperty(key, deep, start);
+ }
+
+ @Override
public GuardedInvocation findSetMethod(final CallSiteDescriptor desc, final LinkRequest request) {
final boolean isScope = NashornCallSiteDescriptor.isScope(desc);
if (lexicalScope != null && isScope) {
final String name = desc.getNameToken(CallSiteDescriptor.NAME_OPERAND);