Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: src/code-stubs.h

Issue 1949023003: [Interpreter] Fix incorrect frame walking in arguments create stubs (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add ports Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/code-factory.cc ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/code-stubs.h
diff --git a/src/code-stubs.h b/src/code-stubs.h
index d0664a1ff1d8a4cd15cd46532226fe7c66a3cb6b..ffdf4725578f88f5251d072d07094ca7ac004210 100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -1068,11 +1068,19 @@ class FastNewObjectStub final : public PlatformCodeStub {
// of the strict arguments object materialization code.
class FastNewRestParameterStub final : public PlatformCodeStub {
public:
- explicit FastNewRestParameterStub(Isolate* isolate)
- : PlatformCodeStub(isolate) {}
+ explicit FastNewRestParameterStub(Isolate* isolate,
+ bool skip_stub_frame = false)
+ : PlatformCodeStub(isolate) {
+ minor_key_ = SkipStubFrameBits::encode(skip_stub_frame);
+ }
DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewRestParameter);
DEFINE_PLATFORM_CODE_STUB(FastNewRestParameter, PlatformCodeStub);
+
+ int skip_stub_frame() const { return SkipStubFrameBits::decode(minor_key_); }
+
+ private:
+ class SkipStubFrameBits : public BitField<bool, 0, 1> {};
};
@@ -1081,11 +1089,19 @@ class FastNewRestParameterStub final : public PlatformCodeStub {
// and easy as the current handwritten version.
class FastNewSloppyArgumentsStub final : public PlatformCodeStub {
public:
- explicit FastNewSloppyArgumentsStub(Isolate* isolate)
- : PlatformCodeStub(isolate) {}
+ explicit FastNewSloppyArgumentsStub(Isolate* isolate,
+ bool skip_stub_frame = false)
+ : PlatformCodeStub(isolate) {
+ minor_key_ = SkipStubFrameBits::encode(skip_stub_frame);
+ }
+
+ int skip_stub_frame() const { return SkipStubFrameBits::decode(minor_key_); }
DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewSloppyArguments);
DEFINE_PLATFORM_CODE_STUB(FastNewSloppyArguments, PlatformCodeStub);
+
+ private:
+ class SkipStubFrameBits : public BitField<bool, 0, 1> {};
};
@@ -1094,11 +1110,19 @@ class FastNewSloppyArgumentsStub final : public PlatformCodeStub {
// and easy as the current handwritten version.
class FastNewStrictArgumentsStub final : public PlatformCodeStub {
public:
- explicit FastNewStrictArgumentsStub(Isolate* isolate)
- : PlatformCodeStub(isolate) {}
+ explicit FastNewStrictArgumentsStub(Isolate* isolate,
+ bool skip_stub_frame = false)
+ : PlatformCodeStub(isolate) {
+ minor_key_ = SkipStubFrameBits::encode(skip_stub_frame);
+ }
DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewStrictArguments);
DEFINE_PLATFORM_CODE_STUB(FastNewStrictArguments, PlatformCodeStub);
+
+ int skip_stub_frame() const { return SkipStubFrameBits::decode(minor_key_); }
+
+ private:
+ class SkipStubFrameBits : public BitField<bool, 0, 1> {};
};
« no previous file with comments | « src/code-factory.cc ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698