Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index 8d270d4fca6849f70373753676e69ea9ad6431ee..2fa97bad90f567f18dc2984a490f6fb6ace1d7ff 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -21,7 +21,6 @@ namespace internal { |
// List of code stubs used on all platforms. |
#define CODE_STUB_LIST_ALL_PLATFORMS(V) \ |
/* PlatformCodeStubs */ \ |
- V(ArgumentsAccess) \ |
V(ArrayConstructor) \ |
V(BinaryOpICWithAllocationSite) \ |
V(CallApiFunction) \ |
@@ -78,7 +77,8 @@ namespace internal { |
V(FastNewClosure) \ |
V(FastNewContext) \ |
V(FastNewRestParameter) \ |
- V(FastNewStrictArguments) \ |
+ V(FastNewSloppyArguments) \ |
+ V(FastNewStrictArguments) \ |
V(GrowArrayElements) \ |
V(InternalArrayNArgumentsConstructor) \ |
V(InternalArrayNoArgumentConstructor) \ |
@@ -742,8 +742,20 @@ class FastNewRestParameterStub final : public PlatformCodeStub { |
// TODO(turbofan): This stub should be possible to write in TurboFan |
// using the CodeStubAssembler very soon in a way that is as efficient |
-// and easy as the current handwritten version, which is partly a copy |
-// of the strict arguments object materialization code. |
+// and easy as the current handwritten version. |
+class FastNewSloppyArgumentsStub final : public PlatformCodeStub { |
+ public: |
+ explicit FastNewSloppyArgumentsStub(Isolate* isolate) |
+ : PlatformCodeStub(isolate) {} |
+ |
+ DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewSloppyArguments); |
+ DEFINE_PLATFORM_CODE_STUB(FastNewSloppyArguments, PlatformCodeStub); |
+}; |
+ |
+ |
+// TODO(turbofan): This stub should be possible to write in TurboFan |
+// using the CodeStubAssembler very soon in a way that is as efficient |
+// and easy as the current handwritten version. |
class FastNewStrictArgumentsStub final : public PlatformCodeStub { |
public: |
explicit FastNewStrictArgumentsStub(Isolate* isolate) |
@@ -1840,43 +1852,6 @@ class JSEntryStub : public PlatformCodeStub { |
}; |
-class ArgumentsAccessStub: public PlatformCodeStub { |
- public: |
- enum Type { |
- NEW_SLOPPY_FAST, |
- NEW_SLOPPY_SLOW, |
- }; |
- |
- ArgumentsAccessStub(Isolate* isolate, Type type) : PlatformCodeStub(isolate) { |
- minor_key_ = TypeBits::encode(type); |
- } |
- |
- CallInterfaceDescriptor GetCallInterfaceDescriptor() const override { |
- return ArgumentsAccessNewDescriptor(isolate()); |
- } |
- |
- static Type ComputeType(bool has_duplicate_parameters) { |
- if (has_duplicate_parameters) { |
- return Type::NEW_SLOPPY_SLOW; |
- } else { |
- return Type::NEW_SLOPPY_FAST; |
- } |
- } |
- |
- private: |
- Type type() const { return TypeBits::decode(minor_key_); } |
- |
- void GenerateNewSloppyFast(MacroAssembler* masm); |
- void GenerateNewSloppySlow(MacroAssembler* masm); |
- |
- void PrintName(std::ostream& os) const override; // NOLINT |
- |
- class TypeBits : public BitField<Type, 0, 1> {}; |
- |
- DEFINE_PLATFORM_CODE_STUB(ArgumentsAccess, PlatformCodeStub); |
-}; |
- |
- |
class RegExpExecStub: public PlatformCodeStub { |
public: |
explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { } |