Sun, 20 Sep 2015 23:03:28 -0700
Merge
.hgtags | file | annotate | diff | comparison | revisions |
1.1 --- a/.hgtags Mon Aug 31 14:50:39 2015 -0700 1.2 +++ b/.hgtags Sun Sep 20 23:03:28 2015 -0700 1.3 @@ -341,6 +341,7 @@ 1.4 34a64e22b81bd78cf29603a80ff1f4cfc1694df8 jdk8u31-b31 1.5 d2b5784a3452a4fd9d1ccfefe93ee2d36662842c jdk8u31-b32 1.6 c6dd08613a440ed8d0f1b14b85911d6f3826e1d4 jdk8u31-b33 1.7 +e92af20b58190a0fa46c2c93636368866e274b39 jdk8u31-b34 1.8 f2925491b61b22ac42f8c30ee9c6723ffa401a4c jdk8u40-b00 1.9 62468d841b842769d875bd97d10370585c296eb7 jdk8u40-b01 1.10 b476c69c820ac1e05071f4de5abab8e2dff80e87 jdk8u40-b02 1.11 @@ -412,6 +413,8 @@ 1.12 4cbc78843829b3f6de43b3c056565834008419a6 jdk8u51-b15 1.13 f01ca5e6b907d1fc2c17068fb28a74411e833f16 jdk8u51-b16 1.14 4e5f9de7a3dfd0c4e15714863007ac591e9dffea jdk8u51-b31 1.15 +009644f58d73263eec2582a84a1e9b63975c5387 jdk8u51-b32 1.16 +eac4b87f86dde817023a07dcb701dc5d986b705f jdk8u51-b33 1.17 6ec61d2494283fbaca6df227f1a5b45487dc1ca7 jdk8u60-b00 1.18 af290f203369ecf8e67b89c4a3a8df0bf535230e jdk8u60-b01 1.19 39e0c14d45c3fee93a29993f1415b3393d03483f jdk8u60-b02 1.20 @@ -440,6 +443,8 @@ 1.21 371f3f83f773ec97491d994bbcce834f0a2cca74 jdk8u60-b25 1.22 58791cd01bc9aa973d8845ce63403b90d357b5ac jdk8u60-b26 1.23 72a33aed7dccf570f4e05ea1121522a88ac190b2 jdk8u60-b27 1.24 +fc0045a6aaeee45f5d2505a2f7a07ec6cd6f56bc jdk8u60-b31 1.25 +2d161c9248ca7bf5779cf33c45768e26c1161eb4 jdk8u60-b32 1.26 afc8b472a5f3d54734be29aa9c4f617191fc9246 jdk8u52-b06 1.27 8cd2d9bea168694db5f090b30ba5973e1656385b jdk8u52-b07 1.28 afc8b472a5f3d54734be29aa9c4f617191fc9246 jdk8u65-b00 1.29 @@ -455,6 +460,8 @@ 1.30 be2856f5c3e4ced88259759201fbb3d5c0e4db94 jdk8u65-b10 1.31 6a809be8e2057b290871707aeaadf79679afbf90 jdk8u65-b11 1.32 b9bc29802d24cf3e82f0b435c82d567e27373aa6 jdk8u65-b12 1.33 +5ad3832ac8d01656ec28d03f81042f2672360219 jdk8u65-b13 1.34 +1448629ede5316a04b15f66667a8cfc4bd1b5009 jdk8u65-b14 1.35 9ed906919b5d92067edcdd966a3f413fca0f70ab jdk8u66-b00 1.36 c0f0613d1b1119afc9446eb187a2a7b5f534f050 jdk8u66-b01 1.37 16220ab541af04fe79d9143fb62854f7acf46eca jdk8u66-b02 1.38 @@ -464,4 +471,6 @@ 1.39 998d6b5b976ba8db410b9f8cccf1cc927280b542 jdk8u66-b10 1.40 46022f24d619e56ff41a432a5211bd9560d3e237 jdk8u66-b11 1.41 2bdd08a9cc8ca594723e412cc9479f4f7351959f jdk8u66-b12 1.42 +cd562acc692c5ea4d5e3ea5164757f1b7e00e274 jdk8u66-b13 1.43 +165ed6982da8dc7dc5562d5b4a8f07dba55c7448 jdk8u66-b14 1.44 a7ac4116ee88aa86fec5ac66901302e11f578172 jdk8u71-b00
2.1 --- a/src/jdk/nashorn/internal/runtime/UserAccessorProperty.java Mon Aug 31 14:50:39 2015 -0700 2.2 +++ b/src/jdk/nashorn/internal/runtime/UserAccessorProperty.java Sun Sep 20 23:03:28 2015 -0700 2.3 @@ -24,7 +24,6 @@ 2.4 */ 2.5 2.6 package jdk.nashorn.internal.runtime; 2.7 - 2.8 import static jdk.nashorn.internal.lookup.Lookup.MH; 2.9 import static jdk.nashorn.internal.runtime.ECMAErrors.typeError; 2.10 import static jdk.nashorn.internal.runtime.ScriptRuntime.UNDEFINED; 2.11 @@ -34,6 +33,7 @@ 2.12 import java.lang.invoke.MethodHandle; 2.13 import java.lang.invoke.MethodHandles; 2.14 import java.lang.invoke.MethodType; 2.15 +import java.util.concurrent.Callable; 2.16 import jdk.nashorn.internal.lookup.Lookup; 2.17 import jdk.nashorn.internal.runtime.linker.Bootstrap; 2.18 import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor; 2.19 @@ -80,6 +80,15 @@ 2.20 private final static MethodHandle INVOKE_LONG_SETTER = findOwnMH_S("invokeLongSetter", void.class, Accessors.class, MethodHandle.class, String.class, Object.class, long.class); 2.21 private final static MethodHandle INVOKE_NUMBER_SETTER = findOwnMH_S("invokeNumberSetter", void.class, Accessors.class, MethodHandle.class, String.class, Object.class, double.class); 2.22 2.23 + private static final Object OBJECT_GETTER_INVOKER_KEY = new Object(); 2.24 + private static MethodHandle getObjectGetterInvoker() { 2.25 + return Context.getGlobal().getDynamicInvoker(OBJECT_GETTER_INVOKER_KEY, new Callable<MethodHandle>() { 2.26 + @Override 2.27 + public MethodHandle call() throws Exception { 2.28 + return getINVOKE_UA_GETTER(Object.class, INVALID_PROGRAM_POINT); 2.29 + } 2.30 + }); 2.31 + } 2.32 2.33 static MethodHandle getINVOKE_UA_GETTER(final Class<?> returnType, final int programPoint) { 2.34 if (UnwarrantedOptimismException.isValid(programPoint)) { 2.35 @@ -90,6 +99,16 @@ 2.36 } 2.37 } 2.38 2.39 + private static final Object OBJECT_SETTER_INVOKER_KEY = new Object(); 2.40 + private static MethodHandle getObjectSetterInvoker() { 2.41 + return Context.getGlobal().getDynamicInvoker(OBJECT_SETTER_INVOKER_KEY, new Callable<MethodHandle>() { 2.42 + @Override 2.43 + public MethodHandle call() throws Exception { 2.44 + return getINVOKE_UA_SETTER(Object.class); 2.45 + } 2.46 + }); 2.47 + } 2.48 + 2.49 static MethodHandle getINVOKE_UA_SETTER(final Class<?> valueType) { 2.50 return Bootstrap.createDynamicInvoker("dyn:call", void.class, Object.class, Object.class, valueType); 2.51 } 2.52 @@ -181,7 +200,7 @@ 2.53 @Override 2.54 public Object getObjectValue(final ScriptObject self, final ScriptObject owner) { 2.55 try { 2.56 - return invokeObjectGetter(getAccessors((owner != null) ? owner : self), getINVOKE_UA_GETTER(Object.class, INVALID_PROGRAM_POINT), self); 2.57 + return invokeObjectGetter(getAccessors((owner != null) ? owner : self), getObjectGetterInvoker(), self); 2.58 } catch (final Error | RuntimeException t) { 2.59 throw t; 2.60 } catch (final Throwable t) { 2.61 @@ -207,7 +226,7 @@ 2.62 @Override 2.63 public void setValue(final ScriptObject self, final ScriptObject owner, final Object value, final boolean strict) { 2.64 try { 2.65 - invokeObjectSetter(getAccessors((owner != null) ? owner : self), getINVOKE_UA_SETTER(Object.class), strict ? getKey() : null, self, value); 2.66 + invokeObjectSetter(getAccessors((owner != null) ? owner : self), getObjectSetterInvoker(), strict ? getKey() : null, self, value); 2.67 } catch (final Error | RuntimeException t) { 2.68 throw t; 2.69 } catch (final Throwable t) {