src/jdk/nashorn/internal/objects/AccessorPropertyDescriptor.java

Print this page
rev 754 : 8030197: Nashorn: Object.defineProperty() can be lured to change fixed NaN property
Reviewed-by: attila, jlaskey
rev 755 : 8035948: Redesign property listeners for shared classes
Reviewed-by: sundar, lagergren
rev 760 : 8037400: Remove getInitialMap getters and GlobalObject interface
Reviewed-by: lagergren, jlaskey, attila

*** 65,80 **** public Object set; // initialized by nasgen private static PropertyMap $nasgenmap$; - static PropertyMap getInitialMap() { - return $nasgenmap$; - } - AccessorPropertyDescriptor(final boolean configurable, final boolean enumerable, final Object get, final Object set, final Global global) { ! super(global.getObjectPrototype(), global.getAccessorPropertyDescriptorMap()); this.configurable = configurable; this.enumerable = enumerable; this.get = get; this.set = set; } --- 65,76 ---- public Object set; // initialized by nasgen private static PropertyMap $nasgenmap$; AccessorPropertyDescriptor(final boolean configurable, final boolean enumerable, final Object get, final Object set, final Global global) { ! super(global.getObjectPrototype(), $nasgenmap$); this.configurable = configurable; this.enumerable = enumerable; this.get = get; this.set = set; }
*** 183,192 **** --- 179,200 ---- public int type() { return ACCESSOR; } @Override + public boolean hasAndEquals(final PropertyDescriptor otherDesc) { + if (! (otherDesc instanceof AccessorPropertyDescriptor)) { + return false; + } + final AccessorPropertyDescriptor other = (AccessorPropertyDescriptor)otherDesc; + return (!has(CONFIGURABLE) || sameValue(configurable, other.configurable)) && + (!has(ENUMERABLE) || sameValue(enumerable, other.enumerable)) && + (!has(GET) || sameValue(get, other.get)) && + (!has(SET) || sameValue(set, other.set)); + } + + @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (! (obj instanceof AccessorPropertyDescriptor)) {