nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java
changeset 16168 f0c208287983
parent 16161 0ebfaec3a45b
child 16173 c41d062f7d2a
equal deleted inserted replaced
16167:d99db3541813 16168:f0c208287983
  1792         final String name = desc.getNameToken(CallSiteDescriptor.NAME_OPERAND);
  1792         final String name = desc.getNameToken(CallSiteDescriptor.NAME_OPERAND);
  1793         if (NashornCallSiteDescriptor.isStrict(desc)) {
  1793         if (NashornCallSiteDescriptor.isStrict(desc)) {
  1794                typeError(Context.getGlobal(), strictErrorMessage, name, ScriptRuntime.safeToString((this)));
  1794                typeError(Context.getGlobal(), strictErrorMessage, name, ScriptRuntime.safeToString((this)));
  1795            }
  1795            }
  1796            assert canBeFastScope || !NashornCallSiteDescriptor.isFastScope(desc);
  1796            assert canBeFastScope || !NashornCallSiteDescriptor.isFastScope(desc);
  1797            final PropertyMap map = getMap();
  1797            final PropertyMap myMap = getMap();
  1798            return new GuardedInvocation(Lookup.EMPTY_SETTER, map.getProtoGetSwitchPoint(name), NashornGuards.getMapGuard(map));
  1798            return new GuardedInvocation(Lookup.EMPTY_SETTER, myMap.getProtoGetSwitchPoint(name), NashornGuards.getMapGuard(myMap));
  1799     }
  1799     }
  1800 
  1800 
  1801     @SuppressWarnings("unused")
  1801     @SuppressWarnings("unused")
  1802     private static void setEmbed(final CallSiteDescriptor desc, final PropertyMap oldMap, final PropertyMap newMap, final MethodHandle setter, final int i, final Object self, final Object value) throws Throwable {
  1802     private static void setEmbed(final CallSiteDescriptor desc, final PropertyMap oldMap, final PropertyMap newMap, final MethodHandle setter, final int i, final Object self, final Object value) throws Throwable {
  1803         final ScriptObject obj = (ScriptObject)self;
  1803         final ScriptObject obj = (ScriptObject)self;
  1804         if(obj.trySetEmbedOrSpill(desc, oldMap, newMap, value)) {
  1804         if (obj.trySetEmbedOrSpill(desc, oldMap, newMap, value)) {
  1805             obj.useEmbed(i);
  1805             obj.useEmbed(i);
  1806             setter.invokeExact(self, value);
  1806             setter.invokeExact(self, value);
  1807         }
  1807         }
  1808     }
  1808     }
  1809 
  1809 
  1810     @SuppressWarnings("unused")
  1810     @SuppressWarnings("unused")
  1811     private static void setSpill(final CallSiteDescriptor desc, final PropertyMap oldMap, final PropertyMap newMap, final int index, final Object self, final Object value) {
  1811     private static void setSpill(final CallSiteDescriptor desc, final PropertyMap oldMap, final PropertyMap newMap, final int index, final Object self, final Object value) {
  1812         final ScriptObject obj = (ScriptObject)self;
  1812         final ScriptObject obj = (ScriptObject)self;
  1813         if(obj.trySetEmbedOrSpill(desc, oldMap, newMap, value)) {
  1813         if (obj.trySetEmbedOrSpill(desc, oldMap, newMap, value)) {
  1814             obj.spill[index] = value;
  1814             obj.spill[index] = value;
  1815         }
  1815         }
  1816     }
  1816     }
  1817 
  1817 
  1818     private boolean trySetEmbedOrSpill(final CallSiteDescriptor desc, final PropertyMap oldMap, final PropertyMap newMap, final Object value) {
  1818     private boolean trySetEmbedOrSpill(final CallSiteDescriptor desc, final PropertyMap oldMap, final PropertyMap newMap, final Object value) {