diff options
Diffstat (limited to 'Lib/javascript/v8/javascripthelpers.swg')
-rw-r--r-- | Lib/javascript/v8/javascripthelpers.swg | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg index 091467df4..80fbd7aa1 100644 --- a/Lib/javascript/v8/javascripthelpers.swg +++ b/Lib/javascript/v8/javascripthelpers.swg @@ -6,11 +6,16 @@ typedef v8::InvocationCallback SwigV8FunctionCallback; typedef v8::AccessorGetter SwigV8AccessorGetterCallback; typedef v8::AccessorSetter SwigV8AccessorSetterCallback; typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid; -#else +#elif (V8_MAJOR_VERSION-0) < 5 typedef v8::FunctionCallback SwigV8FunctionCallback; typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback; typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback; typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid; +#else +typedef v8::FunctionCallback SwigV8FunctionCallback; +typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback; +typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback; +typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid; #endif /** @@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char */ SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol, SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) { +#if (V8_MAJOR_VERSION-0) < 5 obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter); +#else + obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter); +#endif } -SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, - const SwigV8PropertyCallbackInfoVoid& info) +#if (V8_MAJOR_VERSION-0) < 5 +SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info) +#else +SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info) +#endif { char buffer[256]; char msg[512]; int res; +#if (V8_MAJOR_VERSION-0) < 5 property->WriteUtf8(buffer, 256); res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); +#else + v8::Local<v8::String> sproperty; + if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) { + SWIGV8_WRITE_UTF8(sproperty, buffer, 256); + res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); + } + else { + res = -1; + } +#endif if(res<0) { SWIG_exception(SWIG_ERROR, "Tried to write read-only variable."); |