Confirmed users
496
edits
(You can talk with long string actors without pausing. Fix start/end limits. 88191b4) |
m (Minor: use StudlyCaps, not hyphenated-names. 32d4b7d) |
||
Line 546: | Line 546: | ||
If the thread pauses to report an interesting event to the client, it sends a packet of the form: | If the thread pauses to report an interesting event to the client, it sends a packet of the form: | ||
{ "from":<i>thread</i>, "type":"paused", "actor":<i> | { "from":<i>thread</i>, "type":"paused", "actor":<i>pauseActor</i>, "why":<i>reason</i>, | ||
"currentFrame":<i>frame</i>, "poppedFrames":[<i>poppedFrame</i>...] } | "currentFrame":<i>frame</i>, "poppedFrames":[<i>poppedFrame</i>...] } | ||
This indicates that the thread has entered the <b>Paused</b> state, and explains where and why. | This indicates that the thread has entered the <b>Paused</b> state, and explains where and why. | ||
<i> | <i>PauseActor</i> is a "pause actor", representing this specific pause of the thread; it lives until the thread next leaves the <b>Paused</b> state. The pause actor parents actors referring to values and other entities uncovered during this pause; when the thread resumes, those actors are automatically closed. This relieves the client from the responsibility to explicitly close every actor mentioned during the pause. | ||
Since actors in value grips are parented by the pause actor, this means that those grips become invalid when the thread resumes, or is detached from; it is not possible to take a grip from one pause and use it in the next. To create a grip that remains valid between pauses, see [[#Grip_Lifetimes|Grip Lifetimes]]. | Since actors in value grips are parented by the pause actor, this means that those grips become invalid when the thread resumes, or is detached from; it is not possible to take a grip from one pause and use it in the next. To create a grip that remains valid between pauses, see [[#Grip_Lifetimes|Grip Lifetimes]]. | ||
Line 581: | Line 581: | ||
The thread stopped because it executed a JavaScript "debugger" statement. | The thread stopped because it executed a JavaScript "debugger" statement. | ||
{ "type":"breakpoint", "actors":[<i> | { "type":"breakpoint", "actors":[<i>breakpointActor</i>...] } | ||
The thread stopped at the breakpoints represented by the given actors. | The thread stopped at the breakpoints represented by the given actors. | ||
{ "type":"watchpoint", "actors":[<i> | { "type":"watchpoint", "actors":[<i>watchpointActor</i>...] } | ||
The thread stopped at the watchpoints represented by the given actors. | The thread stopped at the watchpoints represented by the given actors. |