Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index 8cab88f0f6594278445fd25f1ce857e6977c3d81..d1b00f8bdea718a71eca5d12d47900cd2f677883 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -589,8 +589,11 @@ void Deoptimizer::DoComputeOutputFrames() { |
case Translation::CONSTRUCT_STUB_FRAME: |
DoComputeConstructStubFrame(&iterator, i); |
break; |
+ case Translation::GETTER_STUB_FRAME: |
+ DoComputeAccessorStubFrame(&iterator, i, false); |
+ break; |
case Translation::SETTER_STUB_FRAME: |
- DoComputeSetterStubFrame(&iterator, i); |
+ DoComputeAccessorStubFrame(&iterator, i, true); |
break; |
case Translation::BEGIN: |
case Translation::REGISTER: |
@@ -722,6 +725,7 @@ void Deoptimizer::DoTranslateCommand(TranslationIterator* iterator, |
case Translation::JS_FRAME: |
case Translation::ARGUMENTS_ADAPTOR_FRAME: |
case Translation::CONSTRUCT_STUB_FRAME: |
+ case Translation::GETTER_STUB_FRAME: |
case Translation::SETTER_STUB_FRAME: |
case Translation::DUPLICATE: |
UNREACHABLE(); |
@@ -1018,6 +1022,7 @@ bool Deoptimizer::DoOsrTranslateCommand(TranslationIterator* iterator, |
case Translation::JS_FRAME: |
case Translation::ARGUMENTS_ADAPTOR_FRAME: |
case Translation::CONSTRUCT_STUB_FRAME: |
+ case Translation::GETTER_STUB_FRAME: |
case Translation::SETTER_STUB_FRAME: |
case Translation::DUPLICATE: |
UNREACHABLE(); // Malformed input. |
@@ -1482,6 +1487,12 @@ void Translation::BeginConstructStubFrame(int literal_id, unsigned height) { |
} |
+void Translation::BeginGetterStubFrame(int literal_id) { |
+ buffer_->Add(GETTER_STUB_FRAME, zone()); |
+ buffer_->Add(literal_id, zone()); |
+} |
+ |
+ |
void Translation::BeginSetterStubFrame(int literal_id) { |
buffer_->Add(SETTER_STUB_FRAME, zone()); |
buffer_->Add(literal_id, zone()); |
@@ -1574,6 +1585,7 @@ int Translation::NumberOfOperandsFor(Opcode opcode) { |
case ARGUMENTS_OBJECT: |
case DUPLICATE: |
return 0; |
+ case GETTER_STUB_FRAME: |
case SETTER_STUB_FRAME: |
case REGISTER: |
case INT32_REGISTER: |
@@ -1609,6 +1621,8 @@ const char* Translation::StringFor(Opcode opcode) { |
return "ARGUMENTS_ADAPTOR_FRAME"; |
case CONSTRUCT_STUB_FRAME: |
return "CONSTRUCT_STUB_FRAME"; |
+ case GETTER_STUB_FRAME: |
+ return "GETTER_STUB_FRAME"; |
case SETTER_STUB_FRAME: |
return "SETTER_STUB_FRAME"; |
case REGISTER: |
@@ -1671,6 +1685,7 @@ SlotRef SlotRef::ComputeSlotForNextArgument(TranslationIterator* iterator, |
case Translation::JS_FRAME: |
case Translation::ARGUMENTS_ADAPTOR_FRAME: |
case Translation::CONSTRUCT_STUB_FRAME: |
+ case Translation::GETTER_STUB_FRAME: |
case Translation::SETTER_STUB_FRAME: |
// Peeled off before getting here. |
break; |