mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-03 22:38:41 +09:00
parent
aa954171ae
commit
d36d40760a
7 changed files with 322 additions and 135 deletions
|
|
@ -2585,12 +2585,28 @@ Notes(JSContext* cx, unsigned argc, Value* vp)
|
|||
return true;
|
||||
}
|
||||
|
||||
JS_STATIC_ASSERT(JSTRY_CATCH == 0);
|
||||
JS_STATIC_ASSERT(JSTRY_FINALLY == 1);
|
||||
JS_STATIC_ASSERT(JSTRY_FOR_IN == 2);
|
||||
static const char*
|
||||
TryNoteName(JSTryNoteKind kind)
|
||||
{
|
||||
switch (kind) {
|
||||
case JSTRY_CATCH:
|
||||
return "catch";
|
||||
case JSTRY_FINALLY:
|
||||
return "finally";
|
||||
case JSTRY_FOR_IN:
|
||||
return "for-in";
|
||||
case JSTRY_FOR_OF:
|
||||
return "for-of";
|
||||
case JSTRY_LOOP:
|
||||
return "loop";
|
||||
case JSTRY_ITERCLOSE:
|
||||
return "iterclose";
|
||||
case JSTRY_DESTRUCTURING_ITERCLOSE:
|
||||
return "dstr-iterclose";
|
||||
}
|
||||
|
||||
static const char* const TryNoteNames[] = { "catch", "finally", "for-in", "for-of", "loop",
|
||||
"iterclose" };
|
||||
MOZ_CRASH("Bad JSTryNoteKind");
|
||||
}
|
||||
|
||||
static MOZ_MUST_USE bool
|
||||
TryNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
||||
|
|
@ -2598,17 +2614,16 @@ TryNotes(JSContext* cx, HandleScript script, Sprinter* sp)
|
|||
if (!script->hasTrynotes())
|
||||
return true;
|
||||
|
||||
if (sp->put("\nException table:\nkind stack start end\n") < 0)
|
||||
if (sp->put("\nException table:\nkind stack start end\n") < 0)
|
||||
return false;
|
||||
|
||||
JSTryNote* tn = script->trynotes()->vector;
|
||||
JSTryNote* tnlimit = tn + script->trynotes()->length;
|
||||
do {
|
||||
MOZ_ASSERT(tn->kind < ArrayLength(TryNoteNames));
|
||||
uint32_t startOff = script->pcToOffset(script->main()) + tn->start;
|
||||
if (!sp->jsprintf(" %-9s %6u %8u %8u\n",
|
||||
TryNoteNames[tn->kind], tn->stackDepth,
|
||||
startOff, startOff + tn->length))
|
||||
if (!sp->jsprintf(" %-14s %6u %8u %8u\n",
|
||||
TryNoteName(static_cast<JSTryNoteKind>(tn->kind)),
|
||||
tn->stackDepth, startOff, startOff + tn->length))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue