diff options
author | Hirokazu MORIKAWA <morikw2@gmail.com> | 2022-12-06 15:05:07 +0900 |
---|---|---|
committer | Tianling Shen <cnsztl@gmail.com> | 2022-12-09 06:30:48 +0800 |
commit | f141e794552bfb6351d61c3a1389160466059add (patch) | |
tree | f68239802e17367ac0bb581d9cb103548948172a | |
parent | 18d3c529fa4ab8dafcf6c147cf3cb55792d8ca10 (diff) |
swig: bump to 4.1.1
update summary
* Add Javascript Node v12-v18 support, remove support prior to v6.
* Octave 6.0 to 6.4 support added.
* Add PHP 8 support.
* PHP wrapping is now done entirely via PHP's C API - no more .php wrapper.
* Perl 5.8.0 is now the oldest version SWIG supports.
* Python 3.3 is now the oldest Python 3 version SWIG supports.
* Python 3.9-3.11 support added.
* Various memory leak fixes in Python generated code.
* Scilab 5.5-6.1 support improved.
* Many improvements for each and every target language.
* Various preprocessor expression handling improvements.
* Improved C99, C++11, C++14, C++17 support. Start adding C++20 standard.
* Make SWIG much more move semantics friendly.
* Add C++ std::unique_ptr support.
* Few minor C++ template handling improvements.
* Various C++ using declaration fixes.
* Few fixes for handling Doxygen comments.
* GitHub Actions is now used instead of Travis CI for continuous integration.
* Add building SWIG using CMake as a secondary build system.
* Update optional SWIG build dependency for regex support from PCRE to PCRE2.
* Couple of stability fixes.
* Stability fix in ccache-swig when calculating hashes of inputs.
* Some template handling improvements.
* R - minor fixes plus deprecation for rtypecheck typemaps being optional.
Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com>
-rw-r--r-- | utils/swig/Makefile | 6 | ||||
-rw-r--r-- | utils/swig/patches/000-support_v12.patch | 1854 |
2 files changed, 3 insertions, 1857 deletions
diff --git a/utils/swig/Makefile b/utils/swig/Makefile index 2a3c16cd0..03378e196 100644 --- a/utils/swig/Makefile +++ b/utils/swig/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=swig -PKG_VERSION:=4.0.2 -PKG_RELEASE:=2 +PKG_VERSION:=4.1.1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/$(PKG_NAME) -PKG_HASH:=d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc +PKG_HASH:=2af08aced8fcd65cdb5cc62426768914bedc735b1c250325203716f78e39ac9b PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>, Hirokazu MORIKAWA <morikw2@gmail.com> PKG_LICENSE:=GPL-3.0-or-later diff --git a/utils/swig/patches/000-support_v12.patch b/utils/swig/patches/000-support_v12.patch deleted file mode 100644 index 6ac90a836..000000000 --- a/utils/swig/patches/000-support_v12.patch +++ /dev/null @@ -1,1854 +0,0 @@ -diff --git a/.travis.yml b/.travis.yml -index 32c6656dd2..6530d2cb5f 100644 ---- a/.travis.yml -+++ b/.travis.yml -@@ -89,27 +89,17 @@ matrix: - dist: xenial - - compiler: gcc - os: linux -- env: SWIGLANG=javascript ENGINE=node VER=0.10 -- sudo: required -- dist: xenial -- - compiler: gcc -- os: linux -- env: SWIGLANG=javascript ENGINE=node VER=4 CPP11=1 -- sudo: required -- dist: xenial -- - compiler: gcc -- os: linux -- env: SWIGLANG=javascript ENGINE=node VER=6 CPP11=1 -+ env: SWIGLANG=javascript ENGINE=node VER=10 CPP11=1 - sudo: required - dist: xenial - - compiler: gcc - os: linux -- env: SWIGLANG=javascript ENGINE=node VER=8 CPP11=1 -+ env: SWIGLANG=javascript ENGINE=node VER=12 CPP11=1 - sudo: required - dist: xenial - - compiler: gcc - os: linux -- env: SWIGLANG=javascript ENGINE=node VER=10 CPP11=1 -+ env: SWIGLANG=javascript ENGINE=node VER=13 CPP11=1 - sudo: required - dist: xenial - - compiler: gcc -@@ -117,11 +107,6 @@ matrix: - env: SWIGLANG=javascript ENGINE=jsc - sudo: required - dist: xenial -- - compiler: gcc -- os: linux -- env: SWIGLANG=javascript ENGINE=v8 -- sudo: required -- dist: xenial - - compiler: gcc - os: linux - env: SWIGLANG=lua -diff --git a/Examples/Makefile.in b/Examples/Makefile.in -index 6fbca29db5..dadb012bf9 100644 ---- a/Examples/Makefile.in -+++ b/Examples/Makefile.in -@@ -674,8 +674,8 @@ java_clean: - # create a configuration for a new example. - - ROOT_DIR = @ROOT_DIR@ --JSINCLUDES = @JSCOREINC@ @JSV8INC@ --JSDYNAMICLINKING = @JSCOREDYNAMICLINKING@ @JSV8DYNAMICLINKING@ -+JSINCLUDES = @JSCOREINC@ -+JSDYNAMICLINKING = @JSCOREDYNAMICLINKING@ - NODEJS = @NODEJS@ - NODEGYP = @NODEGYP@ - -@@ -710,7 +710,7 @@ javascript: $(SRCDIR_SRCS) javascript_custom_interpreter - ifeq (jsc, $(ENGINE)) - $(CC) -c $(CCSHARED) $(CPPFLAGS) $(CFLAGS) $(ISRCS) $(SRCDIR_SRCS) $(INCLUDES) $(JSINCLUDES) - $(LDSHARED) $(CFLAGS) $(LDFLAGS) $(OBJS) $(IOBJS) $(JSDYNAMICLINKING) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO) --else # (v8 | node) # v8 and node must be compiled as c++ -+else # (node) # node must be compiled as c++ - $(CXX) -c $(CCSHARED) $(CPPFLAGS) $(CXXFLAGS) $(ISRCS) $(SRCDIR_SRCS) $(SRCDIR_CXXSRCS) $(INCLUDES) $(JSINCLUDES) - $(CXXSHARED) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(IOBJS) $(JSDYNAMICLINKING) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO) - endif -@@ -759,9 +759,6 @@ ifeq (jsc, $(ENGINE)) - echo "Unknown JavascriptCore version."; \ - fi - endif --ifeq (v8, $(ENGINE)) -- echo "Unknown v8 version." --endif - - # ----------------------------------------------------------------- - # Cleaning the Javascript examples -diff --git a/Examples/javascript/example.mk b/Examples/javascript/example.mk -index 3ef012aa82..beafd6f3fb 100644 ---- a/Examples/javascript/example.mk -+++ b/Examples/javascript/example.mk -@@ -7,19 +7,13 @@ else - JSENGINE=node - endif - --ifneq (, $(V8_VERSION)) -- JSV8_VERSION=$(V8_VERSION) --else -- JSV8_VERSION=0x031110 --endif -- - EXAMPLES_TOP = ../.. - SWIG_TOP = ../../.. - SWIGEXE = $(SWIG_TOP)/swig - SWIG_LIB_DIR = $(SWIG_TOP)/$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib - TARGET = example - INTERFACE = example.i --SWIGOPT = -$(JSENGINE) -DV8_VERSION=$(JSV8_VERSION) -+SWIGOPT = -$(JSENGINE) - - check: build - $(MAKE) -f $(EXAMPLES_TOP)/Makefile SRCDIR='$(SRCDIR)' JSENGINE='$(JSENGINE)' TARGET='$(TARGET)' javascript_run -diff --git a/Examples/javascript/native/example.i b/Examples/javascript/native/example.i -index 8c61600606..e94f18118b 100644 ---- a/Examples/javascript/native/example.i -+++ b/Examples/javascript/native/example.i -@@ -15,7 +15,7 @@ int placeholder() { return 0; } - static SwigV8ReturnValue JavaScript_do_work(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - const int MY_MAGIC_NUMBER = 5; -- v8::Handle<v8::Value> jsresult = -+ v8::Local<v8::Value> jsresult = - SWIG_From_int(static_cast< int >(MY_MAGIC_NUMBER)); - if (args.Length() != 0) - SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments."); -diff --git a/Examples/test-suite/javascript/Makefile.in b/Examples/test-suite/javascript/Makefile.in -index 8127415f12..ce16f2ec0d 100644 ---- a/Examples/test-suite/javascript/Makefile.in -+++ b/Examples/test-suite/javascript/Makefile.in -@@ -22,16 +22,8 @@ else - JSENGINE=node - endif - --ifneq (, $(V8_VERSION)) -- JSV8_VERSION=$(V8_VERSION) --else -- JSV8_VERSION=0x031110 --endif -- - include $(srcdir)/../common.mk - --SWIGOPT += -DV8_VERSION=$(JSV8_VERSION) -- - _setup = \ - if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ - echo "$(ACTION)ing $(LANGUAGE) ($(JSENGINE)) testcase $* (with run test)" ; \ -diff --git a/Examples/test-suite/native_directive.i b/Examples/test-suite/native_directive.i -index 9ae76e0b7f..99089af507 100644 ---- a/Examples/test-suite/native_directive.i -+++ b/Examples/test-suite/native_directive.i -@@ -53,7 +53,7 @@ extern "C" JNIEXPORT jint JNICALL Java_native_1directive_native_1directiveJNI_Co - - static SwigV8ReturnValue JavaScript_alpha_count(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - char *arg1 = (char *)0; - int res1; - char *buf1 = 0; -diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg -index c4aaf3db0c..b470e2aeeb 100644 ---- a/Lib/javascript/v8/javascriptcode.swg -+++ b/Lib/javascript/v8/javascriptcode.swg -@@ -11,7 +11,7 @@ - static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Object> self = args.Holder(); -+ v8::Local<v8::Object> self = args.Holder(); - $jslocals - if(args.Length() != $jsargcount) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for $jswrapper."); - $jscode -@@ -53,7 +53,7 @@ static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - - OverloadErrorHandler errorHandler; -- v8::Handle<v8::Value> self; -+ v8::Local<v8::Value> self; - - // switch all cases by means of series of if-returns. - $jsdispatchcases -@@ -78,7 +78,7 @@ fail: - static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args, V8ErrorHandler &SWIGV8_ErrorHandler) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Object> self = args.Holder(); -+ v8::Local<v8::Object> self = args.Holder(); - $jslocals - if(args.Length() != $jsargcount) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for $jswrapper."); - $jscode -@@ -103,17 +103,10 @@ fail: - %{ - if(args.Length() == $jsargcount) { - errorHandler.err.Clear(); --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) -- self = $jswrapper(args, errorHandler); -- if(errorHandler.err.IsEmpty()) { -- SWIGV8_ESCAPE(self); -- } --#else - $jswrapper(args, errorHandler); - if(errorHandler.err.IsEmpty()) { - return; - } --#endif - } - %} - -@@ -124,23 +117,8 @@ fail: - * ----------------------------------------------------------------------------- */ - %fragment ("js_dtor", "templates") - %{ -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) --static void $jswrapper(v8::Persistent< v8::Value > object, void *parameter) { -- SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) --static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, void *parameter) { -- SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) --static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) { --#elif (V8_MAJOR_VERSION-0) < 5 --static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { -- v8::Local<v8::Object> object = data.GetValue(); -- SWIGV8_Proxy *proxy = data.GetParameter(); --#else - static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { - SWIGV8_Proxy *proxy = data.GetParameter(); --#endif - - if(proxy->swigCMemOwn && proxy->swigCObject) { - #ifdef SWIGRUNTIME_DEBUG -@@ -149,20 +127,6 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat - $jsfree proxy->swigCObject; - } - delete proxy; -- --#if (V8_MAJOR_VERSION-0) < 5 -- object.Clear(); --#endif -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- object.Dispose(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- object.Dispose(isolate); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) -- object->Dispose(isolate); --#elif (V8_MAJOR_VERSION-0) < 5 -- object->Dispose(); --#endif - } - %} - -@@ -174,40 +138,14 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat - * ----------------------------------------------------------------------------- */ - %fragment ("js_dtoroverride", "templates") - %{ --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) --static void $jswrapper(v8::Persistent<v8::Value> object, void *parameter) { -- SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) --static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, void *parameter) { -- SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) --static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) { --#elif (V8_MAJOR_VERSION-0) < 5 --static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { -- v8::Local<v8::Object> object = data.GetValue(); -- SWIGV8_Proxy *proxy = data.GetParameter(); --#else - static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { - SWIGV8_Proxy *proxy = data.GetParameter(); --#endif - - if(proxy->swigCMemOwn && proxy->swigCObject) { - $jstype arg1 = ($jstype)proxy->swigCObject; - ${destructor_action} - } - delete proxy; -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- object.Dispose(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- object.Dispose(isolate); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) -- object->Dispose(isolate); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- object->Dispose(); --#elif (V8_MAJOR_VERSION-0) < 5 -- object.Clear(); --#endif - } - %} - -@@ -219,14 +157,10 @@ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { - * ----------------------------------------------------------------------------- */ - %fragment("js_getter", "templates") - %{ --#if (V8_MAJOR_VERSION-0) < 5 --static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) { --#else - static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) { --#endif - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - $jslocals - $jscode - SWIGV8_RETURN_INFO(jsresult, info); -@@ -245,11 +179,7 @@ fail: - * ----------------------------------------------------------------------------- */ - %fragment("js_setter", "templates") - %{ --#if (V8_MAJOR_VERSION-0) < 5 --static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) { --#else - static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) { --#endif - SWIGV8_HANDLESCOPE(); - - $jslocals -@@ -271,7 +201,7 @@ fail: - static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - $jslocals - if(args.Length() != $jsargcount) SWIG_exception_fail(SWIG_ERROR, "Illegal number of arguments for $jswrapper."); - -@@ -296,7 +226,7 @@ fail: - static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - OverloadErrorHandler errorHandler; - $jscode - -@@ -320,7 +250,7 @@ static SwigV8ReturnValue $jswrapper(const SwigV8Arguments &args, V8ErrorHandler - { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - $jslocals - $jscode - SWIGV8_RETURN(jsresult); -@@ -342,17 +272,10 @@ fail: - - if(args.Length() == $jsargcount) { - errorHandler.err.Clear(); --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) -- jsresult = $jswrapper(args, errorHandler); -- if(errorHandler.err.IsEmpty()) { -- SWIGV8_ESCAPE(jsresult); -- } --#else - $jswrapper(args, errorHandler); - if(errorHandler.err.IsEmpty()) { - return; - } --#endif - } - %} - -@@ -374,7 +297,7 @@ fail: - %fragment("jsv8_define_class_template", "templates") - %{ - /* Name: $jsmangledname, Type: $jsmangledtype, Dtor: $jsdtor */ -- v8::Handle<v8::FunctionTemplate> $jsmangledname_class = SWIGV8_CreateClassTemplate("$jsmangledname"); -+ v8::Local<v8::FunctionTemplate> $jsmangledname_class = SWIGV8_CreateClassTemplate("$jsmangledname"); - SWIGV8_SET_CLASS_TEMPL($jsmangledname_clientData.class_templ, $jsmangledname_class); - $jsmangledname_clientData.dtor = $jsdtor; - if (SWIGTYPE_$jsmangledtype->clientdata == 0) { -@@ -392,15 +315,11 @@ fail: - %{ - if (SWIGTYPE_p$jsbaseclass->clientdata && !(static_cast<SWIGV8_ClientData *>(SWIGTYPE_p$jsbaseclass->clientdata)->class_templ.IsEmpty())) - { --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) -- $jsmangledname_class->Inherit(static_cast<SWIGV8_ClientData *>(SWIGTYPE_p$jsbaseclass->clientdata)->class_templ); --#else - $jsmangledname_class->Inherit( - v8::Local<v8::FunctionTemplate>::New( - v8::Isolate::GetCurrent(), - static_cast<SWIGV8_ClientData *>(SWIGTYPE_p$jsbaseclass->clientdata)->class_templ) - ); --#endif - - #ifdef SWIGRUNTIME_DEBUG - printf("Inheritance successful $jsmangledname $jsbaseclass\n"); -@@ -420,11 +339,10 @@ fail: - %fragment("jsv8_create_class_instance", "templates") - %{ - /* Class: $jsname ($jsmangledname) */ -- v8::Handle<v8::FunctionTemplate> $jsmangledname_class_0 = SWIGV8_CreateClassTemplate("$jsname"); -+ v8::Local<v8::FunctionTemplate> $jsmangledname_class_0 = SWIGV8_CreateClassTemplate("$jsname"); - $jsmangledname_class_0->SetCallHandler($jsctor); - $jsmangledname_class_0->Inherit($jsmangledname_class); -- $jsmangledname_class_0->SetHiddenPrototype(true); -- v8::Handle<v8::Object> $jsmangledname_obj = $jsmangledname_class_0->GetFunction(); -+ v8::Local<v8::Object> $jsmangledname_obj = $jsmangledname_class_0->GetFunction(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked(); - %} - - /* ----------------------------------------------------------------------------- -@@ -435,7 +353,7 @@ fail: - * ----------------------------------------------------------------------------- */ - %fragment("jsv8_register_class", "templates") - %{ -- $jsparent_obj->Set(SWIGV8_SYMBOL_NEW("$jsname"), $jsmangledname_obj); -+ $jsparent_obj->Set(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW("$jsname"), $jsmangledname_obj); - %} - - /* ----------------------------------------------------------------------------- -@@ -444,7 +362,7 @@ fail: - * ----------------------------------------------------------------------------- */ - %fragment("jsv8_create_namespace", "templates") - %{ -- v8::Handle<v8::Object> $jsmangledname_obj = SWIGV8_OBJECT_NEW(); -+ v8::Local<v8::Object> $jsmangledname_obj = SWIGV8_OBJECT_NEW(); - %} - - /* ----------------------------------------------------------------------------- -@@ -455,7 +373,7 @@ fail: - * ----------------------------------------------------------------------------- */ - %fragment("jsv8_register_namespace", "templates") - %{ -- $jsparent_obj->Set(SWIGV8_SYMBOL_NEW("$jsname"), $jsmangledname_obj); -+ $jsparent_obj->Set(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW("$jsname"), $jsmangledname_obj); - %} - - /* ----------------------------------------------------------------------------- -diff --git a/Lib/javascript/v8/javascriptcomplex.swg b/Lib/javascript/v8/javascriptcomplex.swg -index d3b4aaffa6..533e548131 100644 ---- a/Lib/javascript/v8/javascriptcomplex.swg -+++ b/Lib/javascript/v8/javascriptcomplex.swg -@@ -12,7 +12,7 @@ - %fragment(SWIG_From_frag(Type),"header", - fragment=SWIG_From_frag(double)) - { --SWIGINTERNINLINE v8::Handle<v8::Value> -+SWIGINTERNINLINE v8::Local<v8::Value> - SWIG_From_dec(Type)(%ifcplusplus(const Type&, Type) c) - { - SWIGV8_HANDLESCOPE_ESC(); -@@ -32,12 +32,12 @@ SWIG_From_dec(Type)(%ifcplusplus(const Type&, Type) c) - fragment=SWIG_AsVal_frag(double)) - { - SWIGINTERN int --SWIG_AsVal_dec(Type) (v8::Handle<v8::Value> o, Type* val) -+SWIG_AsVal_dec(Type) (v8::Local<v8::Value> o, Type* val) - { - SWIGV8_HANDLESCOPE(); - - if (o->IsArray()) { -- v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(o); -+ v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(o); - - if(array->Length() != 2) SWIG_Error(SWIG_TypeError, "Illegal argument for complex: must be array[2]."); - double re, im; -@@ -74,12 +74,12 @@ SWIG_AsVal_dec(Type) (v8::Handle<v8::Value> o, Type* val) - %fragment(SWIG_AsVal_frag(Type),"header", - fragment=SWIG_AsVal_frag(float)) { - SWIGINTERN int --SWIG_AsVal_dec(Type) (v8::Handle<v8::Value> o, Type* val) -+SWIG_AsVal_dec(Type) (v8::Local<v8::Value> o, Type* val) - { - SWIGV8_HANDLESCOPE(); - - if (o->IsArray()) { -- v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(o); -+ v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(o); - - if(array->Length() != 2) SWIG_Error(SWIG_TypeError, "Illegal argument for complex: must be array[2]."); - double re, im; -diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg -index 80fbd7aa1a..d722581552 100644 ---- a/Lib/javascript/v8/javascripthelpers.swg -+++ b/Lib/javascript/v8/javascripthelpers.swg -@@ -1,39 +1,26 @@ - %insert(runtime) %{ - --// Note: since 3.19 there are new CallBack types, since 03.21.9 the old ones have been removed --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) --typedef v8::InvocationCallback SwigV8FunctionCallback; --typedef v8::AccessorGetter SwigV8AccessorGetterCallback; --typedef v8::AccessorSetter SwigV8AccessorSetterCallback; --typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid; --#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 - - /** - * Creates a class template for a class with specified initialization function. - */ --SWIGRUNTIME v8::Handle<v8::FunctionTemplate> SWIGV8_CreateClassTemplate(const char* symbol) { -+SWIGRUNTIME v8::Local<v8::FunctionTemplate> SWIGV8_CreateClassTemplate(const char* symbol) { - SWIGV8_HANDLESCOPE_ESC(); - - v8::Local<v8::FunctionTemplate> class_templ = SWIGV8_FUNCTEMPLATE_NEW_VOID(); - class_templ->SetClassName(SWIGV8_SYMBOL_NEW(symbol)); - -- v8::Handle<v8::ObjectTemplate> inst_templ = class_templ->InstanceTemplate(); -+ v8::Local<v8::ObjectTemplate> inst_templ = class_templ->InstanceTemplate(); - inst_templ->SetInternalFieldCount(1); - -- v8::Handle<v8::ObjectTemplate> equals_templ = class_templ->PrototypeTemplate(); -+ v8::Local<v8::ObjectTemplate> equals_templ = class_templ->PrototypeTemplate(); - equals_templ->Set(SWIGV8_SYMBOL_NEW("equals"), SWIGV8_FUNCTEMPLATE_NEW(_SWIGV8_wrap_equals)); - -- v8::Handle<v8::ObjectTemplate> cptr_templ = class_templ->PrototypeTemplate(); -+ v8::Local<v8::ObjectTemplate> cptr_templ = class_templ->PrototypeTemplate(); - cptr_templ->Set(SWIGV8_SYMBOL_NEW("getCPtr"), SWIGV8_FUNCTEMPLATE_NEW(_wrap_getCPtr)); - - SWIGV8_ESCAPE(class_templ); -@@ -42,55 +29,47 @@ SWIGRUNTIME v8::Handle<v8::FunctionTemplate> SWIGV8_CreateClassTemplate(const ch - /** - * Registers a class method with given name for a given class template. - */ --SWIGRUNTIME void SWIGV8_AddMemberFunction(v8::Handle<v8::FunctionTemplate> class_templ, const char* symbol, -+SWIGRUNTIME void SWIGV8_AddMemberFunction(v8::Local<v8::FunctionTemplate> class_templ, const char* symbol, - SwigV8FunctionCallback _func) { -- v8::Handle<v8::ObjectTemplate> proto_templ = class_templ->PrototypeTemplate(); -+ v8::Local<v8::ObjectTemplate> proto_templ = class_templ->PrototypeTemplate(); - proto_templ->Set(SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)); - } - - /** - * Registers a class property with given name for a given class template. - */ --SWIGRUNTIME void SWIGV8_AddMemberVariable(v8::Handle<v8::FunctionTemplate> class_templ, const char* symbol, -+SWIGRUNTIME void SWIGV8_AddMemberVariable(v8::Local<v8::FunctionTemplate> class_templ, const char* symbol, - SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) { -- v8::Handle<v8::ObjectTemplate> proto_templ = class_templ->InstanceTemplate(); -+ v8::Local<v8::ObjectTemplate> proto_templ = class_templ->InstanceTemplate(); - proto_templ->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter); - } - - /** - * Registers a class method with given name for a given object. - */ --SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char* symbol, -+SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Local<v8::Object> obj, const char* symbol, - const SwigV8FunctionCallback& _func) { -- obj->Set(SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction()); -+#if (NODE_MODULE_VERSION < 72) -+ obj->Set(SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked()); -+#else -+ obj->Set(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), SWIGV8_FUNCTEMPLATE_NEW(_func)->GetFunction(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked()); -+#endif - } - - /** - * Registers a class method with given name for a given object. - */ --SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol, -+SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Local<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 - } - --#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); -@@ -99,7 +78,6 @@ SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8 - else { - res = -1; - } --#endif - - if(res<0) { - SWIG_exception(SWIG_ERROR, "Tried to write read-only variable."); -diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg -index 8faf2dd8e1..5f6c219dcc 100644 ---- a/Lib/javascript/v8/javascriptinit.swg -+++ b/Lib/javascript/v8/javascriptinit.swg -@@ -68,16 +68,16 @@ SWIG_V8_GetModule(void *) { - // TODO: is it ok to do that? - extern "C" - #if (NODE_MODULE_VERSION < 0x000C) --void SWIGV8_INIT (v8::Handle<v8::Object> exports) -+void SWIGV8_INIT (v8::Local<v8::Object> exports) - #else --void SWIGV8_INIT (v8::Handle<v8::Object> exports, v8::Handle<v8::Object> /*module*/) -+void SWIGV8_INIT (v8::Local<v8::Object> exports, v8::Local<v8::Object> /*module*/) - #endif - { - SWIG_InitializeModule(static_cast<void *>(&exports)); - - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Object> exports_obj = exports; -+ v8::Local<v8::Object> exports_obj = exports; - %} - - -diff --git a/Lib/javascript/v8/javascriptprimtypes.swg b/Lib/javascript/v8/javascriptprimtypes.swg -index f76be983b1..41635e9d2d 100644 ---- a/Lib/javascript/v8/javascriptprimtypes.swg -+++ b/Lib/javascript/v8/javascriptprimtypes.swg -@@ -6,7 +6,7 @@ - - %fragment(SWIG_From_frag(bool),"header") { - SWIGINTERNINLINE --v8::Handle<v8::Value> -+v8::Local<v8::Value> - SWIG_From_dec(bool)(bool value) - { - return SWIGV8_BOOLEAN_NEW(value); -@@ -16,7 +16,7 @@ SWIG_From_dec(bool)(bool value) - %fragment(SWIG_AsVal_frag(bool),"header", - fragment=SWIG_AsVal_frag(long)) { - SWIGINTERN --int SWIG_AsVal_dec(bool)(v8::Handle<v8::Value> obj, bool *val) -+int SWIG_AsVal_dec(bool)(v8::Local<v8::Value> obj, bool *val) - { - if(!obj->IsBoolean()) { - return SWIG_ERROR; -@@ -31,7 +31,7 @@ int SWIG_AsVal_dec(bool)(v8::Handle<v8::Value> obj, bool *val) - - %fragment(SWIG_From_frag(int),"header") { - SWIGINTERNINLINE --v8::Handle<v8::Value> SWIG_From_dec(int)(int value) -+v8::Local<v8::Value> SWIG_From_dec(int)(int value) - { - return SWIGV8_INT32_NEW(value); - } -@@ -39,7 +39,7 @@ v8::Handle<v8::Value> SWIG_From_dec(int)(int value) - - %fragment(SWIG_AsVal_frag(int),"header") { - SWIGINTERN --int SWIG_AsVal_dec(int)(v8::Handle<v8::Value> valRef, int* val) -+int SWIG_AsVal_dec(int)(v8::Local<v8::Value> valRef, int* val) - { - if (!valRef->IsNumber()) { - return SWIG_TypeError; -@@ -54,7 +54,7 @@ int SWIG_AsVal_dec(int)(v8::Handle<v8::Value> valRef, int* val) - - %fragment(SWIG_From_frag(long),"header") { - SWIGINTERNINLINE --v8::Handle<v8::Value> SWIG_From_dec(long)(long value) -+v8::Local<v8::Value> SWIG_From_dec(long)(long value) - { - return SWIGV8_NUMBER_NEW(value); - } -@@ -63,7 +63,7 @@ v8::Handle<v8::Value> SWIG_From_dec(long)(long value) - %fragment(SWIG_AsVal_frag(long),"header", - fragment="SWIG_CanCastAsInteger") { - SWIGINTERN --int SWIG_AsVal_dec(long)(v8::Handle<v8::Value> obj, long* val) -+int SWIG_AsVal_dec(long)(v8::Local<v8::Value> obj, long* val) - { - if (!obj->IsNumber()) { - return SWIG_TypeError; -@@ -79,7 +79,7 @@ int SWIG_AsVal_dec(long)(v8::Handle<v8::Value> obj, long* val) - %fragment(SWIG_From_frag(unsigned long),"header", - fragment=SWIG_From_frag(long)) { - SWIGINTERNINLINE --v8::Handle<v8::Value> SWIG_From_dec(unsigned long)(unsigned long value) -+v8::Local<v8::Value> SWIG_From_dec(unsigned long)(unsigned long value) - { - return (value > LONG_MAX) ? - SWIGV8_INTEGER_NEW_UNS(value) : SWIGV8_INTEGER_NEW(%numeric_cast(value,long)); -@@ -89,7 +89,7 @@ v8::Handle<v8::Value> SWIG_From_dec(unsigned long)(unsigned long value) - %fragment(SWIG_AsVal_frag(unsigned long),"header", - fragment="SWIG_CanCastAsInteger") { - SWIGINTERN --int SWIG_AsVal_dec(unsigned long)(v8::Handle<v8::Value> obj, unsigned long *val) -+int SWIG_AsVal_dec(unsigned long)(v8::Local<v8::Value> obj, unsigned long *val) - { - if(!obj->IsNumber()) { - return SWIG_TypeError; -@@ -115,7 +115,7 @@ int SWIG_AsVal_dec(unsigned long)(v8::Handle<v8::Value> obj, unsigned long *val) - fragment="SWIG_LongLongAvailable") { - %#ifdef SWIG_LONG_LONG_AVAILABLE - SWIGINTERNINLINE --v8::Handle<v8::Value> SWIG_From_dec(long long)(long long value) -+v8::Local<v8::Value> SWIG_From_dec(long long)(long long value) - { - return SWIGV8_NUMBER_NEW(value); - } -@@ -128,7 +128,7 @@ v8::Handle<v8::Value> SWIG_From_dec(long long)(long long value) - fragment="SWIG_LongLongAvailable") { - %#ifdef SWIG_LONG_LONG_AVAILABLE - SWIGINTERN --int SWIG_AsVal_dec(long long)(v8::Handle<v8::Value> obj, long long* val) -+int SWIG_AsVal_dec(long long)(v8::Local<v8::Value> obj, long long* val) - { - if (!obj->IsNumber()) { - return SWIG_TypeError; -@@ -148,7 +148,7 @@ int SWIG_AsVal_dec(long long)(v8::Handle<v8::Value> obj, long long* val) - fragment="SWIG_LongLongAvailable") { - %#ifdef SWIG_LONG_LONG_AVAILABLE - SWIGINTERNINLINE --v8::Handle<v8::Value> SWIG_From_dec(unsigned long long)(unsigned long long value) -+v8::Local<v8::Value> SWIG_From_dec(unsigned long long)(unsigned long long value) - { - return (value > LONG_MAX) ? - SWIGV8_INTEGER_NEW_UNS(value) : SWIGV8_INTEGER_NEW(%numeric_cast(value,long)); -@@ -162,7 +162,7 @@ v8::Handle<v8::Value> SWIG_From_dec(unsigned long long)(unsigned long long value - fragment="SWIG_LongLongAvailable") { - %#ifdef SWIG_LONG_LONG_AVAILABLE - SWIGINTERN --int SWIG_AsVal_dec(unsigned long long)(v8::Handle<v8::Value> obj, unsigned long long *val) -+int SWIG_AsVal_dec(unsigned long long)(v8::Local<v8::Value> obj, unsigned long long *val) - { - if(!obj->IsNumber()) { - return SWIG_TypeError; -@@ -185,7 +185,7 @@ int SWIG_AsVal_dec(unsigned long long)(v8::Handle<v8::Value> obj, unsigned long - - %fragment(SWIG_From_frag(double),"header") { - SWIGINTERN --v8::Handle<v8::Value> SWIG_From_dec(double) (double val) -+v8::Local<v8::Value> SWIG_From_dec(double) (double val) - { - return SWIGV8_NUMBER_NEW(val); - } -@@ -193,7 +193,7 @@ v8::Handle<v8::Value> SWIG_From_dec(double) (double val) - - %fragment(SWIG_AsVal_frag(double),"header") { - SWIGINTERN --int SWIG_AsVal_dec(double)(v8::Handle<v8::Value> obj, double *val) -+int SWIG_AsVal_dec(double)(v8::Local<v8::Value> obj, double *val) - { - if(!obj->IsNumber()) { - return SWIG_TypeError; -@@ -203,4 +203,3 @@ int SWIG_AsVal_dec(double)(v8::Handle<v8::Value> obj, double *val) - return SWIG_OK; - } - } -- -diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg -index 2452f4040d..2023d023da 100644 ---- a/Lib/javascript/v8/javascriptrun.swg -+++ b/Lib/javascript/v8/javascriptrun.swg -@@ -5,70 +5,37 @@ - - // First v8 version that uses "SetWeak" and not "MakeWeak" - --#define SWIGV8_SETWEAK_VERSION 0x032224 -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031803) --#define SWIGV8_STRING_NEW2(cstr, len) v8::String::New(cstr, len) --#else -+#if (NODE_MODULE_VERSION < 72) - #define SWIGV8_STRING_NEW2(cstr, len) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), cstr, v8::String::kNormalString, len) -+#else -+#define SWIGV8_STRING_NEW2(cstr, len) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), cstr, v8::NewStringType::kNormal, len)).ToLocalChecked() - #endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) --typedef v8::Handle<v8::Value> SwigV8ReturnValue; --typedef v8::Arguments SwigV8Arguments; --typedef v8::AccessorInfo SwigV8PropertyCallbackInfo; --#define SWIGV8_RETURN(val) return scope.Close(val) --#define SWIGV8_RETURN_INFO(val, info) return scope.Close(val) --#else - typedef void SwigV8ReturnValue; - typedef v8::FunctionCallbackInfo<v8::Value> SwigV8Arguments; - typedef v8::PropertyCallbackInfo<v8::Value> SwigV8PropertyCallbackInfo; - #define SWIGV8_RETURN(val) args.GetReturnValue().Set(val); return - #define SWIGV8_RETURN_INFO(val, info) info.GetReturnValue().Set(val); return --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032117) --#define SWIGV8_HANDLESCOPE() v8::HandleScope scope --#define SWIGV8_HANDLESCOPE_ESC() v8::HandleScope scope --#define SWIGV8_ESCAPE(val) return scope.Close(val) --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032224) --#define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent()); --#define SWIGV8_HANDLESCOPE_ESC() v8::HandleScope scope(v8::Isolate::GetCurrent()); --#define SWIGV8_ESCAPE(val) return scope.Close(val) --#else - #define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent()); - #define SWIGV8_HANDLESCOPE_ESC() v8::EscapableHandleScope scope(v8::Isolate::GetCurrent()); - #define SWIGV8_ESCAPE(val) return scope.Escape(val) --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032224) --#define SWIGV8_ADJUST_MEMORY(size) v8::V8::AdjustAmountOfExternalAllocatedMemory(size) --#define SWIGV8_CURRENT_CONTEXT() v8::Context::GetCurrent() --#define SWIGV8_THROW_EXCEPTION(err) v8::ThrowException(err) --#define SWIGV8_STRING_NEW(str) v8::String::New(str) --#define SWIGV8_SYMBOL_NEW(sym) v8::String::NewSymbol(sym) -+#if (NODE_MODULE_VERSION < 72) -+#define SWIGV8_ADJUST_MEMORY(size) v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(size) -+#define SWIGV8_CURRENT_CONTEXT() v8::Isolate::GetCurrent()->GetCurrentContext() -+#define SWIGV8_THROW_EXCEPTION(err) v8::Isolate::GetCurrent()->ThrowException(err) -+#define SWIGV8_STRING_NEW(str) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str, v8::String::kNormalString) -+#define SWIGV8_SYMBOL_NEW(sym) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym, v8::String::kNormalString) - #else - #define SWIGV8_ADJUST_MEMORY(size) v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(size) - #define SWIGV8_CURRENT_CONTEXT() v8::Isolate::GetCurrent()->GetCurrentContext() - #define SWIGV8_THROW_EXCEPTION(err) v8::Isolate::GetCurrent()->ThrowException(err) --#define SWIGV8_STRING_NEW(str) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str) --#define SWIGV8_SYMBOL_NEW(sym) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym) -+#define SWIGV8_STRING_NEW(str) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str, v8::NewStringType::kNormal)).ToLocalChecked() -+#define SWIGV8_SYMBOL_NEW(sym) (v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), sym, v8::NewStringType::kNormal)).ToLocalChecked() - #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) --#define SWIGV8_EXTERNAL_NEW(val) v8::External::New(val) --#define SWIGV8_FUNCTEMPLATE_NEW(func) v8::FunctionTemplate::New(func) --#define SWIGV8_FUNCTEMPLATE_NEW_VOID() v8::FunctionTemplate::New() --#define SWIGV8_INT32_NEW(num) v8::Int32::New(num) --#define SWIGV8_INTEGER_NEW(num) v8::Integer::New(num) --#define SWIGV8_INTEGER_NEW_UNS(num) v8::Integer::NewFromUnsigned(num) --#define SWIGV8_NUMBER_NEW(num) v8::Number::New(num) --#define SWIGV8_OBJECT_NEW() v8::Object::New() --#define SWIGV8_UNDEFINED() v8::Undefined() --#define SWIGV8_NULL() v8::Null() --#else -+ - #define SWIGV8_ARRAY_NEW() v8::Array::New(v8::Isolate::GetCurrent()) - #define SWIGV8_BOOLEAN_NEW(bool) v8::Boolean::New(v8::Isolate::GetCurrent(), bool) - #define SWIGV8_EXTERNAL_NEW(val) v8::External::New(v8::Isolate::GetCurrent(), val) -@@ -81,15 +48,8 @@ typedef v8::PropertyCallbackInfo<v8::Value> SwigV8PropertyCallbackInfo; - #define SWIGV8_OBJECT_NEW() v8::Object::New(v8::Isolate::GetCurrent()) - #define SWIGV8_UNDEFINED() v8::Undefined(v8::Isolate::GetCurrent()) - #define SWIGV8_NULL() v8::Null(v8::Isolate::GetCurrent()) --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) --#define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ = v8::Persistent<v8::FunctionTemplate>::New(class); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) --#define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ = v8::Persistent<v8::FunctionTemplate>::New(v8::Isolate::GetCurrent(), class); --#else - #define SWIGV8_SET_CLASS_TEMPL(class_templ, class) class_templ.Reset(v8::Isolate::GetCurrent(), class); --#endif - - #ifdef NODE_VERSION - #if NODE_VERSION_AT_LEAST(10, 12, 0) -@@ -98,23 +58,17 @@ typedef v8::PropertyCallbackInfo<v8::Value> SwigV8PropertyCallbackInfo; - #endif - - //Necessary to check Node.js version because V8 API changes are backported in Node.js --#if (defined(NODE_VERSION) && !defined(SWIG_NODE_AT_LEAST_1012)) || \ -- (!defined(NODE_VERSION) && (V8_MAJOR_VERSION-0) < 7) --#define SWIGV8_TO_OBJECT(handle) (handle)->ToObject() --#define SWIGV8_TO_STRING(handle) (handle)->ToString() --#define SWIGV8_NUMBER_VALUE(handle) (handle)->NumberValue() --#define SWIGV8_INTEGER_VALUE(handle) (handle)->IntegerValue() --#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue() --#define SWIGV8_WRITE_UTF8(handle, buffer, len) (handle)->WriteUtf8(buffer, len) --#define SWIGV8_UTF8_LENGTH(handle) (handle)->Utf8Length() --#else - #define SWIGV8_TO_OBJECT(handle) (handle)->ToObject(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked() - #define SWIGV8_TO_STRING(handle) (handle)->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked() - #define SWIGV8_NUMBER_VALUE(handle) (handle)->NumberValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() - #define SWIGV8_INTEGER_VALUE(handle) (handle)->IntegerValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() --#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() - #define SWIGV8_WRITE_UTF8(handle, buffer, len) (handle)->WriteUtf8(v8::Isolate::GetCurrent(), buffer, len) - #define SWIGV8_UTF8_LENGTH(handle) (handle)->Utf8Length(v8::Isolate::GetCurrent()) -+ -+#if (NODE_MODULE_VERSION < 72) -+#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue(SWIGV8_CURRENT_CONTEXT()).ToChecked() -+#else -+#define SWIGV8_BOOLEAN_VALUE(handle) (handle)->BooleanValue(v8::Isolate::GetCurrent()) - #endif - - /* --------------------------------------------------------------------------- -@@ -163,7 +117,7 @@ public: - SWIGV8_THROW_EXCEPTION(err); - } - } -- v8::Handle<v8::Value> err; -+ v8::Local<v8::Value> err; - }; - - /* --------------------------------------------------------------------------- -@@ -182,23 +136,8 @@ public: - }; - - ~SWIGV8_Proxy() { --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- handle.ClearWeak(); -- handle.Dispose(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) -- handle.ClearWeak(v8::Isolate::GetCurrent()); -- handle.Dispose(v8::Isolate::GetCurrent()); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- handle.ClearWeak(); -- handle.Dispose(); --#else - handle.ClearWeak(); - handle.Reset(); --#endif -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- handle.Clear(); --#endif - - SWIGV8_ADJUST_MEMORY(-SWIGV8_AVG_OBJ_SIZE); - } -@@ -213,32 +152,17 @@ class SWIGV8_ClientData { - public: - v8::Persistent<v8::FunctionTemplate> class_templ; - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- void (*dtor) (v8::Persistent< v8::Value> object, void *parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy); --#elif (V8_MAJOR_VERSION-0) < 5 -- void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data); --#else - void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data); --#endif - }; - - SWIGRUNTIME v8::Persistent<v8::FunctionTemplate> SWIGV8_SWIGTYPE_Proxy_class_templ; - --SWIGRUNTIME int SWIG_V8_ConvertInstancePtr(v8::Handle<v8::Object> objRef, void **ptr, swig_type_info *info, int flags) { -+SWIGRUNTIME int SWIG_V8_ConvertInstancePtr(v8::Local<v8::Object> objRef, void **ptr, swig_type_info *info, int flags) { - SWIGV8_HANDLESCOPE(); - - if(objRef->InternalFieldCount() < 1) return SWIG_ERROR; - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) -- v8::Handle<v8::Value> cdataRef = objRef->GetInternalField(0); -- SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(v8::External::Unwrap(cdataRef)); --#else - SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(objRef->GetAlignedPointerFromInternalField(0)); --#endif - - if(cdata == NULL) { - return SWIG_ERROR; -@@ -261,39 +185,21 @@ SWIGRUNTIME int SWIG_V8_ConvertInstancePtr(v8::Handle<v8::Object> objRef, void * - } - - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) --SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Persistent< v8::Value > object, void *parameter) { -- SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) --SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Value > object, void *parameter) { -- SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) --SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) { --#elif (V8_MAJOR_VERSION-0) < 5 --SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { -- SWIGV8_Proxy *proxy = data.GetParameter(); --#else - SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { - SWIGV8_Proxy *proxy = data.GetParameter(); --#endif - - delete proxy; - } - --SWIGRUNTIME int SWIG_V8_GetInstancePtr(v8::Handle<v8::Value> valRef, void **ptr) { -+SWIGRUNTIME int SWIG_V8_GetInstancePtr(v8::Local<v8::Value> valRef, void **ptr) { - if(!valRef->IsObject()) { - return SWIG_TypeError; - } -- v8::Handle<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); -+ v8::Local<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); - - if(objRef->InternalFieldCount() < 1) return SWIG_ERROR; - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) -- v8::Handle<v8::Value> cdataRef = objRef->GetInternalField(0); -- SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(v8::External::Unwrap(cdataRef)); --#else - SWIGV8_Proxy *cdata = static_cast<SWIGV8_Proxy *>(objRef->GetAlignedPointerFromInternalField(0)); --#endif - - if(cdata == NULL) { - return SWIG_ERROR; -@@ -304,70 +210,31 @@ SWIGRUNTIME int SWIG_V8_GetInstancePtr(v8::Handle<v8::Value> valRef, void **ptr) - return SWIG_OK; - } - --SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, swig_type_info *info, int flags) { -+SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Local<v8::Object> obj, void *ptr, swig_type_info *info, int flags) { - SWIGV8_Proxy *cdata = new SWIGV8_Proxy(); - cdata->swigCObject = ptr; - cdata->swigCMemOwn = (flags & SWIG_POINTER_OWN) ? 1 : 0; - cdata->info = info; - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) -- obj->SetPointerInInternalField(0, cdata); --#else - obj->SetAlignedPointerInInternalField(0, cdata); --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- cdata->handle = v8::Persistent<v8::Object>::New(obj); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- cdata->handle = v8::Persistent<v8::Object>::New(v8::Isolate::GetCurrent(), obj); --#else - cdata->handle.Reset(v8::Isolate::GetCurrent(), obj); --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- // clientdata must be set for owned data as we need to register the dtor -- if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { -- cdata->handle.MakeWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor); -- } else { -- cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor); -- } --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031918) -- if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { -- cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor); -- } else { -- cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, SWIGV8_Proxy_DefaultDtor); -- } --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { -- cdata->handle.MakeWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor); -- } else { -- cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor); -- } --#elif (V8_MAJOR_VERSION-0) < 5 -- if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { -- cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor); -- } else { -- cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor); -- } --#else - if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { - cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter); - } else { - cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter); - } --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- cdata->handle.MarkIndependent(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) -- cdata->handle.MarkIndependent(v8::Isolate::GetCurrent()); --#else -+#if (NODE_MODULE_VERSION < 72) - cdata->handle.MarkIndependent(); -+// Looks like future versions do not require that anymore: -+// https://monorail-prod.appspot.com/p/chromium/issues/detail?id=923361#c11 - #endif - - } - --SWIGRUNTIME int SWIG_V8_ConvertPtr(v8::Handle<v8::Value> valRef, void **ptr, swig_type_info *info, int flags) { -+SWIGRUNTIME int SWIG_V8_ConvertPtr(v8::Local<v8::Value> valRef, void **ptr, swig_type_info *info, int flags) { - SWIGV8_HANDLESCOPE(); - - /* special case: JavaScript null => C NULL pointer */ -@@ -378,31 +245,20 @@ SWIGRUNTIME int SWIG_V8_ConvertPtr(v8::Handle<v8::Value> valRef, void **ptr, swi - if(!valRef->IsObject()) { - return SWIG_TypeError; - } -- v8::Handle<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); -+ v8::Local<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); - return SWIG_V8_ConvertInstancePtr(objRef, ptr, info, flags); - } - --SWIGRUNTIME v8::Handle<v8::Value> SWIG_V8_NewPointerObj(void *ptr, swig_type_info *info, int flags) { -+SWIGRUNTIME v8::Local<v8::Value> SWIG_V8_NewPointerObj(void *ptr, swig_type_info *info, int flags) { - SWIGV8_HANDLESCOPE_ESC(); - -- v8::Handle<v8::FunctionTemplate> class_templ; -+ v8::Local<v8::FunctionTemplate> class_templ; - - if (ptr == NULL) { --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) -- SWIGV8_ESCAPE(SWIGV8_NULL()); --#else - v8::Local<v8::Primitive> result = SWIGV8_NULL(); - SWIGV8_ESCAPE(result); --#endif - } - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) -- if(info->clientdata != 0) { -- class_templ = ((SWIGV8_ClientData*) info->clientdata)->class_templ; -- } else { -- class_templ = SWIGV8_SWIGTYPE_Proxy_class_templ; -- } --#else - v8::Isolate *isolate = v8::Isolate::GetCurrent(); - - if(info->clientdata != 0) { -@@ -410,10 +266,13 @@ SWIGRUNTIME v8::Handle<v8::Value> SWIG_V8_NewPointerObj(void *ptr, swig_type_inf - } else { - class_templ = v8::Local<v8::FunctionTemplate>::New(isolate, SWIGV8_SWIGTYPE_Proxy_class_templ); - } --#endif - --// v8::Handle<v8::Object> result = class_templ->InstanceTemplate()->NewInstance(); -+#if (NODE_MODULE_VERSION < 72) - v8::Local<v8::Object> result = class_templ->InstanceTemplate()->NewInstance(); -+#else -+ v8::Local<v8::Object> result = class_templ->InstanceTemplate()->NewInstance(SWIGV8_CURRENT_CONTEXT()).ToLocalChecked(); -+#endif -+ - SWIGV8_SetPrivateData(result, ptr, info, flags); - - SWIGV8_ESCAPE(result); -@@ -433,7 +292,7 @@ SWIGRUNTIME v8::Handle<v8::Value> SWIG_V8_NewPointerObj(void *ptr, swig_type_inf - SWIGRUNTIME SwigV8ReturnValue _SWIGV8_wrap_equals(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - void *arg1 = (void *) 0 ; - void *arg2 = (void *) 0 ; - bool result; -@@ -463,7 +322,7 @@ fail: - SWIGRUNTIME SwigV8ReturnValue _wrap_getCPtr(const SwigV8Arguments &args) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Value> jsresult; -+ v8::Local<v8::Value> jsresult; - void *arg1 = (void *) 0 ; - long result; - int res1; -@@ -502,37 +361,29 @@ public: - }; - - SWIGRUNTIMEINLINE --int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) { -+int SwigV8Packed_Check(v8::Local<v8::Value> valRef) { - SWIGV8_HANDLESCOPE(); - -- v8::Handle<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); -+ v8::Local<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); - if(objRef->InternalFieldCount() < 1) return false; --#if (V8_MAJOR_VERSION-0) < 5 -- v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__")); --#else - v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); - v8::Local<v8::Value> flag; - if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag)) - return false; --#endif -+ - return (flag->IsBoolean() && SWIGV8_BOOLEAN_VALUE(flag)); - } - - SWIGRUNTIME --swig_type_info *SwigV8Packed_UnpackData(v8::Handle<v8::Value> valRef, void *ptr, size_t size) { -+swig_type_info *SwigV8Packed_UnpackData(v8::Local<v8::Value> valRef, void *ptr, size_t size) { - if (SwigV8Packed_Check(valRef)) { - SWIGV8_HANDLESCOPE(); - - SwigV8PackedData *sobj; - -- v8::Handle<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); -+ v8::Local<v8::Object> objRef = SWIGV8_TO_OBJECT(valRef); - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) -- v8::Handle<v8::Value> cdataRef = objRef->GetInternalField(0); -- sobj = static_cast<SwigV8PackedData*>(v8::External::Unwrap(cdataRef)); --#else - sobj = static_cast<SwigV8PackedData*>(objRef->GetAlignedPointerFromInternalField(0)); --#endif - if (sobj == NULL || sobj->size != size) return 0; - memcpy(ptr, sobj->data, size); - return sobj->type; -@@ -542,7 +393,7 @@ swig_type_info *SwigV8Packed_UnpackData(v8::Handle<v8::Value> valRef, void *ptr, - } - - SWIGRUNTIME --int SWIGV8_ConvertPacked(v8::Handle<v8::Value> valRef, void *ptr, size_t sz, swig_type_info *ty) { -+int SWIGV8_ConvertPacked(v8::Local<v8::Value> valRef, void *ptr, size_t sz, swig_type_info *ty) { - swig_type_info *to = SwigV8Packed_UnpackData(valRef, ptr, sz); - if (!to) return SWIG_ERROR; - if (ty) { -@@ -555,89 +406,32 @@ int SWIGV8_ConvertPacked(v8::Handle<v8::Value> valRef, void *ptr, size_t sz, swi - return SWIG_OK; - } - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) --SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Persistent< v8::Value > object, void *parameter) { -- SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) --SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Value> object, void *parameter) { -- SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) --SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) { --#elif (V8_MAJOR_VERSION-0) < 5 --SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) { -- v8::Local<v8::Object> object = data.GetValue(); -- SwigV8PackedData *cdata = data.GetParameter(); --#else - SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) { - SwigV8PackedData *cdata = data.GetParameter(); --#endif - - delete cdata; -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- object.Clear(); -- object.Dispose(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- object.Clear(); -- object.Dispose(isolate); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) -- object->Dispose(isolate); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- object->Dispose(); --#elif (V8_MAJOR_VERSION-0) < 5 -- object.Clear(); --#endif - } - - SWIGRUNTIME --v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_info *type) { -+v8::Local<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_info *type) { - SWIGV8_HANDLESCOPE_ESC(); - - SwigV8PackedData *cdata = new SwigV8PackedData(data, size, type); --// v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW(); - v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW(); - --#if (V8_MAJOR_VERSION-0) < 5 -- obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true)); --#else - v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); - obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true)); --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) -- obj->SetPointerInInternalField(0, cdata); --#else - obj->SetAlignedPointerInInternalField(0, cdata); --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- cdata->handle = v8::Persistent<v8::Object>::New(obj); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- cdata->handle = v8::Persistent<v8::Object>::New(v8::Isolate::GetCurrent(), obj); --#else - cdata->handle.Reset(v8::Isolate::GetCurrent(), obj); --#endif -- - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031918) -- cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) -- cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete); --#elif (V8_MAJOR_VERSION-0) < 5 -- cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete); --// v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete); --#else - cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter); --#endif - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- cdata->handle.MarkIndependent(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) -- cdata->handle.MarkIndependent(v8::Isolate::GetCurrent()); --#else -+#if (NODE_MODULE_VERSION < 72) - cdata->handle.MarkIndependent(); -+// Looks like future versions do not require that anymore: -+// https://monorail-prod.appspot.com/p/chromium/issues/detail?id=923361#c11 - #endif - - SWIGV8_ESCAPE(obj); -@@ -654,22 +448,18 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf - - SWIGRUNTIME - --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) --v8::Handle<v8::Value> SWIGV8_AppendOutput(v8::Handle<v8::Value> result, v8::Handle<v8::Value> obj) { --#else --v8::Handle<v8::Value> SWIGV8_AppendOutput(v8::Local<v8::Value> result, v8::Handle<v8::Value> obj) { --#endif -+v8::Local<v8::Value> SWIGV8_AppendOutput(v8::Local<v8::Value> result, v8::Local<v8::Value> obj) { - SWIGV8_HANDLESCOPE_ESC(); - - if (result->IsUndefined()) { - result = SWIGV8_ARRAY_NEW(); - } --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) -- v8::Handle<v8::Array> arr = v8::Handle<v8::Array>::Cast(result); --#else - v8::Local<v8::Array> arr = v8::Local<v8::Array>::Cast(result); --#endif -+#if (NODE_MODULE_VERSION < 72) - arr->Set(arr->Length(), obj); -+#else -+ arr->Set(SWIGV8_CURRENT_CONTEXT(), arr->Length(), obj); -+#endif - - SWIGV8_ESCAPE(arr); - } -diff --git a/Lib/javascript/v8/javascriptstrings.swg b/Lib/javascript/v8/javascriptstrings.swg -index e767a6d662..61a937fa52 100644 ---- a/Lib/javascript/v8/javascriptstrings.swg -+++ b/Lib/javascript/v8/javascriptstrings.swg -@@ -4,10 +4,10 @@ - * ------------------------------------------------------------ */ - %fragment("SWIG_AsCharPtrAndSize", "header", fragment="SWIG_pchar_descriptor") { - SWIGINTERN int --SWIG_AsCharPtrAndSize(v8::Handle<v8::Value> valRef, char** cptr, size_t* psize, int *alloc) -+SWIG_AsCharPtrAndSize(v8::Local<v8::Value> valRef, char** cptr, size_t* psize, int *alloc) - { - if(valRef->IsString()) { -- v8::Handle<v8::String> js_str = SWIGV8_TO_STRING(valRef); -+ v8::Local<v8::String> js_str = SWIGV8_TO_STRING(valRef); - - size_t len = SWIGV8_UTF8_LENGTH(js_str) + 1; - char* cstr = new char[len]; -@@ -20,7 +20,7 @@ SWIG_AsCharPtrAndSize(v8::Handle<v8::Value> valRef, char** cptr, size_t* psize, - return SWIG_OK; - } else { - if(valRef->IsObject()) { -- v8::Handle<v8::Object> obj = SWIGV8_TO_OBJECT(valRef); -+ v8::Local<v8::Object> obj = SWIGV8_TO_OBJECT(valRef); - // try if the object is a wrapped char[] - swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); - if (pchar_descriptor) { -@@ -41,7 +41,7 @@ SWIG_AsCharPtrAndSize(v8::Handle<v8::Value> valRef, char** cptr, size_t* psize, - } - - %fragment("SWIG_FromCharPtrAndSize","header",fragment="SWIG_pchar_descriptor") { --SWIGINTERNINLINE v8::Handle<v8::Value> -+SWIGINTERNINLINE v8::Local<v8::Value> - SWIG_FromCharPtrAndSize(const char* carray, size_t size) - { - if (carray) { -@@ -49,7 +49,7 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size) - // TODO: handle extra long strings - return SWIGV8_UNDEFINED(); - } else { -- v8::Handle<v8::String> js_str = SWIGV8_STRING_NEW2(carray, size); -+ v8::Local<v8::String> js_str = SWIGV8_STRING_NEW2(carray, size); - return js_str; - } - } else { -diff --git a/Lib/javascript/v8/javascripttypemaps.swg b/Lib/javascript/v8/javascripttypemaps.swg -index 4601698e03..fbe7849cd2 100644 ---- a/Lib/javascript/v8/javascripttypemaps.swg -+++ b/Lib/javascript/v8/javascripttypemaps.swg -@@ -25,7 +25,7 @@ - - /* Javascript types */ - --#define SWIG_Object v8::Handle<v8::Value> -+#define SWIG_Object v8::Local<v8::Value> - #define VOID_Object SWIGV8_UNDEFINED() - - /* Overload of the output/constant/exception/dirout handling */ -diff --git a/Tools/javascript/Makefile.in b/Tools/javascript/Makefile.in -index 5eeec07857..21088a8fad 100644 ---- a/Tools/javascript/Makefile.in -+++ b/Tools/javascript/Makefile.in -@@ -3,12 +3,9 @@ - # ---------------------------------------------------------------- - # - # Note: --# There is no common CLI Javascript interpreter. --# V8 comes with one 'd8' which however does not provide a means --# to load extensions. Therefore, by default we use nodejs as --# environment. --# For testing native v8 and jsc extensions we provide our own --# interpreter (see 'Tools/javascript'). -+# There is no common CLI Javascript interpreter. By default we -+# use nodejs as environment. For testing jsc extensions we -+# provide our own interpreter (see 'Tools/javascript'). - # - # ---------------------------------------------------------------- - all: javascript -@@ -24,37 +21,25 @@ LDFLAGS = - LINKFLAGS = @JSINTERPRETERLINKFLAGS@ - - ROOT_DIR = @ROOT_DIR@ --JSINCLUDES = @JSCOREINC@ @JSV8INC@ --JSDYNAMICLINKING = @JSCOREDYNAMICLINKING@ @JSV8DYNAMICLINKING@ --JSV8ENABLED = @JSV8ENABLED@ -+JSINCLUDES = @JSCOREINC@ -+JSDYNAMICLINKING = @JSCOREDYNAMICLINKING@ - JSCENABLED = @JSCENABLED@ - - srcdir = @srcdir@ - -- --ifneq (, $(V8_VERSION)) -- JSV8_VERSION=$(V8_VERSION) --else -- JSV8_VERSION=0x031110 --endif -- - # Regenerate Makefile if Makefile.in or config.status have changed. - Makefile: $(srcdir)/Makefile.in ../../config.status - cd ../.. && $(SHELL) ./config.status Tools/javascript/Makefile - - # These settings are provided by 'configure' (see '/configure.in') --ifeq (1, $(JSV8ENABLED)) --JS_INTERPRETER_SRC_V8 = v8_shell.cxx --JS_INTERPRETER_ENABLE_V8 = -DENABLE_V8 -DSWIG_V8_VERSION=$(JSV8_VERSION) -DV8_DEPRECATION_WARNINGS --endif - - ifeq (1, $(JSCENABLED)) - JS_INTERPRETER_SRC_JSC = jsc_shell.cxx - JS_INTERPRETER_ENABLE_JSC = -DENABLE_JSC - endif - --JS_INTERPRETER_DEFINES = $(JS_INTERPRETER_ENABLE_JSC) $(JS_INTERPRETER_ENABLE_V8) --JS_INTERPRETER_SRC = javascript.cxx js_shell.cxx $(JS_INTERPRETER_SRC_JSC) $(JS_INTERPRETER_SRC_V8) -+JS_INTERPRETER_DEFINES = $(JS_INTERPRETER_ENABLE_JSC) -+JS_INTERPRETER_SRC = javascript.cxx js_shell.cxx $(JS_INTERPRETER_SRC_JSC) - - JS_INTERPRETER_OBJS = $(JS_INTERPRETER_SRC:.cxx=.o) - -diff --git a/Tools/javascript/v8_shell.cxx b/Tools/javascript/v8_shell.cxx -deleted file mode 100644 -index 5001bc25a6..0000000000 ---- a/Tools/javascript/v8_shell.cxx -+++ /dev/null -@@ -1,388 +0,0 @@ --#include <assert.h> --#include <fcntl.h> --#include <string.h> --#include <stdio.h> --#include <stdlib.h> -- --#include <v8.h> --#include <vector> -- --#include "js_shell.h" -- --typedef int (*V8ExtensionInitializer) (v8::Handle<v8::Object> module); -- --// Note: these typedefs and defines are used to deal with v8 API changes since version 3.19.00 -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031903) --typedef v8::Handle<v8::Value> SwigV8ReturnValue; --typedef v8::Arguments SwigV8Arguments; --typedef v8::AccessorInfo SwigV8PropertyCallbackInfo; --#define SWIGV8_RETURN(val) return scope.Close(val) --#define SWIGV8_RETURN_INFO(val, info) return scope.Close(val) --#else --typedef void SwigV8ReturnValue; --typedef v8::FunctionCallbackInfo<v8::Value> SwigV8Arguments; --typedef v8::PropertyCallbackInfo<v8::Value> SwigV8PropertyCallbackInfo; --#define SWIGV8_RETURN(val) args.GetReturnValue().Set(val); return --#define SWIGV8_RETURN_INFO(val, info) info.GetReturnValue().Set(val); return --#endif -- -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032117) --#define SWIGV8_HANDLESCOPE() v8::HandleScope scope --#define SWIGV8_HANDLESCOPE_ESC() v8::HandleScope scope --#define SWIGV8_ESCAPE(val) return scope.Close(val) --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032318) --#define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent()); --#define SWIGV8_HANDLESCOPE_ESC() v8::HandleScope scope(v8::Isolate::GetCurrent()); --#define SWIGV8_ESCAPE(val) return scope.Close(val) --#else --#define SWIGV8_HANDLESCOPE() v8::HandleScope scope(v8::Isolate::GetCurrent()); --#define SWIGV8_HANDLESCOPE_ESC() v8::EscapableHandleScope scope(v8::Isolate::GetCurrent()); --#define SWIGV8_ESCAPE(val) return scope.Escape(val) --#endif -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032318) --#define SWIGV8_CURRENT_CONTEXT() v8::Context::GetCurrent() --#define SWIGV8_STRING_NEW(str) v8::String::New(str) --#define SWIGV8_FUNCTEMPLATE_NEW(func) v8::FunctionTemplate::New(func) --#define SWIGV8_OBJECT_NEW() v8::Object::New() --#define SWIGV8_EXTERNAL_NEW(val) v8::External::New(val) --#define SWIGV8_UNDEFINED() v8::Undefined() --#else --#define SWIGV8_CURRENT_CONTEXT() v8::Isolate::GetCurrent()->GetCurrentContext() --#define SWIGV8_STRING_NEW(str) v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), str) --#define SWIGV8_FUNCTEMPLATE_NEW(func) v8::FunctionTemplate::New(v8::Isolate::GetCurrent(), func) --#define SWIGV8_OBJECT_NEW() v8::Object::New(v8::Isolate::GetCurrent()) --#define SWIGV8_EXTERNAL_NEW(val) v8::External::New(v8::Isolate::GetCurrent(), val) --#define SWIGV8_UNDEFINED() v8::Undefined(v8::Isolate::GetCurrent()) --#endif -- -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) --typedef v8::Persistent<v8::Context> SwigV8Context; --#else --typedef v8::Local<v8::Context> SwigV8Context; --#endif -- --class V8Shell: public JSShell { -- --public: -- V8Shell(); -- -- virtual ~V8Shell(); -- -- virtual bool RunScript(const std::string &scriptPath); -- -- virtual bool RunShell(); -- -- --protected: -- -- virtual bool InitializeEngine(); -- -- virtual bool ExecuteScript(const std::string &source, const std::string &scriptPath); -- -- virtual bool DisposeEngine(); -- --private: -- -- v8::Handle<v8::Value> Import(const std::string &moduleName); -- -- SwigV8Context CreateShellContext(); -- -- void ReportException(v8::TryCatch *handler); -- -- static SwigV8ReturnValue Print(const SwigV8Arguments &args); -- -- static SwigV8ReturnValue Require(const SwigV8Arguments &args); -- -- static SwigV8ReturnValue Quit(const SwigV8Arguments &args); -- -- static SwigV8ReturnValue Version(const SwigV8Arguments &args); -- -- static const char* ToCString(const v8::String::Utf8Value &value); -- --}; -- --#ifdef __GNUC__ --#include <dlfcn.h> --#define LOAD_SYMBOL(handle, name) dlsym(handle, name) --#else --#error "implement dll loading" --#endif -- --V8Shell::V8Shell() {} -- --V8Shell::~V8Shell() {} -- --bool V8Shell::RunScript(const std::string &scriptPath) { -- std::string source = ReadFile(scriptPath); -- -- v8::Isolate *isolate = v8::Isolate::New(); -- v8::Isolate::Scope isolate_scope(isolate); -- -- SWIGV8_HANDLESCOPE(); -- -- SwigV8Context context = CreateShellContext(); -- -- if (context.IsEmpty()) { -- printf("Could not create context.\n"); -- return false; -- } -- -- context->Enter(); -- -- // Store a pointer to this shell for later use -- -- v8::Handle<v8::Object> global = context->Global(); -- v8::Local<v8::External> __shell__ = SWIGV8_EXTERNAL_NEW((void*) (long) this); -- -- global->SetHiddenValue(SWIGV8_STRING_NEW("__shell__"), __shell__); -- -- // Node.js compatibility: make `print` available as `console.log()` -- ExecuteScript("var console = {}; console.log = print;", "<console>"); -- -- bool success = ExecuteScript(source, scriptPath); -- -- // Cleanup -- -- context->Exit(); -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- context.Dispose(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- context.Dispose(v8::Isolate::GetCurrent()); --#else --// context.Dispose(); --#endif -- --// v8::V8::Dispose(); -- -- return success; --} -- --bool V8Shell::RunShell() { -- SWIGV8_HANDLESCOPE(); -- -- SwigV8Context context = CreateShellContext(); -- -- if (context.IsEmpty()) { -- printf("Could not create context.\n"); -- return false; -- } -- -- context->Enter(); -- -- v8::Context::Scope context_scope(context); -- -- ExecuteScript("var console = {}; console.log = print;", "<console>"); -- -- static const int kBufferSize = 1024; -- while (true) { -- char buffer[kBufferSize]; -- printf("> "); -- char *str = fgets(buffer, kBufferSize, stdin); -- if (str == NULL) break; -- std::string source(str); -- ExecuteScript(source, "(shell)"); -- } -- printf("\n"); -- -- // Cleanup -- -- context->Exit(); -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -- context.Dispose(); --#elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- context.Dispose(v8::Isolate::GetCurrent()); --#else --// context.Dispose(); --#endif -- --// v8::V8::Dispose(); -- -- return true; --} -- -- --bool V8Shell::InitializeEngine() { -- return true; --} -- --bool V8Shell::ExecuteScript(const std::string &source, const std::string &name) { -- SWIGV8_HANDLESCOPE(); -- -- v8::TryCatch try_catch; -- v8::Handle<v8::Script> script = v8::Script::Compile(SWIGV8_STRING_NEW(source.c_str()), SWIGV8_STRING_NEW(name.c_str())); -- -- // Stop if script is empty -- if (script.IsEmpty()) { -- // Print errors that happened during compilation. -- ReportException(&try_catch); -- return false; -- } -- -- v8::Handle<v8::Value> result = script->Run(); -- -- // Print errors that happened during execution. -- if (try_catch.HasCaught()) { -- ReportException(&try_catch); -- return false; -- } else { -- return true; -- } --} -- --bool V8Shell::DisposeEngine() { -- return true; --} -- --SwigV8Context V8Shell::CreateShellContext() { -- // Create a template for the global object. -- v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); -- -- // Bind global functions -- global->Set(SWIGV8_STRING_NEW("print"), SWIGV8_FUNCTEMPLATE_NEW(V8Shell::Print)); -- global->Set(SWIGV8_STRING_NEW("quit"), SWIGV8_FUNCTEMPLATE_NEW(V8Shell::Quit)); -- global->Set(SWIGV8_STRING_NEW("require"), SWIGV8_FUNCTEMPLATE_NEW(V8Shell::Require)); -- global->Set(SWIGV8_STRING_NEW("version"), SWIGV8_FUNCTEMPLATE_NEW(V8Shell::Version)); -- --#if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031900) -- SwigV8Context context = v8::Context::New(NULL, global); -- return context; --#else -- SwigV8Context context = v8::Context::New(v8::Isolate::GetCurrent(), NULL, global); -- return context; --#endif --} -- --v8::Handle<v8::Value> V8Shell::Import(const std::string &module_path) --{ -- SWIGV8_HANDLESCOPE_ESC(); -- -- HANDLE library; -- std::string module_name = LoadModule(module_path, &library); -- -- std::string symname = std::string(module_name).append("_initialize"); -- -- V8ExtensionInitializer init_function = reinterpret_cast<V8ExtensionInitializer>((long) LOAD_SYMBOL(library, symname.c_str())); -- -- if(init_function == 0) { -- printf("Could not find initializer function."); -- -- return SWIGV8_UNDEFINED(); -- } -- -- v8::Local<v8::Object> module = SWIGV8_OBJECT_NEW(); -- init_function(module); -- -- SWIGV8_ESCAPE(module); --} -- --SwigV8ReturnValue V8Shell::Print(const SwigV8Arguments &args) { -- SWIGV8_HANDLESCOPE(); -- -- bool first = true; -- for (int i = 0; i < args.Length(); i++) { -- -- if (first) { -- first = false; -- } else { -- printf(" "); -- } -- v8::String::Utf8Value str(args[i]); -- const char *cstr = V8Shell::ToCString(str); -- printf("%s", cstr); -- } -- printf("\n"); -- fflush(stdout); -- -- SWIGV8_RETURN(SWIGV8_UNDEFINED()); --} -- --SwigV8ReturnValue V8Shell::Require(const SwigV8Arguments &args) { -- SWIGV8_HANDLESCOPE(); -- -- if (args.Length() != 1) { -- printf("Illegal arguments for `require`"); -- }; -- -- v8::String::Utf8Value str(args[0]); -- const char *cstr = V8Shell::ToCString(str); -- std::string moduleName(cstr); -- -- v8::Local<v8::Object> global = SWIGV8_CURRENT_CONTEXT()->Global(); -- -- v8::Local<v8::Value> hidden = global->GetHiddenValue(SWIGV8_STRING_NEW("__shell__")); -- v8::Local<v8::External> __shell__ = v8::Local<v8::External>::Cast(hidden); -- V8Shell *_this = (V8Shell *) (long) __shell__->Value(); -- -- v8::Handle<v8::Value> module = _this->Import(moduleName); -- -- SWIGV8_RETURN(module); --} -- --SwigV8ReturnValue V8Shell::Quit(const SwigV8Arguments &args) { -- SWIGV8_HANDLESCOPE(); -- -- int exit_code = args[0]->Int32Value(); -- fflush(stdout); -- fflush(stderr); -- exit(exit_code); -- -- SWIGV8_RETURN(SWIGV8_UNDEFINED()); --} -- --SwigV8ReturnValue V8Shell::Version(const SwigV8Arguments &args) { -- SWIGV8_HANDLESCOPE(); -- SWIGV8_RETURN(SWIGV8_STRING_NEW(v8::V8::GetVersion())); --} -- --void V8Shell::ReportException(v8::TryCatch *try_catch) { -- SWIGV8_HANDLESCOPE(); -- -- v8::String::Utf8Value exception(try_catch->Exception()); -- const char *exception_string = V8Shell::ToCString(exception); -- v8::Handle<v8::Message> message = try_catch->Message(); -- if (message.IsEmpty()) { -- // V8 didn't provide any extra information about this error; just -- // print the exception. -- printf("%s\n", exception_string); -- } else { -- // Print (filename):(line number): (message). -- v8::String::Utf8Value filename(message->GetScriptResourceName()); -- const char *filename_string = V8Shell::ToCString(filename); -- int linenum = message->GetLineNumber(); -- printf("%s:%i: %s\n", filename_string, linenum, exception_string); -- // Print line of source code. -- v8::String::Utf8Value sourceline(message->GetSourceLine()); -- const char *sourceline_string = V8Shell::ToCString(sourceline); -- printf("%s\n", sourceline_string); -- // Print wavy underline (GetUnderline is deprecated). -- int start = message->GetStartColumn(); -- for (int i = 0; i < start; i++) { -- printf(" "); -- } -- int end = message->GetEndColumn(); -- for (int i = start; i < end; i++) { -- printf("^"); -- } -- printf("\n"); -- v8::String::Utf8Value stack_trace(try_catch->StackTrace()); -- if (stack_trace.length() > 0) { -- const char *stack_trace_string = V8Shell::ToCString(stack_trace); -- printf("%s\n", stack_trace_string); -- } -- } --} -- --// Extracts a C string from a V8 Utf8Value. --const char *V8Shell::ToCString(const v8::String::Utf8Value &value) { -- return *value ? *value : "<string conversion failed>"; --} -- --JSShell *V8Shell_Create() { -- return new V8Shell(); --} -diff --git a/Tools/travis-linux-install.sh b/Tools/travis-linux-install.sh -index c8347d27a4..2427d08230 100755 ---- a/Tools/travis-linux-install.sh -+++ b/Tools/travis-linux-install.sh -@@ -39,22 +39,12 @@ - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - travis_retry nvm install ${VER} - nvm use ${VER} -- if [ "$VER" == "0.10" ] || [ "$VER" == "0.12" ] || [ "$VER" == "4" ] || [ "$VER" == "6" ] ; then --# travis_retry sudo apt-get install -qq nodejs node-gyp -- travis_retry npm install -g node-gyp@$VER -- elif [ "$VER" == "8" ] ; then -- travis_retry npm install -g node-gyp@6 -- else -- travis_retry npm install -g node-gyp -- fi -+ travis_retry npm install -g node-gyp - ;; - "jsc") - travis_retry sudo apt-get install -qq libwebkitgtk-dev - ;; -- "v8") -- travis_retry sudo apt-get install -qq libv8-dev -- ;; -- esac -+ - ;; - "guile") - travis_retry sudo apt-get -qq install guile-2.0-dev |