summaryrefslogtreecommitdiffstats
path: root/js/src/jit/IonBuilder.cpp
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-25 17:00:47 +0200
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-25 17:00:47 +0200
commit727c27a30d10a811d5a3fe04e2407cd7b3993b5e (patch)
treeffca6abc0cae35533a84df6f19b88f31ca3ad97b /js/src/jit/IonBuilder.cpp
parentb311e8fa718e2a32805c25847781cc8a6a0541bd (diff)
downloadUXP-727c27a30d10a811d5a3fe04e2407cd7b3993b5e.tar
UXP-727c27a30d10a811d5a3fe04e2407cd7b3993b5e.tar.gz
UXP-727c27a30d10a811d5a3fe04e2407cd7b3993b5e.tar.lz
UXP-727c27a30d10a811d5a3fe04e2407cd7b3993b5e.tar.xz
UXP-727c27a30d10a811d5a3fe04e2407cd7b3993b5e.zip
Bug 1342553 - Part 0.2: Support JSOP_CHECKISCALLABLE in JIT
Issue #74
Diffstat (limited to 'js/src/jit/IonBuilder.cpp')
-rw-r--r--js/src/jit/IonBuilder.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp
index 26bba0656..ed09fb504 100644
--- a/js/src/jit/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -2183,6 +2183,9 @@ IonBuilder::inspectOpcode(JSOp op)
case JSOP_CHECKISOBJ:
return jsop_checkisobj(GET_UINT8(pc));
+ case JSOP_CHECKISCALLABLE:
+ return jsop_checkiscallable(GET_UINT8(pc));
+
case JSOP_CHECKOBJCOERCIBLE:
return jsop_checkobjcoercible();
@@ -10900,6 +10903,15 @@ IonBuilder::jsop_checkisobj(uint8_t kind)
}
bool
+IonBuilder::jsop_checkiscallable(uint8_t kind)
+{
+ MCheckIsCallable* check = MCheckIsCallable::New(alloc(), current->pop(), kind);
+ current->add(check);
+ current->push(check);
+ return true;
+}
+
+bool
IonBuilder::jsop_checkobjcoercible()
{
MDefinition* toCheck = current->peek(-1);