All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.truffle.js.nodes.access.JSGetOwnPropertyNodeGen Maven / Gradle / Ivy

// CheckStyle: start generated
package com.oracle.truffle.js.nodes.access;

import com.oracle.truffle.api.Assumption;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.dsl.DSLSupport;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.ReferenceField;
import com.oracle.truffle.api.dsl.InlineSupport.StateField;
import com.oracle.truffle.api.dsl.InlineSupport.UnsafeAccessedField;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.object.Property;
import com.oracle.truffle.api.object.Shape;
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import com.oracle.truffle.api.strings.TruffleString.EqualNode;
import com.oracle.truffle.js.nodes.JSGuards;
import com.oracle.truffle.js.nodes.array.JSArrayGetOwnPropertyNode;
import com.oracle.truffle.js.nodes.array.JSArrayGetOwnPropertyNodeGen;
import com.oracle.truffle.js.nodes.cast.ToArrayIndexNode;
import com.oracle.truffle.js.runtime.JSRuntime;
import com.oracle.truffle.js.runtime.builtins.JSArrayObject;
import com.oracle.truffle.js.runtime.builtins.JSStringObject;
import com.oracle.truffle.js.runtime.objects.JSDynamicObject;
import com.oracle.truffle.js.runtime.objects.JSShape;
import com.oracle.truffle.js.runtime.objects.PropertyDescriptor;
import com.oracle.truffle.js.runtime.util.JSClassProfile;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.util.Objects;

/**
 * Debug Info: 
 *   Specialization {@link JSGetOwnPropertyNode#array}
 *     Activation probability: 0.32000
 *     With/without class size: 12/9 bytes
 *   Specialization {@link JSGetOwnPropertyNode#getOwnPropertyString}
 *     Activation probability: 0.26000
 *     With/without class size: 9/1 bytes
 *   Specialization {@link JSGetOwnPropertyNode#cachedOrdinary}
 *     Activation probability: 0.20000
 *     With/without class size: 11/16 bytes
 *   Specialization {@link JSGetOwnPropertyNode#uncachedOrdinary}
 *     Activation probability: 0.14000
 *     With/without class size: 5/0 bytes
 *   Specialization {@link JSGetOwnPropertyNode#generic}
 *     Activation probability: 0.08000
 *     With/without class size: 5/4 bytes
 * 
*/ @GeneratedBy(JSGetOwnPropertyNode.class) @SuppressWarnings("javadoc") public final class JSGetOwnPropertyNodeGen extends JSGetOwnPropertyNode { private static final StateField STATE_0_JSGetOwnPropertyNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_"); static final ReferenceField CACHED_ORDINARY_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "cachedOrdinary_cache", CachedOrdinaryData.class); /** * Source Info:
     *   Specialization: {@link JSGetOwnPropertyNode#array}
     *   Parameter: {@link JSArrayGetOwnPropertyNode} arrayGetOwnProperty
     *   Inline method: {@link JSArrayGetOwnPropertyNodeGen#inline}
*/ private static final JSArrayGetOwnPropertyNode INLINED_ARRAY_ARRAY_GET_OWN_PROPERTY_ = JSArrayGetOwnPropertyNodeGen.inline(InlineTarget.create(JSArrayGetOwnPropertyNode.class, STATE_0_JSGetOwnPropertyNode_UPDATER.subUpdater(5, 2), ReferenceField.create(MethodHandles.lookup(), "array_arrayGetOwnProperty__field1_", Object.class))); /** * Source Info:
     *   Specialization: {@link JSGetOwnPropertyNode#array}
     *   Parameter: {@link InlinedBranchProfile} noSuchElementBranch
     *   Inline method: {@link InlinedBranchProfile#inline}
*/ private static final InlinedBranchProfile INLINED_ARRAY_NO_SUCH_ELEMENT_BRANCH_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_JSGetOwnPropertyNode_UPDATER.subUpdater(7, 1))); /** * Source Info:
     *   Specialization: {@link JSGetOwnPropertyNode#getOwnPropertyString}
     *   Parameter: {@link InlinedConditionProfile} stringCaseProfile
     *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_GET_OWN_PROPERTY_STRING_STRING_CASE_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_JSGetOwnPropertyNode_UPDATER.subUpdater(8, 2))); /** * State Info:
     *   0: SpecializationActive {@link JSGetOwnPropertyNode#array}
     *   1: SpecializationActive {@link JSGetOwnPropertyNode#getOwnPropertyString}
     *   2: SpecializationActive {@link JSGetOwnPropertyNode#cachedOrdinary}
     *   3: SpecializationActive {@link JSGetOwnPropertyNode#uncachedOrdinary}
     *   4: SpecializationActive {@link JSGetOwnPropertyNode#generic}
     *   5-6: InlinedCache
     *        Specialization: {@link JSGetOwnPropertyNode#array}
     *        Parameter: {@link JSArrayGetOwnPropertyNode} arrayGetOwnProperty
     *        Inline method: {@link JSArrayGetOwnPropertyNodeGen#inline}
     *   7: InlinedCache
     *        Specialization: {@link JSGetOwnPropertyNode#array}
     *        Parameter: {@link InlinedBranchProfile} noSuchElementBranch
     *        Inline method: {@link InlinedBranchProfile#inline}
     *   8-9: InlinedCache
     *        Specialization: {@link JSGetOwnPropertyNode#getOwnPropertyString}
     *        Parameter: {@link InlinedConditionProfile} stringCaseProfile
     *        Inline method: {@link InlinedConditionProfile#inline}
     * 
*/ @CompilationFinal @UnsafeAccessedField private int state_0_; /** * Source Info:
     *   Specialization: {@link JSGetOwnPropertyNode#array}
     *   Parameter: {@link ToArrayIndexNode} toArrayIndexNode
*/ @Child private ToArrayIndexNode array_toArrayIndexNode_; /** * Source Info:
     *   Specialization: {@link JSGetOwnPropertyNode#array}
     *   Parameter: {@link JSArrayGetOwnPropertyNode} arrayGetOwnProperty
     *   Inline method: {@link JSArrayGetOwnPropertyNodeGen#inline}
     *   Inline field: {@link Object} field1
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object array_arrayGetOwnProperty__field1_; @UnsafeAccessedField @Child private CachedOrdinaryData cachedOrdinary_cache; /** * Source Info:
     *   Specialization: {@link JSGetOwnPropertyNode#generic}
     *   Parameter: {@link JSClassProfile} jsclassProfile
*/ @CompilationFinal private JSClassProfile generic_jsclassProfile_; private JSGetOwnPropertyNodeGen(boolean needValue, boolean needEnumerability, boolean needConfigurability, boolean needWritability, boolean allowCaching) { super(needValue, needEnumerability, needConfigurability, needWritability, allowCaching); } @ExplodeLoop @Override public PropertyDescriptor execute(JSDynamicObject arg0Value, Object arg1Value) { int state_0 = this.state_0_; if ((state_0 & 0b11111) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.array(JSArrayObject, Object, Node, ToArrayIndexNode, JSArrayGetOwnPropertyNode, InlinedBranchProfile)] || SpecializationActive[JSGetOwnPropertyNode.getOwnPropertyString(JSStringObject, Object, InlinedConditionProfile)] || SpecializationActive[JSGetOwnPropertyNode.cachedOrdinary(JSDynamicObject, Object, Shape, Object, Property, EqualNode)] || SpecializationActive[JSGetOwnPropertyNode.uncachedOrdinary(JSDynamicObject, Object)] || SpecializationActive[JSGetOwnPropertyNode.generic(JSDynamicObject, Object, JSClassProfile)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.array(JSArrayObject, Object, Node, ToArrayIndexNode, JSArrayGetOwnPropertyNode, InlinedBranchProfile)] */ && arg0Value instanceof JSArrayObject) { JSArrayObject arg0Value_ = (JSArrayObject) arg0Value; { ToArrayIndexNode toArrayIndexNode__ = this.array_toArrayIndexNode_; if (toArrayIndexNode__ != null) { Node node__ = (this); return array(arg0Value_, arg1Value, node__, toArrayIndexNode__, INLINED_ARRAY_ARRAY_GET_OWN_PROPERTY_, INLINED_ARRAY_NO_SUCH_ELEMENT_BRANCH_); } } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.getOwnPropertyString(JSStringObject, Object, InlinedConditionProfile)] */ && arg0Value instanceof JSStringObject) { JSStringObject arg0Value_ = (JSStringObject) arg0Value; return getOwnPropertyString(arg0Value_, arg1Value, INLINED_GET_OWN_PROPERTY_STRING_STRING_CASE_PROFILE_); } if ((state_0 & 0b11100) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.cachedOrdinary(JSDynamicObject, Object, Shape, Object, Property, EqualNode)] || SpecializationActive[JSGetOwnPropertyNode.uncachedOrdinary(JSDynamicObject, Object)] || SpecializationActive[JSGetOwnPropertyNode.generic(JSDynamicObject, Object, JSClassProfile)] */) { if ((state_0 & 0b100) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.cachedOrdinary(JSDynamicObject, Object, Shape, Object, Property, EqualNode)] */) { assert DSLSupport.assertIdempotence((allowCaching)); CachedOrdinaryData s2_ = this.cachedOrdinary_cache; while (s2_ != null) { if (!Assumption.isValidAssumption(s2_.assumption0_)) { CompilerDirectives.transferToInterpreterAndInvalidate(); removeCachedOrdinary_(s2_); return executeAndSpecialize(arg0Value, arg1Value); } if ((s2_.cachedShape_ == arg0Value.getShape())) { assert DSLSupport.assertIdempotence((JSShape.usesOrdinaryGetOwnProperty(s2_.cachedShape_))); if ((JSRuntime.propertyKeyEquals(s2_.equalsNode_, s2_.cachedPropertyKey_, arg1Value))) { return cachedOrdinary(arg0Value, arg1Value, s2_.cachedShape_, s2_.cachedPropertyKey_, s2_.cachedProperty_, s2_.equalsNode_); } } s2_ = s2_.next_; } } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.uncachedOrdinary(JSDynamicObject, Object)] */) { if ((JSShape.usesOrdinaryGetOwnProperty(arg0Value.getShape()))) { return uncachedOrdinary(arg0Value, arg1Value); } } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.generic(JSDynamicObject, Object, JSClassProfile)] */) { { JSClassProfile jsclassProfile__ = this.generic_jsclassProfile_; if (jsclassProfile__ != null) { if ((!(JSShape.usesOrdinaryGetOwnProperty(arg0Value.getShape()))) && (!(JSGuards.isJSArray(arg0Value))) && (!(JSGuards.isJSString(arg0Value)))) { return JSGetOwnPropertyNode.generic(arg0Value, arg1Value, jsclassProfile__); } } } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value); } @SuppressWarnings("unused") private PropertyDescriptor executeAndSpecialize(JSDynamicObject arg0Value, Object arg1Value) { int state_0 = this.state_0_; { Node node__ = null; if (arg0Value instanceof JSArrayObject) { JSArrayObject arg0Value_ = (JSArrayObject) arg0Value; node__ = (this); ToArrayIndexNode toArrayIndexNode__ = this.insert((ToArrayIndexNode.create())); Objects.requireNonNull(toArrayIndexNode__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value."); VarHandle.storeStoreFence(); this.array_toArrayIndexNode_ = toArrayIndexNode__; state_0 = state_0 | 0b1 /* add SpecializationActive[JSGetOwnPropertyNode.array(JSArrayObject, Object, Node, ToArrayIndexNode, JSArrayGetOwnPropertyNode, InlinedBranchProfile)] */; this.state_0_ = state_0; return array(arg0Value_, arg1Value, node__, toArrayIndexNode__, INLINED_ARRAY_ARRAY_GET_OWN_PROPERTY_, INLINED_ARRAY_NO_SUCH_ELEMENT_BRANCH_); } } if (arg0Value instanceof JSStringObject) { JSStringObject arg0Value_ = (JSStringObject) arg0Value; state_0 = state_0 | 0b10 /* add SpecializationActive[JSGetOwnPropertyNode.getOwnPropertyString(JSStringObject, Object, InlinedConditionProfile)] */; this.state_0_ = state_0; return getOwnPropertyString(arg0Value_, arg1Value, INLINED_GET_OWN_PROPERTY_STRING_STRING_CASE_PROFILE_); } if (((state_0 & 0b1000)) == 0 /* is-not SpecializationActive[JSGetOwnPropertyNode.uncachedOrdinary(JSDynamicObject, Object)] */ && (allowCaching)) { while (true) { int count2_ = 0; CachedOrdinaryData s2_ = CACHED_ORDINARY_CACHE_UPDATER.getVolatile(this); CachedOrdinaryData s2_original = s2_; while (s2_ != null) { if ((s2_.cachedShape_ == arg0Value.getShape())) { assert DSLSupport.assertIdempotence((JSShape.usesOrdinaryGetOwnProperty(s2_.cachedShape_))); if ((JSRuntime.propertyKeyEquals(s2_.equalsNode_, s2_.cachedPropertyKey_, arg1Value)) && Assumption.isValidAssumption(s2_.assumption0_)) { break; } } count2_++; s2_ = s2_.next_; } if (s2_ == null) { { Shape cachedShape__ = (arg0Value.getShape()); if ((cachedShape__ == arg0Value.getShape()) && (JSShape.usesOrdinaryGetOwnProperty(cachedShape__))) { Object cachedPropertyKey__ = (arg1Value); EqualNode equalsNode__ = this.insert((EqualNode.create())); if ((JSRuntime.propertyKeyEquals(equalsNode__, cachedPropertyKey__, arg1Value))) { Assumption assumption0 = (cachedShape__.getValidAssumption()); if (Assumption.isValidAssumption(assumption0)) { if (count2_ < (3)) { s2_ = this.insert(new CachedOrdinaryData(s2_original)); Objects.requireNonNull(cachedShape__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value."); s2_.cachedShape_ = cachedShape__; s2_.cachedPropertyKey_ = cachedPropertyKey__; s2_.cachedProperty_ = (cachedShape__.getProperty(arg1Value)); Objects.requireNonNull(s2_.insert(equalsNode__), "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value."); s2_.equalsNode_ = equalsNode__; s2_.assumption0_ = assumption0; if (!CACHED_ORDINARY_CACHE_UPDATER.compareAndSet(this, s2_original, s2_)) { continue; } state_0 = state_0 | 0b100 /* add SpecializationActive[JSGetOwnPropertyNode.cachedOrdinary(JSDynamicObject, Object, Shape, Object, Property, EqualNode)] */; this.state_0_ = state_0; } } } } } } if (s2_ != null) { return cachedOrdinary(arg0Value, arg1Value, s2_.cachedShape_, s2_.cachedPropertyKey_, s2_.cachedProperty_, s2_.equalsNode_); } break; } } if ((JSShape.usesOrdinaryGetOwnProperty(arg0Value.getShape()))) { this.cachedOrdinary_cache = null; state_0 = state_0 & 0xfffffffb /* remove SpecializationActive[JSGetOwnPropertyNode.cachedOrdinary(JSDynamicObject, Object, Shape, Object, Property, EqualNode)] */; state_0 = state_0 | 0b1000 /* add SpecializationActive[JSGetOwnPropertyNode.uncachedOrdinary(JSDynamicObject, Object)] */; this.state_0_ = state_0; return uncachedOrdinary(arg0Value, arg1Value); } if ((!(JSShape.usesOrdinaryGetOwnProperty(arg0Value.getShape()))) && (!(JSGuards.isJSArray(arg0Value))) && (!(JSGuards.isJSString(arg0Value)))) { JSClassProfile jsclassProfile__ = (JSClassProfile.create()); Objects.requireNonNull(jsclassProfile__, "A specialization cache returned a default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns the default value."); VarHandle.storeStoreFence(); this.generic_jsclassProfile_ = jsclassProfile__; state_0 = state_0 | 0b10000 /* add SpecializationActive[JSGetOwnPropertyNode.generic(JSDynamicObject, Object, JSClassProfile)] */; this.state_0_ = state_0; return JSGetOwnPropertyNode.generic(arg0Value, arg1Value, jsclassProfile__); } throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value); } void removeCachedOrdinary_(CachedOrdinaryData s2_) { while (true) { CachedOrdinaryData cur = this.cachedOrdinary_cache; CachedOrdinaryData original = cur; CachedOrdinaryData update = null; while (cur != null) { if (cur == s2_) { if (cur == original) { update = cur.next_; } else { update = original.remove(this, s2_); } break; } cur = cur.next_; } if (cur != null && !CACHED_ORDINARY_CACHE_UPDATER.compareAndSet(this, original, update)) { continue; } break; } } @NeverDefault public static JSGetOwnPropertyNode create(boolean needValue, boolean needEnumerability, boolean needConfigurability, boolean needWritability, boolean allowCaching) { return new JSGetOwnPropertyNodeGen(needValue, needEnumerability, needConfigurability, needWritability, allowCaching); } @GeneratedBy(JSGetOwnPropertyNode.class) @DenyReplace private static final class CachedOrdinaryData extends Node implements SpecializationDataNode { @Child CachedOrdinaryData next_; /** * Source Info:
         *   Specialization: {@link JSGetOwnPropertyNode#cachedOrdinary}
         *   Parameter: {@link Shape} cachedShape
*/ @CompilationFinal Shape cachedShape_; /** * Source Info:
         *   Specialization: {@link JSGetOwnPropertyNode#cachedOrdinary}
         *   Parameter: {@link Object} cachedPropertyKey
*/ @CompilationFinal Object cachedPropertyKey_; /** * Source Info:
         *   Specialization: {@link JSGetOwnPropertyNode#cachedOrdinary}
         *   Parameter: {@link Property} cachedProperty
*/ @CompilationFinal Property cachedProperty_; /** * Source Info:
         *   Specialization: {@link JSGetOwnPropertyNode#cachedOrdinary}
         *   Parameter: {@link EqualNode} equalsNode
*/ @Child EqualNode equalsNode_; @CompilationFinal Assumption assumption0_; CachedOrdinaryData(CachedOrdinaryData next_) { this.next_ = next_; } CachedOrdinaryData remove(Node parent, CachedOrdinaryData search) { CachedOrdinaryData newNext = this.next_; if (newNext != null) { if (search == newNext) { newNext = newNext.next_; } else { newNext = newNext.remove(this, search); } } CachedOrdinaryData copy = parent.insert(new CachedOrdinaryData(newNext)); copy.cachedShape_ = this.cachedShape_; copy.cachedPropertyKey_ = this.cachedPropertyKey_; copy.cachedProperty_ = this.cachedProperty_; copy.equalsNode_ = copy.insert(this.equalsNode_); copy.assumption0_ = this.assumption0_; return copy; } } /** * Debug Info:
     *   Specialization {@link GetPropertyProxyValueNode#doCached}
     *     Activation probability: 0.65000
     *     With/without class size: 17/4 bytes
     *   Specialization {@link GetPropertyProxyValueNode#doUncached}
     *     Activation probability: 0.35000
     *     With/without class size: 8/0 bytes
     * 
*/ @GeneratedBy(GetPropertyProxyValueNode.class) @SuppressWarnings("javadoc") public static final class GetPropertyProxyValueNodeGen extends GetPropertyProxyValueNode { static final ReferenceField CACHED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "cached_cache", CachedData.class); /** * State Info:
         *   0: SpecializationActive {@link GetPropertyProxyValueNode#doCached}
         *   1: SpecializationActive {@link GetPropertyProxyValueNode#doUncached}
         * 
*/ @CompilationFinal private int state_0_; @UnsafeAccessedField @CompilationFinal private CachedData cached_cache; private GetPropertyProxyValueNodeGen() { } @ExplodeLoop @Override public Object execute(JSDynamicObject arg0Value, Object arg1Value) { int state_0 = this.state_0_; if (state_0 != 0 /* is SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doCached(JSDynamicObject, Object, Class<>)] || SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doUncached(JSDynamicObject, Object)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doCached(JSDynamicObject, Object, Class<>)] */) { CachedData s0_ = this.cached_cache; while (s0_ != null) { if ((arg1Value.getClass() == s0_.cachedClass_)) { return GetPropertyProxyValueNode.doCached(arg0Value, arg1Value, s0_.cachedClass_); } s0_ = s0_.next_; } } if ((state_0 & 0b10) != 0 /* is SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doUncached(JSDynamicObject, Object)] */) { return GetPropertyProxyValueNode.doUncached(arg0Value, arg1Value); } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(arg0Value, arg1Value); } private Object executeAndSpecialize(JSDynamicObject arg0Value, Object arg1Value) { int state_0 = this.state_0_; if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doUncached(JSDynamicObject, Object)] */) { while (true) { int count0_ = 0; CachedData s0_ = CACHED_CACHE_UPDATER.getVolatile(this); CachedData s0_original = s0_; while (s0_ != null) { if ((arg1Value.getClass() == s0_.cachedClass_)) { break; } count0_++; s0_ = s0_.next_; } if (s0_ == null) { { Class cachedClass__ = (arg1Value.getClass()); if ((arg1Value.getClass() == cachedClass__) && count0_ < (5)) { s0_ = new CachedData(s0_original); s0_.cachedClass_ = cachedClass__; if (!CACHED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) { continue; } state_0 = state_0 | 0b1 /* add SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doCached(JSDynamicObject, Object, Class<>)] */; this.state_0_ = state_0; } } } if (s0_ != null) { return GetPropertyProxyValueNode.doCached(arg0Value, arg1Value, s0_.cachedClass_); } break; } } this.cached_cache = null; state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doCached(JSDynamicObject, Object, Class<>)] */; state_0 = state_0 | 0b10 /* add SpecializationActive[JSGetOwnPropertyNode.GetPropertyProxyValueNode.doUncached(JSDynamicObject, Object)] */; this.state_0_ = state_0; return GetPropertyProxyValueNode.doUncached(arg0Value, arg1Value); } @NeverDefault public static GetPropertyProxyValueNode create() { return new GetPropertyProxyValueNodeGen(); } @GeneratedBy(GetPropertyProxyValueNode.class) @DenyReplace private static final class CachedData implements SpecializationDataNode { @CompilationFinal final CachedData next_; /** * Source Info:
             *   Specialization: {@link GetPropertyProxyValueNode#doCached}
             *   Parameter: {@link Class} cachedClass
*/ @CompilationFinal Class cachedClass_; CachedData(CachedData next_) { this.next_ = next_; } } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy