... and hence remove all #ifdef hell. Those versions didn't have
security support by Google anyhow, and it helps to drastically
shrink the test matrix.
Looks like we have to test for internal functions unfortunately
since the public V8 snapshot API is available no matter whether
the library really supports it or not.
Just tested it, v8js builds correctly with 3.24.6 and fails to build
against 3.24.5 due to `RequestInterrupt' being undefined.
Syncing the check in config.m4 (used to test 3.21.12 or newer) against
README.md file (which stated 3.24.10 or newer).
Splits longish v8js.cc file into pieces. It used to contain the
definitions of all V8Js exception classes, the V8Js class itself as
well as the V8Object/V8Function classes... besides the module setup
code itself.
This change factors out all exception class definitions into a
seperate pair of files (v8js_exceptions.*).
The V8Js class definition itself is moved to v8js_class.* pair,
with the v8 init & call code moved to v8js_v8.* pair
and the watchdog timer to v8js_timer.* pair.
The V8Object/V8Function code was moved to v8js_v8object_class.*
pair, not differentiating between the two like before.
gcc 4.6 doesn't have the -std=c++11 option, it uses the not-yet-finalized
-std=c++0x option. Use whichever is found to be appropriate at configure
time.
The latest versions of v8 build libicu as well. If this isn't copied to
the lib directory, then the v8 version check fails (with a link error).
Ensure that this is caught at configuration time.
If you don't want to overwrite the system copy of v8 in /usr/lib/libv8.so,
you can use the --with-v8=<path> option to have php-v8js use its own
copy of libv8.
Note that threads are implemented using std::thread which is only available in C++0x. The relevant compile flags have been added but compiler support has not been tested and is therefore not guaranteed.