private static boolean hasKeys(TruffleObject object) { try { TruffleObject keys = ForeignAccess.sendKeys(Message.KEYS.createNode(), object); if (keys == null) { return false; } return ForeignAccess.sendHasSize(Message.HAS_SIZE.createNode(), keys); } catch (UnsupportedMessageException ex) { return false; } }
PropertyNamedValue(DebuggerSession session, LanguageInfo language, TruffleObject object, Map<Object, Object> map, String name, DebugScope scope) { this(session, language, ForeignAccess.sendKeyInfo(Message.KEY_INFO.createNode(), object, name), map, name, scope); }
@Resolve(message = "IS_NULL") abstract static class NullCheckNode extends Node { public Object access(JavaObject object) { return object.isNull(); } }
private Object doExecute(TruffleObject compiledRegexObject, RegexObject regexObject, Object input, Object fromIndex) { try { return ForeignAccess.sendExecute(executeNode, compiledRegexObject, regexObject, input, fromIndex); } catch (InteropException ex) { throw ex.raise(); } } }
private Object[] insertArg2(Object[] arguments, Object arg0, Object arg1) { int length = profileLength(arguments.length); Object[] newArguments = new Object[length + 2]; newArguments[0] = checkInteropType(arg0); newArguments[1] = checkInteropType(arg1); arraycopy(arguments, 0, newArguments, 2, length); return newArguments; }
@Override protected Object executeImpl(Object receiver, Object[] args) { String key = (String) args[1]; int keyInfo = ForeignAccess.sendKeyInfo(keyInfoNode, (TruffleObject) receiver, key); return KeyInfo.isExisting(keyInfo); }
private ToPrimitiveNode() { this.isNullNode = Message.IS_NULL.createNode(); this.isBoxedNode = Message.IS_BOXED.createNode(); this.hasKeysNode = Message.HAS_KEYS.createNode(); this.hasSizeNode = Message.HAS_SIZE.createNode(); this.unboxNode = Message.UNBOX.createNode(); }
private static boolean assertHandlesItself(TruffleObject receiver) { if (receiver.getForeignAccess() != null) { // to exercise the assertion in createCanHandleInlinedCallNode: createCanHandleInlinedCallNode(receiver.getForeignAccess(), receiver); } return true; }
private static boolean hasKeys(TruffleObject object) { try { TruffleObject keys = ForeignAccess.sendKeys(Message.KEYS.createNode(), object); if (keys == null) { return false; } return ForeignAccess.sendHasSize(Message.HAS_SIZE.createNode(), keys); } catch (UnsupportedMessageException ex) { return false; } }
PropertyNamedValue(Debugger debugger, LanguageInfo language, TruffleObject object, Map<Object, Object> map, String name, DebugScope scope) { this(debugger, language, ForeignAccess.sendKeyInfo(Message.KEY_INFO.createNode(), object, name), map, name, scope); }
@Resolve(message = "HAS_SIZE") abstract static class VarNamesHasSizeNode extends Node { public Object access(VariableNamesObject varNames) { return true; } }
@Resolve(message = "HAS_SIZE") abstract static class ArgsArrHasSizeNode extends Node { public Object access(ArgumentsArrayObject argsArr) { return true; } }