@TruffleBoundary public Object access(ArgumentsArrayObject argsArr, int index, Object value) { try { argsArr.args[index] = value; return value; } catch (IndexOutOfBoundsException ioob) { throw UnknownIdentifierException.raise(Integer.toString(index)); } } }
@TruffleBoundary public Object access(ArgumentsArrayObject argsArr, int index, Object value) { try { argsArr.args[index] = value; return value; } catch (IndexOutOfBoundsException ioob) { throw UnknownIdentifierException.raise(Integer.toString(index)); } } }
@TruffleBoundary @SuppressWarnings("unused") public Object access(EmptyGlobalBindings obj, String name) { throw UnknownIdentifierException.raise(name); } }
@TruffleBoundary public Object access(VariableNamesObject varNames, int index) { try { return varNames.names.get(index); } catch (IndexOutOfBoundsException ioob) { throw UnknownIdentifierException.raise(Integer.toString(index)); } } }
@TruffleBoundary public Object access(ArgumentsArrayObject argsArr, int index) { try { return argsArr.args[index]; } catch (IndexOutOfBoundsException ioob) { throw UnknownIdentifierException.raise(Integer.toString(index)); } } }
@SuppressWarnings("unchecked") @TruffleBoundary @Specialization(guards = {"isMap(receiver)"}) protected Object doMapGeneric(JavaObject receiver, String name) { Map<String, Object> map = (Map<String, Object>) receiver.obj; if (!map.containsKey(name)) { throw UnknownIdentifierException.raise(name); } map.remove(name); return true; }
public Object access(ComplexNumber complex, int index, Number value) { if (index == 0) { complex.set(ComplexNumber.REAL_IDENTIFIER, value.doubleValue()); return value; } else if (index == 1) { complex.set(ComplexNumber.IMAGINARY_IDENTIFIER, value.doubleValue()); return value; } throw UnknownIdentifierException.raise("Index " + index + " out of bounds (idx 0 = real; idx 1 = imag"); } }
@SuppressWarnings("unchecked") @TruffleBoundary @Specialization(guards = {"isMap(receiver)"}) protected Object doMapGeneric(HostObject receiver, String name) { Map<String, Object> map = (Map<String, Object>) receiver.obj; if (!map.containsKey(name)) { throw UnknownIdentifierException.raise(name); } map.remove(name); return true; }
public Object access(RegexObject receiver, String name, Object[] args) { if (!name.equals("exec")) { throw UnknownIdentifierException.raise(name); } if (args.length != 2) { throw ArityException.raise(2, args.length); } return executeNode.execute(receiver, args[0], args[1]); } }
public Object access(ComplexNumber complex, int index) { if (index == 0) { return complex.get(ComplexNumber.REAL_IDENTIFIER); } else if (index == 1) { return complex.get(ComplexNumber.IMAGINARY_IDENTIFIER); } throw UnknownIdentifierException.raise("Index " + index + " out of bounds (idx 0 = real; idx 1 = imag"); } }
private Object doArrayAccess(HostObject receiver, int index, Object value) { Object obj = receiver.obj; assert receiver.isArray(); final Object javaValue = toJavaNode.execute(value, obj.getClass().getComponentType(), null, receiver.languageContext); try { arraySet.execute(obj, index, javaValue); } catch (ArrayIndexOutOfBoundsException outOfBounds) { CompilerDirectives.transferToInterpreter(); throw UnknownIdentifierException.raise(String.valueOf(index)); } return HostObject.NULL; }
@TruffleBoundary @Specialization(guards = {"isList(receiver)"}) protected Object doListIntIndex(HostObject receiver, int index) { try { return toGuest.apply(receiver.languageContext, ((List<?>) receiver.obj).get(index)); } catch (IndexOutOfBoundsException e) { CompilerDirectives.transferToInterpreter(); throw UnknownIdentifierException.raise(String.valueOf(index)); } }
@TruffleBoundary @Specialization(guards = {"isList(receiver)"}) protected Object doListIntIndex(JavaObject receiver, int index) { try { return JavaInterop.toGuestValue(((List<?>) receiver.obj).get(index), receiver.languageContext); } catch (IndexOutOfBoundsException e) { CompilerDirectives.transferToInterpreter(); throw UnknownIdentifierException.raise(String.valueOf(index)); } }
public Object access(ComplexNumberBEntry complexNumber, String name, Number value) { if (name.equals(ComplexNumber.IMAGINARY_IDENTIFIER)) { complexNumber.getNumbers().getImags()[complexNumber.getIndex()] = value.doubleValue(); } else if (name.equals(ComplexNumber.REAL_IDENTIFIER)) { complexNumber.getNumbers().getReals()[complexNumber.getIndex()] = value.doubleValue(); } else { throw UnknownIdentifierException.raise(name); } return value; }
public Object access(ComplexNumberAEntry complexNumber, String name, Number value) { if (name.equals(ComplexNumber.IMAGINARY_IDENTIFIER)) { complexNumber.getNumbers().getData()[complexNumber.getIndex() * 2 + 1] = value.doubleValue(); } else if (name.equals(ComplexNumber.REAL_IDENTIFIER)) { complexNumber.getNumbers().getData()[complexNumber.getIndex() * 2] = value.doubleValue(); } else { throw UnknownIdentifierException.raise(name); } return value; }
@Specialization(replaces = "readCached") Object readDynamic(TruffleReadOnlyMap receiver, String key) { Object value = mapGet(receiver, key); if (value != null) { return value; } CompilerDirectives.transferToInterpreter(); throw UnknownIdentifierException.raise(key); }
@TruffleBoundary static boolean removeArrayElement(ProxyArray object, Number index) { boolean result; try { result = object.remove(index.longValue()); } catch (ArrayIndexOutOfBoundsException e) { throw UnknownIdentifierException.raise(e.getMessage()); } catch (UnsupportedOperationException e) { throw UnsupportedMessageException.raise(Message.READ); } return result; }
@TruffleBoundary static Object getArray(PolyglotLanguageContext context, ProxyArray object, Number index) { Object result; try { result = object.get(index.longValue()); } catch (ArrayIndexOutOfBoundsException e) { throw UnknownIdentifierException.raise(e.getMessage()); } catch (UnsupportedOperationException e) { throw UnsupportedMessageException.raise(Message.READ); } return context.toGuestValue(result); }
@TruffleBoundary static void setArray(PolyglotLanguageContext context, ProxyArray object, Number index, Object value) { Value castValue = context.asValue(value); try { object.set(index.longValue(), castValue); } catch (ArrayIndexOutOfBoundsException e) { throw UnknownIdentifierException.raise(e.getMessage()); } catch (UnsupportedOperationException e) { throw UnsupportedMessageException.raise(Message.READ); } }
@TruffleBoundary static boolean removeMember(ProxyObject object, String key) { if (object.hasMember(key)) { try { return object.removeMember(key); } catch (UnsupportedOperationException e) { throw UnsupportedMessageException.raise(Message.READ); } } else { throw UnknownIdentifierException.raise(key); } }