private static void arraycopy(Object[] src, int srcPos, Object[] dest, int destPos, int length) { for (int i = 0; i < length; i++) { dest[destPos + i] = checkInteropType(src[srcPos + i]); } }
private static void arraycopy(Object[] src, int srcPos, Object[] dest, int destPos, int length) { for (int i = 0; i < length; i++) { dest[destPos + i] = checkInteropType(src[srcPos + i]); } }
@Override public void checkInteropType(Object result) { InteropAccessNode.checkInteropType(result); }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object arg0, Object arg1) throws InteropException { return checkInteropType(executeImpl(receiver, new Object[]{receiver, checkInteropType(arg0), checkInteropType(arg1)})); }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object arg0) throws InteropException { return checkInteropType(executeImpl(receiver, new Object[]{receiver, checkInteropType(arg0)})); }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object arg0) throws InteropException { return checkInteropType(executeImpl(receiver, new Object[]{receiver, checkInteropType(arg0)})); }
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; }
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; }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver) throws InteropException { return checkInteropType(executeImpl(receiver, new Object[]{receiver})); }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver) throws InteropException { return checkInteropType(executeImpl(receiver, new Object[]{receiver})); }
@Deprecated public final Object executeOld(TruffleObject receiver, Object[] arguments) { return checkInteropType(executeImpl(receiver, insertArg1(arguments, receiver))); }
@Deprecated public final Object executeOld(TruffleObject receiver, Object[] arguments) { return checkInteropType(executeImpl(receiver, insertArg1(arguments, receiver))); }
public final Object executeOrFalse(TruffleObject receiver) throws InteropException { try { return checkInteropType(executeImplInterop(receiver, new Object[]{receiver})); } catch (UnsupportedMessageException ex) { profileDefaultUnsupported.enter(); return false; } }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object[] arguments) throws InteropException { return checkInteropType(executeImpl(receiver, insertArg1(arguments, receiver))); }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object arg0, Object[] arguments) throws InteropException { return checkInteropType(executeImpl(receiver, insertArg2(arguments, receiver, arg0))); }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object[] arguments) throws InteropException { return checkInteropType(executeImpl(receiver, insertArg1(arguments, receiver))); }
public final Object executeOrFalse(TruffleObject receiver) throws InteropException { try { return checkInteropType(executeImplInterop(receiver, new Object[]{receiver})); } catch (UnsupportedMessageException ex) { profileDefaultUnsupported.enter(); return false; } }
private Object[] insertArg1(Object[] arguments, Object arg0) { int length = profileLength(arguments.length); Object[] newArguments = new Object[length + 1]; newArguments[0] = checkInteropType(arg0); arraycopy(arguments, 0, newArguments, 1, length); return newArguments; }
private Object[] insertArg1(Object[] arguments, Object arg0) { int length = profileLength(arguments.length); Object[] newArguments = new Object[length + 1]; newArguments[0] = checkInteropType(arg0); arraycopy(arguments, 0, newArguments, 1, length); return newArguments; }
@SuppressWarnings("unused") public final Object execute(TruffleObject receiver, Object arg0, Object[] arguments) throws InteropException { return checkInteropType(executeImpl(receiver, insertArg2(arguments, receiver, arg0))); }