summaryrefslogtreecommitdiffstats
path: root/js/src/jit/IonBuilder.cpp
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-19 15:59:22 +0100
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-03-19 15:59:22 +0100
commite3f1d0d10638e46e3a22cf8363c03922200cb158 (patch)
tree4f62ebdc97e6083dd53b12a0f62510ed7e4fa913 /js/src/jit/IonBuilder.cpp
parentf67a2b88d7e8780f4ae81419338004b6fd781567 (diff)
downloadUXP-e3f1d0d10638e46e3a22cf8363c03922200cb158.tar
UXP-e3f1d0d10638e46e3a22cf8363c03922200cb158.tar.gz
UXP-e3f1d0d10638e46e3a22cf8363c03922200cb158.tar.lz
UXP-e3f1d0d10638e46e3a22cf8363c03922200cb158.tar.xz
UXP-e3f1d0d10638e46e3a22cf8363c03922200cb158.zip
Part 3: Support JSOP_SETFUNNAME in Baseline and Ion
Issue #87
Diffstat (limited to 'js/src/jit/IonBuilder.cpp')
-rw-r--r--js/src/jit/IonBuilder.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp
index 1488d7d34..2e7784ff4 100644
--- a/js/src/jit/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -2122,6 +2122,9 @@ IonBuilder::inspectOpcode(JSOp op)
case JSOP_LAMBDA_ARROW:
return jsop_lambda_arrow(info().getFunction(pc));
+ case JSOP_SETFUNNAME:
+ return jsop_setfunname(GET_UINT8(pc));
+
case JSOP_ITER:
return jsop_iter(GET_INT8(pc));
@@ -13340,6 +13343,21 @@ IonBuilder::jsop_lambda_arrow(JSFunction* fun)
}
bool
+IonBuilder::jsop_setfunname(uint8_t prefixKind)
+{
+ MDefinition* name = current->pop();
+ MDefinition* fun = current->pop();
+ MOZ_ASSERT(fun->type() == MIRType::Object);
+
+ MSetFunName* ins = MSetFunName::New(alloc(), fun, name, prefixKind);
+
+ current->add(ins);
+ current->push(fun);
+
+ return resumeAfter(ins);
+}
+
+bool
IonBuilder::jsop_setarg(uint32_t arg)
{
// To handle this case, we should spill the arguments to the space where