diff options
author | Ali Ijaz Sheikh <ofrobots@google.com> | 2016-04-07 14:06:55 -0700 |
---|---|---|
committer | Ali Ijaz Sheikh <ofrobots@google.com> | 2016-04-14 10:03:39 -0700 |
commit | 52af5c4eebf4de8638aef0338bd826656312a02a (patch) | |
tree | 628dc9fb0b558c3a73a2160706fef368876fe548 /deps/v8/src/arguments.h | |
parent | 6e3e8acc7cc7ebd3d67db5ade1247b8b558efe09 (diff) | |
download | node-new-52af5c4eebf4de8638aef0338bd826656312a02a.tar.gz |
deps: upgrade V8 to 5.0.71.32
* Pick up the branch head for V8 5.0 stable [1]
* Edit v8 gitignore to allow trace_event copy
* Update V8 DEP trace_event as per deps/v8/DEPS [2]
[1] https://chromium.googlesource.com/v8/v8.git/+/3c67831
[2] https://chromium.googlesource.com/chromium/src/base/trace_event/common/+/4b09207e447ae5bd34643b4c6321bee7b76d35f9
Ref: https://github.com/nodejs/node/pull/5945
PR-URL: https://github.com/nodejs/node/pull/6111
Reviewed-By: targos - Michaƫl Zasso <mic.besace@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: indutny - Fedor Indutny <fedor.indutny@gmail.com>
Diffstat (limited to 'deps/v8/src/arguments.h')
-rw-r--r-- | deps/v8/src/arguments.h | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/deps/v8/src/arguments.h b/deps/v8/src/arguments.h index d11a8cd61e..35096774db 100644 --- a/deps/v8/src/arguments.h +++ b/deps/v8/src/arguments.h @@ -152,17 +152,19 @@ class PropertyCallbackArguments static const int kReturnValueDefaultValueIndex = T::kReturnValueDefaultValueIndex; static const int kIsolateIndex = T::kIsolateIndex; + static const int kShouldThrowOnErrorIndex = T::kShouldThrowOnErrorIndex; - PropertyCallbackArguments(Isolate* isolate, - Object* data, - Object* self, - JSObject* holder) + PropertyCallbackArguments(Isolate* isolate, Object* data, Object* self, + JSObject* holder, Object::ShouldThrow should_throw) : Super(isolate) { Object** values = this->begin(); values[T::kThisIndex] = self; values[T::kHolderIndex] = holder; values[T::kDataIndex] = data; values[T::kIsolateIndex] = reinterpret_cast<Object*>(isolate); + values[T::kShouldThrowOnErrorIndex] = + Smi::FromInt(should_throw == Object::THROW_ON_ERROR ? 1 : 0); + // Here the hole is set as default value. // It cannot escape into js as it's remove in Call below. values[T::kReturnValueDefaultValueIndex] = @@ -218,17 +220,14 @@ class FunctionCallbackArguments static const int kCalleeIndex = T::kCalleeIndex; static const int kContextSaveIndex = T::kContextSaveIndex; - FunctionCallbackArguments(internal::Isolate* isolate, - internal::Object* data, - internal::JSFunction* callee, - internal::Object* holder, - internal::Object** argv, - int argc, - bool is_construct_call) - : Super(isolate), - argv_(argv), - argc_(argc), - is_construct_call_(is_construct_call) { + FunctionCallbackArguments(internal::Isolate* isolate, internal::Object* data, + internal::HeapObject* callee, + internal::Object* holder, internal::Object** argv, + int argc, bool is_construct_call) + : Super(isolate), + argv_(argv), + argc_(argc), + is_construct_call_(is_construct_call) { Object** values = begin(); values[T::kDataIndex] = data; values[T::kCalleeIndex] = callee; @@ -240,7 +239,8 @@ class FunctionCallbackArguments values[T::kReturnValueDefaultValueIndex] = isolate->heap()->the_hole_value(); values[T::kReturnValueIndex] = isolate->heap()->the_hole_value(); - DCHECK(values[T::kCalleeIndex]->IsJSFunction()); + DCHECK(values[T::kCalleeIndex]->IsJSFunction() || + values[T::kCalleeIndex]->IsFunctionTemplateInfo()); DCHECK(values[T::kHolderIndex]->IsHeapObject()); DCHECK(values[T::kIsolateIndex]->IsSmi()); } @@ -271,20 +271,23 @@ double ClobberDoubleRegisters(double x1, double x2, double x3, double x4); #define CLOBBER_DOUBLE_REGISTERS() #endif - -#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, Name) \ -static INLINE(Type __RT_impl_##Name(Arguments args, Isolate* isolate)); \ -Type Name(int args_length, Object** args_object, Isolate* isolate) { \ - CLOBBER_DOUBLE_REGISTERS(); \ - Arguments args(args_length, args_object); \ - return __RT_impl_##Name(args, isolate); \ -} \ -static Type __RT_impl_##Name(Arguments args, Isolate* isolate) - +#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, Name) \ + static INLINE(Type __RT_impl_##Name(Arguments args, Isolate* isolate)); \ + Type Name(int args_length, Object** args_object, Isolate* isolate) { \ + CLOBBER_DOUBLE_REGISTERS(); \ + RuntimeCallStats* stats = isolate->counters()->runtime_call_stats(); \ + RuntimeCallTimerScope timer(isolate, &stats->Name); \ + Arguments args(args_length, args_object); \ + Type value = __RT_impl_##Name(args, isolate); \ + return value; \ + } \ + static Type __RT_impl_##Name(Arguments args, Isolate* isolate) #define RUNTIME_FUNCTION(Name) RUNTIME_FUNCTION_RETURNS_TYPE(Object*, Name) #define RUNTIME_FUNCTION_RETURN_PAIR(Name) \ RUNTIME_FUNCTION_RETURNS_TYPE(ObjectPair, Name) +#define RUNTIME_FUNCTION_RETURN_TRIPLE(Name) \ + RUNTIME_FUNCTION_RETURNS_TYPE(ObjectTriple, Name) } // namespace internal } // namespace v8 |