1- From 203493e23f55f38c35e296e4a72334e1710ed85c Mon Sep 17 00:00:00 2001
1+ From 7ae52d43e069c6c089dbd431d170493fd18499c2 Mon Sep 17 00:00:00 2001
22From: Alexandre Lissy <
[email protected] >
33Date: Thu, 25 Apr 2019 12:29:19 +0200
4- Subject: [PATCH] Upgrade SWIG to support NodeJS v12 / V8 v7.6 runtime
4+ Subject: [PATCH] Upgrade SWIG to support NodeJS v12 / V8 v7.6, v8 v7.8 runtime
55
66---
7- Lib/javascript/v8/javascriptcode.swg | 26 ++++----
8- Lib/javascript/v8/javascriptcomplex.swg | 10 ++ --
9- Lib/javascript/v8/javascripthelpers.swg | 24 ++++- ---
7+ Lib/javascript/v8/javascriptcode.swg | 30 + ++++----
8+ Lib/javascript/v8/javascriptcomplex.swg | 10 +--
9+ Lib/javascript/v8/javascripthelpers.swg | 26 +++++ ---
1010 Lib/javascript/v8/javascriptinit.swg | 4 +-
11- Lib/javascript/v8/javascriptprimtypes.swg | 28 ++++-----
12- Lib/javascript/v8/javascriptrun.swg | 73 +++++++++++++++- -------
11+ Lib/javascript/v8/javascriptprimtypes.swg | 28 ++++----
12+ Lib/javascript/v8/javascriptrun.swg | 78 ++++++++++++++++ -------
1313 Lib/javascript/v8/javascriptruntime.swg | 4 ++
14- Lib/javascript/v8/javascriptstrings.swg | 10 ++ --
14+ Lib/javascript/v8/javascriptstrings.swg | 10 +--
1515 Lib/javascript/v8/javascripttypemaps.swg | 2 +-
1616 Tools/javascript/v8_shell.cxx | 18 +++---
17- 10 files changed, 118 insertions(+), 81 deletions(-)
17+ 10 files changed, 129 insertions(+), 81 deletions(-)
1818
1919diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
20- index c4aaf3db0..c6a813bbb 100644
20+ index c4aaf3db0..3fba197c0 100644
2121--- a/Lib/javascript/v8/javascriptcode.swg
2222+++ b/Lib/javascript/v8/javascriptcode.swg
2323@@ -11,7 +11,7 @@
@@ -110,7 +110,19 @@ index c4aaf3db0..c6a813bbb 100644
110110 %}
111111
112112 /* -----------------------------------------------------------------------------
113- @@ -444,7 +448,7 @@ fail:
113+ @@ -435,7 +439,11 @@ fail:
114+ * ----------------------------------------------------------------------------- */
115+ %fragment("jsv8_register_class", "templates")
116+ %{
117+ + #if (SWIG_V8_VERSION < 0x0708)
118+ $jsparent_obj->Set(SWIGV8_SYMBOL_NEW("$jsname"), $jsmangledname_obj);
119+ + #else
120+ + $jsparent_obj->Set(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW("$jsname"), $jsmangledname_obj);
121+ + #endif
122+ %}
123+
124+ /* -----------------------------------------------------------------------------
125+ @@ -444,7 +452,7 @@ fail:
114126 * ----------------------------------------------------------------------------- */
115127 %fragment("jsv8_create_namespace", "templates")
116128 %{
@@ -163,7 +175,7 @@ index d3b4aaffa..533e54813 100644
163175 if(array->Length() != 2) SWIG_Error(SWIG_TypeError, "Illegal argument for complex: must be array[2].");
164176 double re, im;
165177diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
166- index 80fbd7aa1..fa33e9762 100644
178+ index 80fbd7aa1..7b42e888e 100644
167179--- a/Lib/javascript/v8/javascripthelpers.swg
168180+++ b/Lib/javascript/v8/javascripthelpers.swg
169181@@ -21,19 +21,19 @@ typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
@@ -190,7 +202,7 @@ index 80fbd7aa1..fa33e9762 100644
190202 cptr_templ->Set(SWIGV8_SYMBOL_NEW("getCPtr"), SWIGV8_FUNCTEMPLATE_NEW(_wrap_getCPtr));
191203
192204 SWIGV8_ESCAPE(class_templ);
193- @@ -42,33 +42,37 @@ SWIGRUNTIME v8::Handle<v8::FunctionTemplate> SWIGV8_CreateClassTemplate(const ch
205+ @@ -42,33 +42,39 @@ SWIGRUNTIME v8::Handle<v8::FunctionTemplate> SWIGV8_CreateClassTemplate(const ch
194206 /**
195207 * Registers a class method with given name for a given class template.
196208 */
@@ -221,8 +233,10 @@ index 80fbd7aa1..fa33e9762 100644
221233 const SwigV8FunctionCallback& _func) {
222234+ #if (SWIG_V8_VERSION < 0x0705)
223235 obj->Set(SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction());
224- + #else
236+ + #elif (SWIG_V8_VERSION < 0x0708)
225237+ obj->Set(SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked());
238+ + #else
239+ + obj->Set(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked());
226240+ #endif
227241 }
228242
@@ -386,7 +400,7 @@ index f76be983b..24f5daf7c 100644
386400 if(!obj->IsNumber()) {
387401 return SWIG_TypeError;
388402diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
389- index 2452f4040..99587943b 100644
403+ index 2452f4040..78e7ea018 100644
390404--- a/Lib/javascript/v8/javascriptrun.swg
391405+++ b/Lib/javascript/v8/javascriptrun.swg
392406@@ -10,7 +10,11 @@
@@ -628,6 +642,19 @@ index 2452f4040..99587943b 100644
628642 #endif
629643 SWIGV8_HANDLESCOPE_ESC();
630644
645+ @@ -669,7 +694,12 @@ v8::Handle<v8::Value> SWIGV8_AppendOutput(v8::Local<v8::Value> result, v8::Handl
646+ #else
647+ v8::Local<v8::Array> arr = v8::Local<v8::Array>::Cast(result);
648+ #endif
649+ +
650+ + #if (SWIG_V8_VERSION < 0x0708)
651+ arr->Set(arr->Length(), obj);
652+ + #else
653+ + arr->Set(SWIGV8_CURRENT_CONTEXT(), arr->Length(), obj);
654+ + #endif
655+
656+ SWIGV8_ESCAPE(arr);
657+ }
631658diff --git a/Lib/javascript/v8/javascriptruntime.swg b/Lib/javascript/v8/javascriptruntime.swg
632659index c78e04efb..e7941d657 100644
633660--- a/Lib/javascript/v8/javascriptruntime.swg
0 commit comments