From 11deb82354a47bb291c4e2d43751fe847d71ee58 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sat, 27 Feb 2021 16:41:56 +0000 Subject: [PATCH] Restore complex number support for ancient v8 versions --- Lib/javascript/v8/javascriptcomplex.swg | 12 ++++++------ Lib/javascript/v8/javascriptrun.swg | 16 ++++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Lib/javascript/v8/javascriptcomplex.swg b/Lib/javascript/v8/javascriptcomplex.swg index 102f60ca0..b73d5e2dd 100644 --- a/Lib/javascript/v8/javascriptcomplex.swg +++ b/Lib/javascript/v8/javascriptcomplex.swg @@ -19,8 +19,8 @@ SWIG_From_dec(Type)(%ifcplusplus(const Type&, Type) c) v8::Local vals = SWIGV8_ARRAY_NEW(); - SWIGV8_MAYBE_CHECK(vals->Set(SWIGV8_CURRENT_CONTEXT(), 0, SWIG_From(double)(Real(c)))); - SWIGV8_MAYBE_CHECK(vals->Set(SWIGV8_CURRENT_CONTEXT(), 1, SWIG_From(double)(Imag(c)))); + SWIGV8_ARRAY_SET(vals, 0, SWIG_From(double)(Real(c))); + SWIGV8_ARRAY_SET(vals, 1, SWIG_From(double)(Imag(c))); SWIGV8_ESCAPE(vals); } } @@ -43,12 +43,12 @@ SWIG_AsVal_dec(Type) (SWIGV8_VALUE o, Type* val) double re, im; int res; - res = SWIG_AsVal(double)(array->Get(SWIGV8_CURRENT_CONTEXT(), 0).ToLocalChecked(), &re); + res = SWIG_AsVal(double)(SWIGV8_ARRAY_GET(array, 0), &re); if(!SWIG_IsOK(res)) { return SWIG_TypeError; } - res = SWIG_AsVal(double)(array->Get(SWIGV8_CURRENT_CONTEXT(), 1).ToLocalChecked(), &im); + res = SWIG_AsVal(double)(SWIGV8_ARRAY_GET(array, 1), &im); if(!SWIG_IsOK(res)) { return SWIG_TypeError; } @@ -85,12 +85,12 @@ SWIG_AsVal_dec(Type) (SWIGV8_VALUE o, Type* val) double re, im; int res; - res = SWIG_AsVal(double)(array->Get(SWIGV8_CURRENT_CONTEXT(), 0).ToLocalChecked(), &re); + res = SWIG_AsVal(double)(SWIGV8_ARRAY_GET(array, 0), &re); if(!SWIG_IsOK(res)) { return SWIG_TypeError; } - res = SWIG_AsVal(double)(array->Get(SWIGV8_CURRENT_CONTEXT(), 1).ToLocalChecked(), &im); + res = SWIG_AsVal(double)(SWIGV8_ARRAY_GET(array, 1), &im); if(!SWIG_IsOK(res)) { return SWIG_TypeError; } diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg index 92206f3aa..f35329acd 100644 --- a/Lib/javascript/v8/javascriptrun.swg +++ b/Lib/javascript/v8/javascriptrun.swg @@ -63,6 +63,12 @@ typedef v8::PropertyCallbackInfo SwigV8PropertyCallbackInfo; #define SWIGV8_SYMBOL_NEW(sym) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym, v8::NewStringType::kNormal)).ToLocalChecked() #endif +#if (SWIG_V8_VERSION < 0x0704) +#define SWIGV8_MAYBE_CHECK(maybe) maybe.FromJust() +#else +#define SWIGV8_MAYBE_CHECK(maybe) maybe.Check() +#endif + #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032318) #define SWIGV8_ARRAY_NEW() v8::Array::New() #define SWIGV8_BOOLEAN_NEW(bool) v8::Boolean::New(bool) @@ -81,6 +87,8 @@ typedef v8::PropertyCallbackInfo SwigV8PropertyCallbackInfo; #define SWIGV8_OBJECT_TEMPLATE v8::Handle #define SWIGV8_VALUE v8::Handle #define SWIGV8_NULL() v8::Null() +#define SWIGV8_ARRAY_GET(array, index) (array)->Get(index) +#define SWIGV8_ARRAY_SET(array, index, value) (array)->Set(index, value) #else #define SWIGV8_ARRAY_NEW() v8::Array::New(v8::Isolate::GetCurrent()) #define SWIGV8_BOOLEAN_NEW(bool) v8::Boolean::New(v8::Isolate::GetCurrent(), bool) @@ -99,6 +107,8 @@ typedef v8::PropertyCallbackInfo SwigV8PropertyCallbackInfo; #define SWIGV8_OBJECT_TEMPLATE v8::Local #define SWIGV8_VALUE v8::Local #define SWIGV8_NULL() v8::Null(v8::Isolate::GetCurrent()) +#define SWIGV8_ARRAY_GET(array, index) (array)->Get(SWIGV8_CURRENT_CONTEXT(), index).ToLocalChecked() +#define SWIGV8_ARRAY_SET(array, index, value) SWIGV8_MAYBE_CHECK((array)->Set(SWIGV8_CURRENT_CONTEXT(), index, value)) #endif #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) @@ -143,12 +153,6 @@ typedef v8::PropertyCallbackInfo SwigV8PropertyCallbackInfo; #define SWIGV8_UTF8_LENGTH(handle) (handle)->Utf8Length(v8::Isolate::GetCurrent()) #endif -#if (SWIG_V8_VERSION < 0x0704) -#define SWIGV8_MAYBE_CHECK(maybe) maybe.FromJust() -#else -#define SWIGV8_MAYBE_CHECK(maybe) maybe.Check() -#endif - /* --------------------------------------------------------------------------- * Error handling *