mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1152304 - Add displaying of block notes to dis() in the JS shell. (r=jimb)
This commit is contained in:
parent
0e4f326901
commit
f8e6b5e10b
@ -2202,6 +2202,30 @@ TryNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
BlockNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
||||||
|
{
|
||||||
|
if (!script->hasBlockScopes())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
Sprint(sp, "\nBlock table:\n index parent start end\n");
|
||||||
|
|
||||||
|
BlockScopeArray* scopes = script->blockScopes();
|
||||||
|
for (uint32_t i = 0; i < scopes->length; i++) {
|
||||||
|
const BlockScopeNote* note = &scopes->vector[i];
|
||||||
|
if (note->index == BlockScopeNote::NoBlockScopeIndex)
|
||||||
|
Sprint(sp, "%8s ", "(none)");
|
||||||
|
else
|
||||||
|
Sprint(sp, "%8u ", note->index);
|
||||||
|
if (note->parent == BlockScopeNote::NoBlockScopeIndex)
|
||||||
|
Sprint(sp, "%8s ", "(none)");
|
||||||
|
else
|
||||||
|
Sprint(sp, "%8u ", note->parent);
|
||||||
|
Sprint(sp, "%8u %8u\n", note->start, note->start + note->length);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
DisassembleScript(JSContext* cx, HandleScript script, HandleFunction fun, bool lines,
|
DisassembleScript(JSContext* cx, HandleScript script, HandleFunction fun, bool lines,
|
||||||
bool recursive, Sprinter* sp)
|
bool recursive, Sprinter* sp)
|
||||||
@ -2229,6 +2253,7 @@ DisassembleScript(JSContext* cx, HandleScript script, HandleFunction fun, bool l
|
|||||||
return false;
|
return false;
|
||||||
SrcNotes(cx, script, sp);
|
SrcNotes(cx, script, sp);
|
||||||
TryNotes(cx, script, sp);
|
TryNotes(cx, script, sp);
|
||||||
|
BlockNotes(cx, script, sp);
|
||||||
|
|
||||||
if (recursive && script->hasObjects()) {
|
if (recursive && script->hasObjects()) {
|
||||||
ObjectArray* objects = script->objects();
|
ObjectArray* objects = script->objects();
|
||||||
@ -2299,6 +2324,7 @@ DisassembleToSprinter(JSContext* cx, unsigned argc, jsval* vp, Sprinter* sprinte
|
|||||||
return false;
|
return false;
|
||||||
SrcNotes(cx, script, sprinter);
|
SrcNotes(cx, script, sprinter);
|
||||||
TryNotes(cx, script, sprinter);
|
TryNotes(cx, script, sprinter);
|
||||||
|
BlockNotes(cx, script, sprinter);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (unsigned i = 0; i < p.argc; i++) {
|
for (unsigned i = 0; i < p.argc; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user