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

Side by Side Diff: include/v8.h

Issue 1520843002: Revert of Removes the Callee parameter from FunctionCallbackInfo. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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 unified diff | Download patch
« no previous file with comments | « no previous file | src/arguments.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** \mainpage V8 API Reference Guide 5 /** \mainpage V8 API Reference Guide
6 * 6 *
7 * V8 is Google's open source JavaScript engine. 7 * V8 is Google's open source JavaScript engine.
8 * 8 *
9 * This set of documents provides reference material generated from the 9 * This set of documents provides reference material generated from the
10 * V8 header file, include/v8.h. 10 * V8 header file, include/v8.h.
(...skipping 3120 matching lines...) Expand 10 before | Expand all | Expand 10 after
3131 * The argument information given to function call callbacks. This 3131 * The argument information given to function call callbacks. This
3132 * class provides access to information about the context of the call, 3132 * class provides access to information about the context of the call,
3133 * including the receiver, the number and values of arguments, and 3133 * including the receiver, the number and values of arguments, and
3134 * the holder of the function. 3134 * the holder of the function.
3135 */ 3135 */
3136 template<typename T> 3136 template<typename T>
3137 class FunctionCallbackInfo { 3137 class FunctionCallbackInfo {
3138 public: 3138 public:
3139 V8_INLINE int Length() const; 3139 V8_INLINE int Length() const;
3140 V8_INLINE Local<Value> operator[](int i) const; 3140 V8_INLINE Local<Value> operator[](int i) const;
3141 V8_INLINE Local<Function> Callee() const;
3141 V8_INLINE Local<Object> This() const; 3142 V8_INLINE Local<Object> This() const;
3142 V8_INLINE Local<Object> Holder() const; 3143 V8_INLINE Local<Object> Holder() const;
3143 V8_INLINE bool IsConstructCall() const; 3144 V8_INLINE bool IsConstructCall() const;
3144 V8_INLINE Local<Value> Data() const; 3145 V8_INLINE Local<Value> Data() const;
3145 V8_INLINE Isolate* GetIsolate() const; 3146 V8_INLINE Isolate* GetIsolate() const;
3146 V8_INLINE ReturnValue<T> GetReturnValue() const; 3147 V8_INLINE ReturnValue<T> GetReturnValue() const;
3147 // This shouldn't be public, but the arm compiler needs it. 3148 // This shouldn't be public, but the arm compiler needs it.
3148 static const int kArgsLength = 6; 3149 static const int kArgsLength = 7;
3149 3150
3150 protected: 3151 protected:
3151 friend class internal::FunctionCallbackArguments; 3152 friend class internal::FunctionCallbackArguments;
3152 friend class internal::CustomArguments<FunctionCallbackInfo>; 3153 friend class internal::CustomArguments<FunctionCallbackInfo>;
3153 static const int kHolderIndex = 0; 3154 static const int kHolderIndex = 0;
3154 static const int kIsolateIndex = 1; 3155 static const int kIsolateIndex = 1;
3155 static const int kReturnValueDefaultValueIndex = 2; 3156 static const int kReturnValueDefaultValueIndex = 2;
3156 static const int kReturnValueIndex = 3; 3157 static const int kReturnValueIndex = 3;
3157 static const int kDataIndex = 4; 3158 static const int kDataIndex = 4;
3158 static const int kContextSaveIndex = 5; 3159 static const int kCalleeIndex = 5;
3160 static const int kContextSaveIndex = 6;
3159 3161
3160 V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args, 3162 V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args,
3161 internal::Object** values, 3163 internal::Object** values,
3162 int length, 3164 int length,
3163 bool is_construct_call); 3165 bool is_construct_call);
3164 internal::Object** implicit_args_; 3166 internal::Object** implicit_args_;
3165 internal::Object** values_; 3167 internal::Object** values_;
3166 int length_; 3168 int length_;
3167 int is_construct_call_; 3169 int is_construct_call_;
3168 }; 3170 };
(...skipping 4407 matching lines...) Expand 10 before | Expand all | Expand 10 after
7576 7578
7577 7579
7578 template<typename T> 7580 template<typename T>
7579 Local<Value> FunctionCallbackInfo<T>::operator[](int i) const { 7581 Local<Value> FunctionCallbackInfo<T>::operator[](int i) const {
7580 if (i < 0 || length_ <= i) return Local<Value>(*Undefined(GetIsolate())); 7582 if (i < 0 || length_ <= i) return Local<Value>(*Undefined(GetIsolate()));
7581 return Local<Value>(reinterpret_cast<Value*>(values_ - i)); 7583 return Local<Value>(reinterpret_cast<Value*>(values_ - i));
7582 } 7584 }
7583 7585
7584 7586
7585 template<typename T> 7587 template<typename T>
7588 Local<Function> FunctionCallbackInfo<T>::Callee() const {
7589 return Local<Function>(reinterpret_cast<Function*>(
7590 &implicit_args_[kCalleeIndex]));
7591 }
7592
7593
7594 template<typename T>
7586 Local<Object> FunctionCallbackInfo<T>::This() const { 7595 Local<Object> FunctionCallbackInfo<T>::This() const {
7587 return Local<Object>(reinterpret_cast<Object*>(values_ + 1)); 7596 return Local<Object>(reinterpret_cast<Object*>(values_ + 1));
7588 } 7597 }
7589 7598
7590 7599
7591 template<typename T> 7600 template<typename T>
7592 Local<Object> FunctionCallbackInfo<T>::Holder() const { 7601 Local<Object> FunctionCallbackInfo<T>::Holder() const {
7593 return Local<Object>(reinterpret_cast<Object*>( 7602 return Local<Object>(reinterpret_cast<Object*>(
7594 &implicit_args_[kHolderIndex])); 7603 &implicit_args_[kHolderIndex]));
7595 } 7604 }
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after
8459 */ 8468 */
8460 8469
8461 8470
8462 } // namespace v8 8471 } // namespace v8
8463 8472
8464 8473
8465 #undef TYPE_CHECK 8474 #undef TYPE_CHECK
8466 8475
8467 8476
8468 #endif // V8_H_ 8477 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/arguments.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698