src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Property.java
Print this page
*** 86,99 ****
/** Is this a builtin property, e.g. Function.prototype.apply */
public static final int IS_BUILTIN = 1 << 7;
/** Is this property bound to a receiver? This means get/set operations will be delegated to
* a statically defined object instead of the object passed as callsite parameter. */
! public static final int IS_BOUND = 1 << 7;
/** Is this a lexically scoped LET or CONST variable that is dead until it is declared. */
! public static final int NEEDS_DECLARATION = 1 << 8;
/** Property key. */
private final String key;
/** Property flags. */
--- 86,102 ----
/** Is this a builtin property, e.g. Function.prototype.apply */
public static final int IS_BUILTIN = 1 << 7;
/** Is this property bound to a receiver? This means get/set operations will be delegated to
* a statically defined object instead of the object passed as callsite parameter. */
! public static final int IS_BOUND = 1 << 8;
/** Is this a lexically scoped LET or CONST variable that is dead until it is declared. */
! public static final int NEEDS_DECLARATION = 1 << 9;
!
! /** Is this property an ES6 lexical binding? */
! public static final int IS_LEXICAL_BINDING = 1 << 10;
/** Property key. */
private final String key;
/** Property flags. */
*** 712,717 ****
--- 715,728 ----
* @return whether this property is a function declaration or not.
*/
public boolean isFunctionDeclaration() {
return (flags & IS_FUNCTION_DECLARATION) == IS_FUNCTION_DECLARATION;
}
+
+ /**
+ * Is this a property defined by ES6 let or const?
+ * @return true if this property represents a lexical binding.
+ */
+ public boolean isLexicalBinding() {
+ return (flags & IS_LEXICAL_BINDING) == IS_LEXICAL_BINDING;
+ }
}