Commit Graph

34 Commits

Author SHA1 Message Date
Thanh Vu Le 935f9222a3 [Javascript] Use SetNativeDataProperty()
Use SetNativeDataProperty() instead of SetAccessor() which fixes
compatibility with recent v8 versions.

Closes #3185
Fixes #3138
2025-06-09 16:11:29 +12:00
Olly Betts 1f5ff2e6a5 Allow using snprintf() instead of sprintf() in wrappers
We aim to produce code that works with C90 or C++98 so we can't
assume snprintf() is available, but it almost always is (even
on systems from before it was standardised) so having a way to
use it is helpful.

Enable this automatically if the compiler claims conformance
with at least C90 or C++98 and check SWIG_HAVE_SNPRINTF to allow
turning on manually, but disable if SWIG_NO_SNPRINTF if defined.

The fallback is to call sprintf() without a buffer size check -
checking after the call is really shutting the stable door after
the horse has bolted, and most of our uses either have a fixed maximum
possible size or dynamically allocate a buffer that's large enough.

Fixes: #2502 (sprintf deprecation warnings on macos)
Fixes: #2548
2023-04-27 10:08:57 +12:00
Olly Betts 7c97bd5ab3 [js] Remove code to handle v8 < 5.0
We require at least node v6 which means v8 5.0, so code to handle
older v8 is no longer useful.
2021-12-02 14:04:25 +13:00
Andy Polyakov b56814ce08 Lib/javascript/v8/javascriptrun.swg: clean up pre-processor conditions.
Harmonize javascriptcode.swg javascripthelpers.swg and clarify
documentation.
2021-03-10 14:51:08 +01:00
Andy Polyakov b0c01ea851 Lib/javascript/v8: use context-aware initialization.
Context-aware initialization allows to instantiate add-ons multiple
times, most importantly in multiple Workers' contexts. Workers made
first appearance in v10.5. Context-aware initialization was option
earlier than that, even before supported minimum v6.x, yet condition
is chosen more conservatively as NODE_MODULE_VERSION >= 64, a.k.a.
v10.0.
2021-03-02 15:31:28 +01:00
William S Fulton 0e36b5d6fd Fixes for node v12.0-12.5 2021-02-27 22:18:27 +00:00
William S Fulton 7cb719ee67 -Wunused-result fixes for Node < 12
Fix 0533fc26c which adds in calls to Check(), which was added in Node 12.
Also fix e6315eedd which calls the new Set() and Check() method.
2021-02-27 22:17:59 +00:00
William S Fulton 0533fc26ca Fix -Wunused-result warnings in node wrappers 2021-02-26 22:23:57 +00:00
Yegor Yefremov 113d78a083 Add support for Node.js v12 2020-04-07 15:23:31 +02:00
Yegor Yefremov 26fc996ad6 Replace Handle with Local depending on Node.js version
Use newly introduced macros like SWIGV8_VALUE to use v8::Handle or
v8::Local depending on the selected Node.js version where possible.
2020-04-07 14:13:12 +02:00
mochizk 1e981dfc23 Fix node.js deprecated warnings >= v10.12.0 2019-03-13 23:09:57 +09:00
Patrick Schneider 9ce8d7e7c9 Remove warnings on Node 6.x aka V8 5.0 and 5.1
The proposed changes targetted at 5.2 (or 5.4 to be more precise, since there is no Node release with V8 5.2 or 5.3) work for lower versions as well and bust the deprecation warnings there.
2017-04-13 19:39:44 +02:00
Patrick Schneider f08d7a63a9 Add Node 7.x aka V8 5.2+ support
* Use WeakCallbackInfo instead of WeakCallbackData
* Use GetPrivate instead of GetHiddenValue
* Adopted new signature for SetWeak to support destructor calling
* SetAccessor deprecation fixed
* Proper version checks where applicable
2017-04-13 15:02:53 +02:00
Olly Betts b138f054e5 [Javascript] Fix SWIG_exception() macro (#792)
Fix SWIG_exception() macro to return from the current function.
Fixes #789, reported by Julien Dutriaux.
2016-09-17 17:29:42 +12:00
Olly Betts b3bedc210c [Javascript] For v8 >= 4.3.0, use V8_MAJOR_VERSION.
Fixes https://github.com/swig/swig/issues/561.
2016-01-12 09:33:13 +13:00
Richard e0c0670540 Partially fixed for 3.25.30 (0x032530) - unfinished 2014-08-28 19:46:50 -05:00
Richard e98a659246 Fixes for v8 3.21.17 (0x032117) 2014-08-28 19:46:50 -05:00
Richard 013fb3d22d Fixes for v8 3.19.2 (0x031902) 2014-08-28 19:46:50 -05:00
Eric Wing aa55154ccf JavaScript: Added missing static modifiers to avoid duplicate symbol problems with multiple SWIG modules. 2014-05-18 21:27:53 +02:00
Oliver Buchtala fc4d9b665c Fix v8 generator to use a non clashing name for built-in 'equals' method. 2013-09-09 16:28:29 +03:00
Kota Iguchi f70c0e16f2 Add "equals" to compare between pointers
Add "getCPtr" to retrieve pointer value
2013-09-03 13:58:22 +02:00
Oliver Buchtala a48438c562 Better v8 version handling.
You should start to specify a version on command line, e.g.,

    swig -javascript -v8 -DSWIG_V8_VERSION=0x032007
2013-09-03 05:39:37 +02:00
Vladimir Menshakov cb5f4dc47e ported to newer, more efficient v8 api 2013-08-31 05:00:32 +02:00
Vladimir Menshakov 9b6a4870dd added missing scope.Close() 2013-08-31 03:34:39 +02:00
Vladimir Menshakov 9111773400 generate v8-3.19.x compatible code 2013-08-31 03:34:39 +02:00
Oliver Buchtala f814a8e702 Fix errors concerning object wrapping and cleanup in v8 emitter.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13819 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:14:02 +00:00
Oliver Buchtala 91fc0ff205 Use a throwing default setter in v8 emitter.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13815 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:13:03 +00:00
Oliver Buchtala 46cff47ada Several fixes in generator for v8 initializer function.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13796 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:08:03 +00:00
Oliver Buchtala cda09239ad Several fixes in v8 emitter and code templates.
Achieves first compile of example "class" after re-integration.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13793 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:06:58 +00:00
Oliver Buchtala 78442b2764 Several adaptations and fixes on the way to get V8 emitter running.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13788 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:05:37 +00:00
Oliver Buchtala 360ef44e09 Clean up in v8 helper functions.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13763 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 00:52:41 +00:00
Oliver Buchtala 71bee1e78c Complement variable processing in v8 generator.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13753 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 00:50:06 +00:00
Oliver Buchtala 6c90d1eb6d Minor improvements in v8 emitter implementation
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13746 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 00:48:11 +00:00
Oliver Buchtala 3c30e2d382 Add initial Javascript V8 emitter implementation.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13743 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 00:47:19 +00:00