diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2013-07-02 17:11:31 +0200 |
---|---|---|
committer | Ben Noordhuis <info@bnoordhuis.nl> | 2013-07-06 16:53:06 +0200 |
commit | 704fd8f3745527fc080f96e54e5ec1857c505399 (patch) | |
tree | bff68e8a731f3618d3e8f1708aa9de194bc1f612 /deps/v8/src/arguments.cc | |
parent | eec43351c44c0bec31a83e1a28be15e30722936a (diff) | |
download | node-704fd8f3745527fc080f96e54e5ec1857c505399.tar.gz |
v8: upgrade to v3.20.2
Diffstat (limited to 'deps/v8/src/arguments.cc')
-rw-r--r-- | deps/v8/src/arguments.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/deps/v8/src/arguments.cc b/deps/v8/src/arguments.cc index 091d0b92a..11d9279e8 100644 --- a/deps/v8/src/arguments.cc +++ b/deps/v8/src/arguments.cc @@ -28,6 +28,8 @@ #include "v8.h" #include "arguments.h" +#include "vm-state-inl.h" + namespace v8 { namespace internal { @@ -82,7 +84,7 @@ v8::Handle<V> CustomArguments<T>::GetReturnValue(Isolate* isolate) { Object** handle = &this->end()[kReturnValueOffset]; // Nothing was set, return empty handle as per previous behaviour. if ((*handle)->IsTheHole()) return v8::Handle<V>(); - return v8::Handle<V>(reinterpret_cast<V*>(handle)); + return Utils::Convert<Object, V>(Handle<Object>(handle)); } @@ -90,6 +92,8 @@ v8::Handle<v8::Value> FunctionCallbackArguments::Call(InvocationCallback f) { Isolate* isolate = this->isolate(); void* f_as_void = CallbackTable::FunctionToVoidPtr(f); bool new_style = CallbackTable::ReturnsVoid(isolate, f_as_void); + VMState<EXTERNAL> state(isolate); + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); if (new_style) { FunctionCallback c = reinterpret_cast<FunctionCallback>(f); FunctionCallbackInfo<v8::Value> info(end(), @@ -114,6 +118,8 @@ v8::Handle<ReturnValue> PropertyCallbackArguments::Call(OldFunction f) { \ Isolate* isolate = this->isolate(); \ void* f_as_void = CallbackTable::FunctionToVoidPtr(f); \ bool new_style = CallbackTable::ReturnsVoid(isolate, f_as_void); \ + VMState<EXTERNAL> state(isolate); \ + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ if (new_style) { \ NewFunction c = reinterpret_cast<NewFunction>(f); \ PropertyCallbackInfo<ReturnValue> info(end()); \ @@ -132,6 +138,8 @@ v8::Handle<ReturnValue> PropertyCallbackArguments::Call(OldFunction f, \ Isolate* isolate = this->isolate(); \ void* f_as_void = CallbackTable::FunctionToVoidPtr(f); \ bool new_style = CallbackTable::ReturnsVoid(isolate, f_as_void); \ + VMState<EXTERNAL> state(isolate); \ + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ if (new_style) { \ NewFunction c = reinterpret_cast<NewFunction>(f); \ PropertyCallbackInfo<ReturnValue> info(end()); \ @@ -151,6 +159,8 @@ v8::Handle<ReturnValue> PropertyCallbackArguments::Call(OldFunction f, \ Isolate* isolate = this->isolate(); \ void* f_as_void = CallbackTable::FunctionToVoidPtr(f); \ bool new_style = CallbackTable::ReturnsVoid(isolate, f_as_void); \ + VMState<EXTERNAL> state(isolate); \ + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ if (new_style) { \ NewFunction c = reinterpret_cast<NewFunction>(f); \ PropertyCallbackInfo<ReturnValue> info(end()); \ @@ -170,6 +180,8 @@ void PropertyCallbackArguments::Call(OldFunction f, \ Isolate* isolate = this->isolate(); \ void* f_as_void = CallbackTable::FunctionToVoidPtr(f); \ bool new_style = CallbackTable::ReturnsVoid(isolate, f_as_void); \ + VMState<EXTERNAL> state(isolate); \ + ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ if (new_style) { \ NewFunction c = reinterpret_cast<NewFunction>(f); \ PropertyCallbackInfo<ReturnValue> info(end()); \ |