summaryrefslogtreecommitdiff
path: root/js/src/jsopcodeinlines.h
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-24 12:28:12 +0100
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-24 12:28:12 +0100
commitfdedd57c60d35bed3e6cde12084b7abe08153ed3 (patch)
tree5cba1b96e8d02f657d64f1ea43421d2af044e3c3 /js/src/jsopcodeinlines.h
parent1ea1ed151571a523d1c8016dcd314e12238cd785 (diff)
downloaduxp-fdedd57c60d35bed3e6cde12084b7abe08153ed3.tar.gz
Bug 1147371: Implement JSOP_PICK and JSOP_UNPICK in the expression decompiler
Issue #74
Diffstat (limited to 'js/src/jsopcodeinlines.h')
-rw-r--r--js/src/jsopcodeinlines.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/js/src/jsopcodeinlines.h b/js/src/jsopcodeinlines.h
index cf9c8357a8..5b0ce0cf95 100644
--- a/js/src/jsopcodeinlines.h
+++ b/js/src/jsopcodeinlines.h
@@ -27,6 +27,7 @@ GetDefCount(JSScript* script, unsigned offset)
case JSOP_AND:
return 1;
case JSOP_PICK:
+ case JSOP_UNPICK:
/*
* Pick pops and pushes how deep it looks in the stack + 1
* items. i.e. if the stack were |a b[2] c[1] d[0]|, pick 2
@@ -44,7 +45,7 @@ GetUseCount(JSScript* script, unsigned offset)
{
jsbytecode* pc = script->offsetToPC(offset);
- if (JSOp(*pc) == JSOP_PICK)
+ if (JSOp(*pc) == JSOP_PICK || JSOp(*pc) == JSOP_UNPICK)
return pc[1] + 1;
if (CodeSpec[*pc].nuses == -1)
return StackUses(script, pc);