From 83636a4cbee84474ba1c3920a6195843d9104657 Mon Sep 17 00:00:00 2001 From: Jochen Eisinger Date: Fri, 21 Apr 2017 18:07:04 +0200 Subject: [PATCH] deps: backport 4fdf9fd4813 from upstream v8 Original commit message: Add documentation for FunctionCallbackInfo R=verwaest@chromium.org,haraken@chromium.org,yukishiino@chromium.org BUG= Change-Id: I273f5ce305f80b2aa5e9c8c42a6e8e5afc51a0a7 Reviewed-on: https://chromium-review.googlesource.com/484422 Reviewed-by: Kentaro Hara Reviewed-by: Toon Verwaest Commit-Queue: Jochen Eisinger Cr-Commit-Position: refs/heads/master@{#44927} Ref: https://github.com/v8/v8/commit/4fdf9fd4813 PR-URL: https://github.com/nodejs/node/pull/12875 Reviewed-By: James M Snell --- deps/v8/include/v8.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index ce7741a08c0364..fe124d44c644c5 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -3578,16 +3578,34 @@ class ReturnValue { template class FunctionCallbackInfo { public: + /** The number of available arguments. */ V8_INLINE int Length() const; + /** Accessor for the available arguments. */ V8_INLINE Local operator[](int i) const; V8_INLINE V8_DEPRECATED("Use Data() to explicitly pass Callee instead", Local Callee() const); + /** Returns the receiver. This corresponds to the "this" value. */ V8_INLINE Local This() const; + /** + * If the callback was created without a Signature, this is the same + * value as This(). If there is a signature, and the signature didn't match + * This() but one of its hidden prototypes, this will be the respective + * hidden prototype. + * + * Note that this is not the prototype of This() on which the accessor + * referencing this callback was found (which in V8 internally is often + * referred to as holder [sic]). + */ V8_INLINE Local Holder() const; + /** For construct calls, this returns the "new.target" value. */ V8_INLINE Local NewTarget() const; + /** Indicates whether this is a regular call or a construct call. */ V8_INLINE bool IsConstructCall() const; + /** The data argument specified when creating the callback. */ V8_INLINE Local Data() const; + /** The current Isolate. */ V8_INLINE Isolate* GetIsolate() const; + /** The ReturnValue for the call. */ V8_INLINE ReturnValue GetReturnValue() const; // This shouldn't be public, but the arm compiler needs it. static const int kArgsLength = 8; @@ -5745,9 +5763,13 @@ class V8_EXPORT ObjectTemplate : public Template { friend class FunctionTemplate; }; - /** * A Signature specifies which receiver is valid for a function. + * + * A receiver matches a given signature if the receiver (or any of its + * hidden prototypes) was created from the signature's FunctionTemplate, or + * from a FunctionTemplate that inherits directly or indirectly from the + * signature's FunctionTemplate. */ class V8_EXPORT Signature : public Data { public: