@Override public Object isDefined(VirtualFrame frame) { CompilerDirectives.transferToInterpreter(); final DynamicObject threadLocalVariablesObject = threadLocalVariablesObjectNode.executeDynamicObject(frame); if (readNode.getName().equals("$~") || readNode.getName().equals("$!") || readNode.execute(threadLocalVariablesObject) != nil()) { return create7BitString( StringOperations.encodeByteList("global-variable", UTF8Encoding.INSTANCE)); } else { return nil(); } }
@Override public Object execute(VirtualFrame frame) { final DynamicObject threadLocalVariablesObject = threadLocalVariablesObjectNode.executeDynamicObject(frame); return readNode.execute(threadLocalVariablesObject); }