Merge

Sun, 20 Sep 2015 23:03:28 -0700

author
asaha
date
Sun, 20 Sep 2015 23:03:28 -0700
changeset 1666
0fe957cacc1e
parent 1661
9b9565054f13
parent 1665
126df6b4ff17
child 1668
b8987f466586

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) {

mercurial