Commit graph

15,532 commits

Author SHA1 Message Date
Eric Wing
f8feeacb68 v8: Removed the extern "C" around the initialize function because it makes no sense since it requires a C++ templates object as a parameter. 2013-08-31 03:46:07 +02:00
Eric Wing
ed729f7d3a This brings over the memory leak fixes for pointers to structs with a %extend destructor from my Neha fork. The generator was not generating and connecting the needed code for the requested destructor to the v8 dtor finalizer.
I did not realize this branch has some JavaScriptCore stuff in it too. Unfortunately, it seems to have its own unique problems (like creating C++ files when it should be generating C files). My changes are targeted for v8, and I don't think my JSCore changes fully reach in this JSCore implementation so more work would need to be done to get this branch working. I think my Neha fork is in better shape at the moment.

Also, I did port over the 'NULL out the dtor function pointer' in the %nodefaultdtor fix to v8.

Usage case:
struct MyData {
%extend {
~MyData() {
FreeData($self);
}
}
};
%newobject CreateData;
struct MyData* CreateData(void);
%delobject FreeData;
void FreeData(struct MyData* the_data);

where the use case is something like:
var my_data = example.CreateData();
my_data = null;
2013-08-31 03:46:07 +02:00
Oliver Buchtala
caa92740d3 Add an option to deactivate creation of an extra module object in javascript.
This is useful, if the extension host calls the initializer with custom
local variables.
E.g., this is the case with node.js.
2013-08-31 03:23:12 +02:00
Oliver Buchtala
213c107b7f Add a swig macro to register node.js extensions. 2013-08-31 03:23:12 +02:00
Oliver Buchtala
4fea3a403e Generate an extra file part after the initializer for v8 modules.
E.g., this is useful for creating node.js modules.
2013-08-31 03:23:12 +02:00
Oliver Buchtala
31844ac72a Simplify the signature of the v8 module intializer. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
9d630ab930 Fix std::string support for v8. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
2c4a90a37d Generate defines for initializer function. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
be06ceea26 Fixes in std_string for JSC generator. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
7fffd801e4 Fix std_string.i which generated compile errors in certain cases. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
fb9c4955fb Not a real change: removed some trailing spaces. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
f9d6afbdfe Add a missing return statement in JS shell. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
9d22644563 Rename a argument variable to avoid errors with overloaded functions. 2013-08-31 03:23:11 +02:00
Oliver Buchtala
bad64925ed Configuration is now easier for building and running examples and tests using v8. 2013-08-31 03:23:10 +02:00
Oliver Buchtala
caa6827daf Javascript interpreter supports for JSC and V8 simultaneously.
Before, one had to build two different versions.
2013-08-31 03:23:10 +02:00
Oliver Buchtala
008adca72f Provide more control about the target object/namespace where a v8 module is registered to. 2013-08-31 03:23:10 +02:00
Oliver Buchtala
6754bf2b49 Generate cleanup code for %newobject. 2013-08-31 03:23:10 +02:00
Oliver Buchtala
058a27bf32 Simplify creation of a Javascript shell. 2013-08-31 03:23:10 +02:00
Oliver Buchtala
57980975a0 Generate cleanup code. 2013-08-31 03:23:10 +02:00
Oliver Buchtala
94730dad7a Beautify output of v8 emitter.
Trimming some of the code templates.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13830 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:16:54 +00:00
Oliver Buchtala
86cb621466 Add comments to v8 code templates.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13829 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:16:42 +00:00
Oliver Buchtala
217ffb11d0 Fix regressions of latest commits.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13828 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:16:26 +00:00
Oliver Buchtala
9b06144d39 Fix handling of overloaded ctors in v8 emitter.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13827 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:16:09 +00:00
Oliver Buchtala
131a106204 Improve names and comments of code templates for javascript emitters.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13826 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:15:51 +00:00
Oliver Buchtala
8b7a9fec25 Add complex support to v8 module.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13825 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:15:29 +00:00
Oliver Buchtala
7c7d1cf3b9 Fix errors related to wrapping and destruction of (undefined) SWIG_TYPES.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13824 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:15:12 +00:00
Oliver Buchtala
296a5d0285 Minor change in javascript example Makefile configuration.
Propagate global CFLAGS and CXXFLAGS to inner javascript targets.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13823 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:14:48 +00:00
Oliver Buchtala
4616f9643f Adapt test-suite configuration to allow switching between js engines.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13822 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:14:37 +00:00
Oliver Buchtala
8948360725 Fix configuration_in for detecting v8 include and lib.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13821 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:14:23 +00:00
Oliver Buchtala
2092793868 Make v8 shell more quiet.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13820 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:14:14 +00: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
8db76ddee1 Remove generated file from repository.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13818 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:13:42 +00:00
Oliver Buchtala
5425edc508 Add library flag for building v8 shell.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13817 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:13:29 +00:00
Oliver Buchtala
da109ee764 Fix input string handling in v8 typemaps.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13816 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:13:17 +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
a82e0a6e8f Fix c++ linking problem in example 'variables'.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13814 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:12:46 +00:00
Oliver Buchtala
843c8a408c Fix AsVal macros of long and int for v8.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13813 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:12:33 +00:00
Oliver Buchtala
d13289cc91 Fix function dispatching for v8.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13812 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:12:18 +00:00
Oliver Buchtala
68f0f859f8 Fix name collision in generated v8 initializer.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13811 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:11:51 +00:00
Oliver Buchtala
da6307a19e Enable overloading ctors for v8.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13810 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:11:32 +00:00
Oliver Buchtala
70383a1b61 Enable string exceptions in v8.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13809 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:11:11 +00:00
Oliver Buchtala
84e5476147 Add std::string support to v8 typemaps.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13808 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:10:57 +00:00
Oliver Buchtala
a4f8e4c1c3 Fix bug in v8 ctor emitter.
This bug leaded to flaky crashes of v8 engine.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13807 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:10:42 +00:00
Oliver Buchtala
2893df9f73 Several fixes in v8 emitter.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13806 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:10:27 +00:00
Oliver Buchtala
c4ab879027 Fix string warnings of for char* constants in CPP wrappers.
This has been done by changing the implementation of marshalOutputArgs,
which now does not create a local result variable in this case, and
uses the constant inline in the output typemap.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13805 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:10:10 +00:00
Oliver Buchtala
58e4f9703c Fix handling of Char constants in JSC typemaps.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13804 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:09:57 +00:00
Oliver Buchtala
915e65135c Minor fix in v8 shell.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13803 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:09:43 +00:00
Oliver Buchtala
c3918f3f82 Add string support to v8 typemaps.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:09:31 +00:00
Oliver Buchtala
bd752ff86b In example Makefiles for v8 forward to CPP target.
As v8 is C++ it is not possible to build wrappers in C.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13801 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:09:18 +00:00
Oliver Buchtala
1862f43cfc Minor clean up in class example.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13800 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:09:05 +00:00