| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index 03075d92372fe7da40c6244ab42d0c2cd3e80b38..267721020034bfa1f9e6f4a66535a34a0a5889bf 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -24,6 +24,7 @@ namespace internal {
|
| V(ArrayConstructor) \
|
| V(BinaryOpICWithAllocationSite) \
|
| V(CallApiFunction) \
|
| + V(JSApiFunction) \
|
| V(CallApiAccessor) \
|
| V(CallApiGetter) \
|
| V(CallConstruct) \
|
| @@ -1148,6 +1149,27 @@ class CallApiFunctionStub : public PlatformCodeStub {
|
| };
|
|
|
|
|
| +// Like CallApiFunctionStub above, but conforms to the JS call abi.
|
| +class JSApiFunctionStub : public PlatformCodeStub {
|
| + public:
|
| + JSApiFunctionStub(Isolate* isolate, Handle<FunctionTemplateInfo> info);
|
| +
|
| + private:
|
| + bool call_data_undefined() const {
|
| + return CallDataUndefinedBits::decode(minor_key_);
|
| + }
|
| + bool has_call_code() const { return HasCallCodeBits::decode(minor_key_); }
|
| + bool has_signature() const { return HasSignatureBits::decode(minor_key_); }
|
| +
|
| + class CallDataUndefinedBits : public BitField<bool, 0, 1> {};
|
| + class HasCallCodeBits : public BitField<bool, 1, 1> {};
|
| + class HasSignatureBits : public BitField<bool, 2, 1> {};
|
| +
|
| + DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR();
|
| + DEFINE_PLATFORM_CODE_STUB(JSApiFunction, PlatformCodeStub);
|
| +};
|
| +
|
| +
|
| class CallApiAccessorStub : public PlatformCodeStub {
|
| public:
|
| CallApiAccessorStub(Isolate* isolate, bool is_store, bool call_data_undefined)
|
|
|