# HG changeset patch # User jlaskey # Date 1372261115 10800 # Node ID 2e4082f4cc69f4e3ab7d7cb2c43af0267588b22b # Parent 414674540de194e39fc8cacaeb487eb2ed3a25b3 8019175: Simplify ScriptObject.modifyOwnProperty Reviewed-by: hannesw Contributed-by: james.laskey@oracle.com diff -r 414674540de1 -r 2e4082f4cc69 nashorn/src/jdk/nashorn/internal/objects/ScriptFunctionImpl.java --- a/nashorn/src/jdk/nashorn/internal/objects/ScriptFunctionImpl.java Wed Jun 26 19:42:17 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/objects/ScriptFunctionImpl.java Wed Jun 26 12:38:35 2013 -0300 @@ -149,12 +149,6 @@ return typeErrorThrower; } - // add a new property that throws TypeError on get as well as set - static synchronized PropertyMap newThrowerProperty(final PropertyMap map, final String name) { - return map.newProperty(name, Property.NOT_ENUMERABLE | Property.NOT_CONFIGURABLE, -1, - Lookup.TYPE_ERROR_THROWER_GETTER, Lookup.TYPE_ERROR_THROWER_SETTER); - } - private static PropertyMap createStrictModeMap(PropertyMap map) { final int flags = Property.NOT_ENUMERABLE | Property.NOT_CONFIGURABLE; // Need to add properties directly to map since slots are assigned speculatively by newUserAccessors. diff -r 414674540de1 -r 2e4082f4cc69 nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java --- a/nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java Wed Jun 26 19:42:17 2013 +0530 +++ b/nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java Wed Jun 26 12:38:35 2013 -0300 @@ -868,9 +868,7 @@ public final void setUserAccessors(final String key, final ScriptFunction getter, final ScriptFunction setter) { final Property oldProperty = getMap().findProperty(key); if (oldProperty instanceof UserAccessorProperty) { - final UserAccessorProperty ua = (UserAccessorProperty)oldProperty; - setSpill(ua.getGetterSlot(), getter); - setSpill(ua.getSetterSlot(), setter); + modifyOwnProperty(oldProperty, oldProperty.getFlags(), getter, setter); } else { addOwnProperty(newUserAccessors(key, oldProperty != null ? oldProperty.getFlags() : 0, getter, setter)); }