From f5fa6cfea7dbd02dd690ac030157c4c94ba7ce63 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Tue, 3 Dec 2019 20:00:57 -0500 Subject: Bug 1344753 - Update for-of stack depth in ControlFlowGenerator::processWhileOrForInLoop. Tag #1287 --- js/src/jit/IonBuilder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/src/jit/IonBuilder.cpp') diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp index 0c69729a4..af4ca0657 100644 --- a/js/src/jit/IonBuilder.cpp +++ b/js/src/jit/IonBuilder.cpp @@ -3351,7 +3351,7 @@ IonBuilder::whileOrForInLoop(jssrcnote* sn) unsigned stackPhiCount; if (SN_TYPE(sn) == SRC_FOR_OF) - stackPhiCount = 2; + stackPhiCount = 3; else if (SN_TYPE(sn) == SRC_FOR_IN) stackPhiCount = 1; else -- cgit v1.2.3 From bbd1fef7840d97801307f9ace021b52d94c5f61f Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Sat, 14 Dec 2019 09:13:04 -0500 Subject: Bug 1331092 - Part 6: Support JSOP_TOASYNCGEN in JIT. Tag #1287 --- js/src/jit/IonBuilder.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'js/src/jit/IonBuilder.cpp') diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp index af4ca0657..171518d38 100644 --- a/js/src/jit/IonBuilder.cpp +++ b/js/src/jit/IonBuilder.cpp @@ -2130,6 +2130,9 @@ IonBuilder::inspectOpcode(JSOp op) case JSOP_TOASYNC: return jsop_toasync(); + case JSOP_TOASYNCGEN: + return jsop_toasyncgen(); + case JSOP_TOID: return jsop_toid(); @@ -13195,6 +13198,20 @@ IonBuilder::jsop_toasync() return resumeAfter(ins); } +bool +IonBuilder::jsop_toasyncgen() +{ + MDefinition* unwrapped = current->pop(); + MOZ_ASSERT(unwrapped->type() == MIRType::Object); + + MToAsyncGen* ins = MToAsyncGen::New(alloc(), unwrapped); + + current->add(ins); + current->push(ins); + + return resumeAfter(ins); +} + bool IonBuilder::jsop_toid() { -- cgit v1.2.3 From 580dfb2afbef15764b56714f3eb690a67f0af9c1 Mon Sep 17 00:00:00 2001 From: Gaming4JC Date: Sat, 14 Dec 2019 09:22:32 -0500 Subject: Bug 1331092 - Part 8: Support JSOP_TOASYNCITER in JIT. Tag #1287 --- js/src/jit/IonBuilder.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'js/src/jit/IonBuilder.cpp') diff --git a/js/src/jit/IonBuilder.cpp b/js/src/jit/IonBuilder.cpp index 171518d38..1e12f5dbe 100644 --- a/js/src/jit/IonBuilder.cpp +++ b/js/src/jit/IonBuilder.cpp @@ -2133,6 +2133,9 @@ IonBuilder::inspectOpcode(JSOp op) case JSOP_TOASYNCGEN: return jsop_toasyncgen(); + case JSOP_TOASYNCITER: + return jsop_toasynciter(); + case JSOP_TOID: return jsop_toid(); @@ -13212,6 +13215,20 @@ IonBuilder::jsop_toasyncgen() return resumeAfter(ins); } +bool +IonBuilder::jsop_toasynciter() +{ + MDefinition* unwrapped = current->pop(); + MOZ_ASSERT(unwrapped->type() == MIRType::Object); + + MToAsyncIter* ins = MToAsyncIter::New(alloc(), unwrapped); + + current->add(ins); + current->push(ins); + + return resumeAfter(ins); +} + bool IonBuilder::jsop_toid() { -- cgit v1.2.3