@Override public Object setValue(Object value) { try { ForeignAccess.sendWrite(nodes.write, object, key, value); } catch (UnknownIdentifierException | UnsupportedMessageException | UnsupportedTypeException ex) { throw ex.raise(); } return null; } }
/** * Re-throw an {@link InteropException} as a {@link RuntimeException}, which allows throwing it * without an explicit throws declaration. * * The method returns {@link RuntimeException} so it can be used as * {@link com.oracle.truffle.api.dsl.test.interop.Snippets.RethrowExample} but the method never * returns. It throws this exception internally rather than returning any value. * * @return the exception * @since 0.14 */ public final RuntimeException raise() { return silenceException(RuntimeException.class, this); }
@Override public Object getValue() { try { return ForeignAccess.sendRead(nodes.read, object, key); } catch (UnknownIdentifierException | UnsupportedMessageException ex) { throw ex.raise(); } }
/** * Re-throw an {@link InteropException} as a {@link RuntimeException}, which allows throwing it * without an explicit throws declaration. * * The method returns {@link RuntimeException} so it can be used as * {@link com.oracle.truffle.api.dsl.test.interop.Snippets.RethrowExample} but the method never * returns. It throws this exception internally rather than returning any value. * * @return the exception * @since 0.14 */ public final RuntimeException raise() { return silenceException(RuntimeException.class, this); }
@Override public Object getValue() { try { return ForeignAccess.sendRead(nodes.read, object, key); } catch (UnknownIdentifierException | UnsupportedMessageException ex) { throw ex.raise(); } }
@Override public Object get(int index) { try { return ForeignAccess.sendRead(nodes.read, object, index); } catch (UnknownIdentifierException | UnsupportedMessageException ex) { throw ex.raise(); } }
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(); } } }
@Override public Object get(int index) { try { return ForeignAccess.sendRead(nodes.read, object, index); } catch (UnknownIdentifierException | UnsupportedMessageException ex) { throw ex.raise(); } }
@Override public Object set(int index, Object element) { Object prev = get(index); try { ForeignAccess.sendWrite(nodes.write, object, index, element); } catch (UnknownIdentifierException | UnsupportedTypeException | UnsupportedMessageException ex) { throw ex.raise(); } return prev; }
@Override public Entry<Object, Object> next() { Object key; try { key = ForeignAccess.sendRead(nodes.read, props, index++); } catch (UnknownIdentifierException | UnsupportedMessageException ex) { throw ex.raise(); } return new TruffleEntry(key); }
@Override public Object set(int index, Object element) { Object prev = get(index); try { ForeignAccess.sendWrite(nodes.write, object, index, element); } catch (UnknownIdentifierException | UnsupportedTypeException | UnsupportedMessageException ex) { throw ex.raise(); } return prev; }
@Override public Object put(Object key, Object value) { Object prev = get(key); try { ForeignAccess.sendWrite(nodes.write, object, key, value); } catch (UnknownIdentifierException | UnsupportedTypeException | UnsupportedMessageException ex) { throw ex.raise(); } return prev; }
@Override public Object setValue(Object value) { Object prev = getValue(); try { ForeignAccess.sendWrite(nodes.write, object, key, value); } catch (UnknownIdentifierException | UnsupportedMessageException | UnsupportedTypeException ex) { throw ex.raise(); } return prev; } }
@Override public Object put(Object key, Object value) { Object prev = get(key); try { ForeignAccess.sendWrite(nodes.write, object, key, value); } catch (UnknownIdentifierException | UnsupportedTypeException | UnsupportedMessageException ex) { throw ex.raise(); } return prev; }
@Override public Entry<Object, Object> next() { Object key; try { key = ForeignAccess.sendRead(nodes.read, props, index++); } catch (UnknownIdentifierException | UnsupportedMessageException ex) { throw ex.raise(); } return new TruffleEntry(nodes, object, key); }
@Override public final Object execute(VirtualFrame frame) { Object[] arguments = frame.getArguments(); PolyglotBindings bindings = (PolyglotBindings) arguments[0]; try { return execute(bindings.languageContext, bindings.bindings, arguments, 1); } catch (InteropException e) { CompilerDirectives.transferToInterpreter(); throw e.raise(); } }
@Override public TruffleObject compile(RegexSource source) throws RegexSyntaxException, UnsupportedRegexException { try { return (TruffleObject) ForeignAccess.sendExecute(executeNode, foreignCompiler, source.getPattern(), source.getFlags()); } catch (InteropException ex) { throw ex.raise(); } } }
@Override public final Object execute(VirtualFrame frame) { Object[] arguments = frame.getArguments(); PolyglotBindings bindings = (PolyglotBindings) arguments[0]; try { return execute(bindings.languageContext, bindings.bindings, arguments, 1); } catch (InteropException e) { CompilerDirectives.transferToInterpreter(); throw e.raise(); } }
public final Object execute(HostMethodDesc method, Object obj, Object[] args, PolyglotLanguageContext languageContext) { try { return executeImpl(method, obj, args, languageContext); } catch (ClassCastException | NullPointerException e) { // conversion failed by ToJavaNode throw UnsupportedTypeException.raise(e, args); } catch (InteropException e) { throw e.raise(); } catch (Throwable e) { throw HostInteropReflect.rethrow(PolyglotImpl.wrapHostException(languageContext, e)); } }
public final Object execute(JavaMethodDesc method, Object obj, Object[] args, Object languageContext) { try { return executeImpl(method, obj, args, languageContext); } catch (ClassCastException | NullPointerException e) { // conversion failed by ToJavaNode throw UnsupportedTypeException.raise(args); } catch (InteropException e) { throw e.raise(); } catch (Throwable e) { throw JavaInteropReflect.rethrow(JavaInterop.wrapHostException(languageContext, e)); } }