final LanguageInfo resolveLanguage() { LanguageInfo languageInfo; if (preferredLanguage != null) { languageInfo = preferredLanguage; } else if (getScope() != null && getScope().getLanguage() != null) { languageInfo = getScope().getLanguage(); } else { languageInfo = getOriginalLanguage(); } return languageInfo; }
final LanguageInfo resolveLanguage() { LanguageInfo languageInfo; if (preferredLanguage != null) { languageInfo = preferredLanguage; } else if (getScope() != null && getScope().getLanguage() != null) { languageInfo = getScope().getLanguage(); } else { languageInfo = getOriginalLanguage(); } return languageInfo; }
private ValuePropertiesCollection getVariables() { verifyValidState(); if (variables == null) { Object variablesObj = scope.getVariables(); variables = DebugValue.getProperties(variablesObj, debugger, getLanguage(), this); } return variables; }
private ValuePropertiesCollection getVariables() { verifyValidState(); try { if (variables == null) { Object variablesObj = scope.getVariables(); variables = DebugValue.getProperties(variablesObj, session, getLanguage(), this); } } catch (ThreadDeath td) { throw td; } catch (Throwable ex) { throw new DebugException(session, ex, language, null, true, null); } return variables; }
/** * Get arguments of this scope. If this scope is a {@link #isFunctionScope() function} scope, * function arguments are returned. * <p> * This method is not thread-safe and will throw an {@link IllegalStateException} if called on * another thread than it was created with. * * @return an iterable of arguments, or <code>null</code> when this scope does not have a * concept of arguments. * @since 0.26 */ public Iterable<DebugValue> getArguments() { verifyValidState(); Object argumentsObj = scope.getArguments(); Iterable<DebugValue> arguments = null; if (argumentsObj != null && argumentsObj instanceof TruffleObject) { TruffleObject argsTO = (TruffleObject) argumentsObj; arguments = DebugValue.getProperties(argumentsObj, debugger, getLanguage(), this); if (arguments == null && ObjectStructures.isArray(debugger.getMessageNodes(), argsTO)) { List<Object> array = ObjectStructures.asList(debugger.getMessageNodes(), argsTO); arguments = new ValueInteropList(debugger, getLanguage(), array); } } return arguments; }
if (argumentsObj != null && argumentsObj instanceof TruffleObject) { TruffleObject argsTO = (TruffleObject) argumentsObj; arguments = DebugValue.getProperties(argumentsObj, session, getLanguage(), this); if (arguments == null && ObjectStructures.isArray(session.getDebugger().getMessageNodes(), argsTO)) { List<Object> array = ObjectStructures.asList(session.getDebugger().getMessageNodes(), argsTO); arguments = new ValueInteropList(session, getLanguage(), array);