@Override protected void onInputValue(VirtualFrame frame, EventContext inputContext, int inputIndex, Object inputValue) { if (stepping.get() && hasExpressionElement) { SteppingStrategy steppingStrategy = getSteppingStrategy(Thread.currentThread()); if (steppingStrategy != null && steppingStrategy.isCollectingInputValues()) { saveInputValue(frame, inputIndex, inputValue); } } }
@Override public Object[] getDebugInputValues(MaterializedFrame frame) { return getSavedInputValues(frame); }
@Override protected Object onUnwind(VirtualFrame frame, Object info) { Object ret = super.onUnwind(frame, info); if (ret != null) { return ret; } if (stepping.get()) { return doUnwind(frame.materialize()); } else { return null; } }
@Override protected void onReturnExceptional(VirtualFrame frame, Throwable exception) { if (stepping.get()) { doStepAfter(frame.materialize(), exception); } }
@Override protected void onEnter(VirtualFrame frame) { if (stepping.get()) { doStepBefore(frame.materialize()); } }
@Override public ExecutionEventNode create(EventContext context) { return new SteppingNode(context); } }, hasExpressionElement, syntaxTags);
@Override public Object[] getDebugInputValues(MaterializedFrame frame) { return getSavedInputValues(frame); }
@Override protected void onReturnValue(VirtualFrame frame, Object result) { if (stepping.get()) { doStepAfter(frame.materialize(), result); } }
@Override protected void onInputValue(VirtualFrame frame, EventContext inputContext, int inputIndex, Object inputValue) { if (stepping.get() && hasExpressionElement) { SteppingStrategy steppingStrategy = getSteppingStrategy(Thread.currentThread()); if (steppingStrategy != null && steppingStrategy.isCollectingInputValues()) { saveInputValue(frame, inputIndex, inputValue); } } }
@Override public ExecutionEventNode create(EventContext context) { if (context.hasTag(RootTag.class)) { return new RootSteppingDepthNode(context); } else { return new SteppingNode(context); } } }, hasExpressionElement, syntaxTags);
@Override protected void onEnter(VirtualFrame frame) { if (stepping.get()) { doStepBefore(frame.materialize()); } }
@Override protected void onReturnValue(VirtualFrame frame, Object result) { if (stepping.get()) { Object newResult = doStepAfter(frame.materialize(), result); if (newResult != result) { CompilerDirectives.transferToInterpreter(); throw getContext().createUnwind(new ChangedReturnInfo(newResult)); } } }
@Override protected void onEnter(VirtualFrame frame) { if (stepping.get()) { doEnter(); if (hasRootElement) { super.onEnter(frame); } } }
@Override protected void onReturnExceptional(VirtualFrame frame, Throwable exception) { if (stepping.get()) { doStepAfter(frame.materialize(), exception); } }