| Index: include/v8.h
|
| diff --git a/include/v8.h b/include/v8.h
|
| index 51fb1330614237fe6a1e735d9ff5d44798fd552e..ce217fdca41f0d405b0297043903a613bb71a169 100644
|
| --- a/include/v8.h
|
| +++ b/include/v8.h
|
| @@ -3192,12 +3192,13 @@ class FunctionCallbackInfo {
|
| Local<Function> Callee() const);
|
| V8_INLINE Local<Object> This() const;
|
| V8_INLINE Local<Object> Holder() const;
|
| + V8_INLINE Local<Value> NewTarget() const;
|
| V8_INLINE bool IsConstructCall() const;
|
| V8_INLINE Local<Value> Data() const;
|
| V8_INLINE Isolate* GetIsolate() const;
|
| V8_INLINE ReturnValue<T> GetReturnValue() const;
|
| // This shouldn't be public, but the arm compiler needs it.
|
| - static const int kArgsLength = 7;
|
| + static const int kArgsLength = 8;
|
|
|
| protected:
|
| friend class internal::FunctionCallbackArguments;
|
| @@ -3209,15 +3210,13 @@ class FunctionCallbackInfo {
|
| static const int kDataIndex = 4;
|
| static const int kCalleeIndex = 5;
|
| static const int kContextSaveIndex = 6;
|
| + static const int kNewTargetIndex = 7;
|
|
|
| V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args,
|
| - internal::Object** values,
|
| - int length,
|
| - bool is_construct_call);
|
| + internal::Object** values, int length);
|
| internal::Object** implicit_args_;
|
| internal::Object** values_;
|
| int length_;
|
| - int is_construct_call_;
|
| };
|
|
|
|
|
| @@ -7865,17 +7864,11 @@ internal::Object* ReturnValue<T>::GetDefaultValue() {
|
| return value_[-1];
|
| }
|
|
|
| -
|
| -template<typename T>
|
| +template <typename T>
|
| FunctionCallbackInfo<T>::FunctionCallbackInfo(internal::Object** implicit_args,
|
| internal::Object** values,
|
| - int length,
|
| - bool is_construct_call)
|
| - : implicit_args_(implicit_args),
|
| - values_(values),
|
| - length_(length),
|
| - is_construct_call_(is_construct_call) { }
|
| -
|
| + int length)
|
| + : implicit_args_(implicit_args), values_(values), length_(length) {}
|
|
|
| template<typename T>
|
| Local<Value> FunctionCallbackInfo<T>::operator[](int i) const {
|
| @@ -7903,8 +7896,13 @@ Local<Object> FunctionCallbackInfo<T>::Holder() const {
|
| &implicit_args_[kHolderIndex]));
|
| }
|
|
|
| +template <typename T>
|
| +Local<Value> FunctionCallbackInfo<T>::NewTarget() const {
|
| + return Local<Value>(
|
| + reinterpret_cast<Value*>(&implicit_args_[kNewTargetIndex]));
|
| +}
|
|
|
| -template<typename T>
|
| +template <typename T>
|
| Local<Value> FunctionCallbackInfo<T>::Data() const {
|
| return Local<Value>(reinterpret_cast<Value*>(&implicit_args_[kDataIndex]));
|
| }
|
| @@ -7924,7 +7922,7 @@ ReturnValue<T> FunctionCallbackInfo<T>::GetReturnValue() const {
|
|
|
| template<typename T>
|
| bool FunctionCallbackInfo<T>::IsConstructCall() const {
|
| - return is_construct_call_ & 0x1;
|
| + return !NewTarget()->IsUndefined();
|
| }
|
|
|
|
|
|
|