Skip to content

Commit 85968fc

Browse files
committed
KeyInfoNode must look up property using TruffleString.
1 parent 8b30bb0 commit 85968fc

File tree

1 file changed

+7
-5
lines changed
  • graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/interop

1 file changed

+7
-5
lines changed

graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/interop/KeyInfoNode.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import com.oracle.truffle.api.dsl.Bind;
4444
import com.oracle.truffle.api.dsl.Cached;
4545
import com.oracle.truffle.api.dsl.GenerateUncached;
46+
import com.oracle.truffle.api.dsl.ImportStatic;
4647
import com.oracle.truffle.api.dsl.Specialization;
4748
import com.oracle.truffle.api.library.CachedLibrary;
4849
import com.oracle.truffle.api.object.DynamicObjectLibrary;
@@ -68,6 +69,7 @@
6869
/**
6970
* This node implements the {@code isMember*} messages.
7071
*/
72+
@ImportStatic(Strings.class)
7173
@GenerateUncached
7274
public abstract class KeyInfoNode extends JavaScriptBaseNode {
7375
public static final int READABLE = 1 << 0;
@@ -85,13 +87,13 @@ public abstract class KeyInfoNode extends JavaScriptBaseNode {
8587
public abstract boolean execute(JSDynamicObject receiver, String key, int query);
8688

8789
@Specialization(guards = {"!isJSProxy(target)", "property != null"}, limit = "2")
88-
static boolean cachedOwnProperty(JSDynamicObject target, String key, int query,
90+
static boolean cachedOwnProperty(JSDynamicObject target, @SuppressWarnings("unused") String key, int query,
8991
@CachedLibrary("target") DynamicObjectLibrary objectLibrary,
90-
@Bind("objectLibrary.getProperty(target, key)") Property property,
92+
@Cached @SuppressWarnings("unused") TruffleString.FromJavaStringNode fromJavaStringNode,
93+
@Bind("fromJavaString(fromJavaStringNode, key)") TruffleString tStringKey,
94+
@Bind("objectLibrary.getProperty(target, tStringKey)") Property property,
9195
@Cached IsCallableNode isCallable,
92-
@Cached BranchProfile proxyBranch,
93-
@Cached TruffleString.FromJavaStringNode fromJavaStringNode) {
94-
TruffleString tStringKey = Strings.fromJavaString(fromJavaStringNode, key);
96+
@Cached BranchProfile proxyBranch) {
9597
if (JSProperty.isAccessor(property)) {
9698
Accessor accessor = (Accessor) Properties.getOrDefault(objectLibrary, target, tStringKey, null);
9799
if ((query & READABLE) != 0 && accessor.hasGetter()) {

0 commit comments

Comments
 (0)