@Override Object execute(TruffleObject[] scopes, int length, Object[] arguments, int offset) throws InteropException { String identifier = expectIdentifier(arguments, offset, Message.KEY_INFO); int keyInfo = KeyInfo.NONE; for (int i = 0; i < length; i++) { TruffleObject scopeObject = scopes[i]; int currentInfo = ForeignAccess.sendKeyInfo(keyInfoNode, scopeObject, identifier); if (KeyInfo.isExisting(currentInfo)) { keyInfo = currentInfo; break; } else if (KeyInfo.isInsertable(currentInfo)) { keyInfo = currentInfo; } } return keyInfo; }
@Override Object execute(TruffleObject[] scopes, int length, Object[] arguments, int offset) throws InteropException { String identifier = expectIdentifier(arguments, offset, Message.KEY_INFO); int keyInfo = KeyInfo.NONE; for (int i = 0; i < length; i++) { TruffleObject scopeObject = scopes[i]; int currentInfo = ForeignAccess.sendKeyInfo(keyInfoNode, scopeObject, identifier); if (KeyInfo.isExisting(currentInfo)) { keyInfo = currentInfo; break; } else if (KeyInfo.isInsertable(currentInfo)) { keyInfo = currentInfo; } } return keyInfo; }