diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-19 15:59:22 +0100 |
---|---|---|
committer | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-19 15:59:22 +0100 |
commit | e3f1d0d10638e46e3a22cf8363c03922200cb158 (patch) | |
tree | 4f62ebdc97e6083dd53b12a0f62510ed7e4fa913 /js/src/jit/IonBuilder.cpp | |
parent | f67a2b88d7e8780f4ae81419338004b6fd781567 (diff) | |
download | UXP-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.cpp | 18 |
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 |