105 final MethodHandle spillGetter = MH.asType(MH.getter(MethodHandles.lookup(), ScriptObject.class, "spill", Object[].class), spillGetterType); |
105 final MethodHandle spillGetter = MH.asType(MH.getter(MethodHandles.lookup(), ScriptObject.class, "spill", Object[].class), spillGetterType); |
106 SPILL_ELEMENT_GETTER = MH.filterArguments(MH.arrayElementGetter(Object[].class), 0, spillGetter); |
106 SPILL_ELEMENT_GETTER = MH.filterArguments(MH.arrayElementGetter(Object[].class), 0, spillGetter); |
107 SPILL_ELEMENT_SETTER = MH.filterArguments(MH.arrayElementSetter(Object[].class), 0, spillGetter); |
107 SPILL_ELEMENT_SETTER = MH.filterArguments(MH.arrayElementSetter(Object[].class), 0, spillGetter); |
108 } |
108 } |
109 |
109 |
|
110 /** |
|
111 * Create a new accessor property. Factory method used by nasgen generated code. |
|
112 * |
|
113 * @param key {@link Property} key. |
|
114 * @param propertyFlags {@link Property} flags. |
|
115 * @param getter {@link Property} get accessor method. |
|
116 * @param setter {@link Property} set accessor method. |
|
117 * |
|
118 * @return New {@link AccessorProperty} created. |
|
119 */ |
|
120 public static AccessorProperty create(final String key, final int propertyFlags, final MethodHandle getter, final MethodHandle setter) { |
|
121 return new AccessorProperty(key, propertyFlags, -1, getter, setter); |
|
122 } |
|
123 |
110 /** Seed getter for the primitive version of this field (in -Dnashorn.fields.dual=true mode) */ |
124 /** Seed getter for the primitive version of this field (in -Dnashorn.fields.dual=true mode) */ |
111 private MethodHandle primitiveGetter; |
125 private MethodHandle primitiveGetter; |
112 |
126 |
113 /** Seed setter for the primitive version of this field (in -Dnashorn.fields.dual=true mode) */ |
127 /** Seed setter for the primitive version of this field (in -Dnashorn.fields.dual=true mode) */ |
114 private MethodHandle primitiveSetter; |
128 private MethodHandle primitiveSetter; |