0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-11-10 03:48:42 +00:00
Commit Graph

100 Commits

Author SHA1 Message Date
Stefan Siegl
6ee72b6f0a Use concurrency::wait on Windows to sleep.
The chrono + sleep_for implementation seems not to work,
due to bugs in chrono header file.  And after all sleep_for
calculates a time_point for sleep_until, which calculates
the delta again and finally passes the number of
milliseconds to concurrency::wait ...
2014-11-14 00:08:30 +01:00
Stefan Siegl
449d66ca01 Don't force garbage collection on shutdown.
Doing so causes crashes on Windows and isn't needed anymore
anyways, since we have started tracking weak references
meanwhile.
2014-11-14 00:05:58 +01:00
Stefan Siegl
d03641254d Use alloca for variable-size array on stack 2014-11-13 01:21:15 +01:00
Stefan Siegl
83a17b5e6a libplatform stuff not needed on Windows 2014-11-13 00:31:26 +01:00
Stefan Siegl
c339d51924 Drop old-age PHP_V8_API_VERSION #ifdef 2014-10-19 12:20:10 +00:00
Stefan Siegl
f6310f9994 Get rid of V8JS_NEW macro. 2014-10-19 11:58:21 +00:00
Stefan Siegl
16af153c3e Merge branch 'cscott/issue-64' (ctx_lifecycle test).
Test adapted to current behaviour of V8Js, that the situation is
properly handled, but not by keeping objects valid, but by
invalidating all of them.
2014-10-18 20:28:06 +00:00
Stefan Siegl
7d13c75073 efree resource memory 2014-09-20 22:52:48 +02:00
Stefan Siegl
d8a6467903 TSRM/ZTS fixes 2014-09-20 22:52:47 +02:00
Stefan Siegl
47b433efe8 Restore clean unwind state after unwinding. 2014-09-20 18:42:09 +00:00
Stefan Siegl
c91f96a439 Merge pull request #108 from stesie/fix-commonjs-module-reuse
Fix module caching, closes #107
2014-09-20 15:05:31 +02:00
Stefan Siegl
11f7311ab8 Use php_v8js_compile_script for checkString. 2014-09-20 12:22:56 +00:00
Stefan Siegl
9cb3711c66 Merge remote-tracking branch 'rosmo/compile-script-201409', closes #95 2014-09-20 12:22:31 +00:00
Stefan Siegl
eda74908cc Fix module caching, closes #107
Use v8::Persistent handle to keep module instances around.

Objects cannot be shared between isolates anyhow, hence moved
modules_loaded map from global V8JSG structure to php_v8js_ctx.

Besides fixes a use-after-free on normalised_module_id.
2014-09-19 22:36:27 +00:00
Stefan Siegl
06371e4126 Include libplatform.h only for v8 >= 3.29.36 2014-09-17 16:47:33 +02:00
Stefan Siegl
14600d3be3 Initialize v8 platform as needed
See http://comments.gmane.org/gmane.comp.lang.javascript.v8.general/8029
for more information.
2014-09-17 00:45:24 +02:00
Taneli Leppa
200c16c30e Fixed script destructor and free resource struct when done. 2014-09-16 17:11:13 +03:00
Taneli Leppa
de8b0666a6 Some changes to how V8 contexts are managed. 2014-09-16 17:10:18 +03:00
Taneli Leppa
7310c93c1e Deprecate V8Js::checkString() in favour of compileString() and add tests. 2014-09-16 17:10:15 +03:00
Taneli Leppa
bd7d649d90 Added new functions V8Js::compileString() and V8Js::executeScript().
Conflicts:

	php_v8js_macros.h
2014-09-16 17:09:58 +03:00
Stefan Siegl
ebcb6dc211 Keep track of V8Object/V8Function instances
Disallow access to these once the V8Js object has been destroyed.
2014-08-11 03:11:02 +02:00
Stefan Siegl
a72a180596 Keep a list of disposed isolates and make sure not to use disposed isolates. 2014-08-10 23:48:54 +02:00
Stefan Siegl
133ad4a7b5 Merge remote-tracking branch 'rosmo/dispose-isolate' 2014-08-10 22:13:47 +02:00
Stefan Siegl
137a6732c6 IdleNotification is on Isolate now 2014-08-10 13:36:07 +02:00
Stefan Siegl
e25e5264f6 Make compatible with V8 3.28.23, fixes #99 2014-08-10 11:57:20 +02:00
Taneli Leppa
dbe477fc8e Exit current isolate on fatal V8 error. 2014-07-01 10:48:06 +03:00
Taneli Leppa
03728d8bbd Dispose isolate when freeing V8Js object. 2014-07-01 09:20:45 +03:00
Stefan Siegl
847ac7677c Initialize V8JSG(old_error_handler) on ZTS, refs #94 2014-05-23 00:06:28 +02:00
Stefan Siegl
659c0fb601 Code folding marks and comments 2014-04-13 22:59:35 +02:00
Stefan Siegl
35d8b815f8 Store error message and re-throw with original type & message 2014-04-13 21:46:31 +02:00
Stefan Siegl
dfd8a1f386 Use V8JSG instead of global variable. 2014-04-12 09:22:58 +02:00
Stefan Siegl
a49fa8ce02 Unwind V8 execution context on fatal error, refs #87
This is yet a first hack to prove applicability.  Currently
unwind environment is held in a global variable, i.e. solution
is neither thread safe nor reentrant yet.
2014-04-12 00:02:43 +02:00
Stefan Siegl
c866e67313 Call INIT_ZVAL on stack-allocated zval 2014-04-11 20:15:51 +02:00
Stefan Siegl
0355a95c78 Fix strdup+getenv behaviour; multi api version support, closes #86 2014-03-22 19:09:53 +01:00
Stefan Siegl
ddbef50ea6 Merge remote-tracking branch 'rosmo/master' 2014-03-22 18:44:13 +01:00
Stefan Siegl
1186e7951f Make compatible with V8 3.25.12, fixes #88 2014-03-22 17:58:38 +01:00
Stefan Siegl
bc86ce9e44 Clear persistent cells with weak references correctly, refs #88 2014-03-22 17:41:00 +01:00
Stefan Siegl
4c64bc4ad9 Make compatible with V8 3.24.10, fixes #83 2014-03-22 00:07:53 +01:00
Taneli Leppa
da53c90f88 Added new "v8js.use_date" ini setting to convert PHP DateTime objects to Javascript Date objects
when set as V8JS object properties.
2014-03-20 16:06:18 +02:00
Taneli Leppa
0a85d27ee7 V8 needs to be notified when timezone changes. Keep track of timezone changes and notify it.
Also added a test.
2014-03-20 11:20:59 +02:00
Taneli Leppa
dd20670546 When passing objects from JS to PHP with mixed keys, some of the keys
might get lost or "re-indexed". This fixes it and adds two tests.
2014-03-20 10:35:05 +02:00
Taneli Leppa
54621e18f3 Added checkString() method for checking Javascript syntax. 2014-03-19 17:00:28 +02:00
Stefan Siegl
1e773dd4a8 Make compatible with V8 3.23.8 (and below) 2013-12-21 20:54:55 +01:00
Stefan Siegl
69290b5779 Fix build against libv8 3.24.5 2013-12-21 01:18:08 +01:00
C. Scott Ananian
2fe87a4cbc Protect against direct invocation of new V8Object and new V8Function.
This fixes issue #75.
2013-10-29 15:37:04 -04:00
C. Scott Ananian
24257b54af Free php_v8js_accessor_ctx when we are done with it. 2013-10-27 02:49:24 -04:00
C. Scott Ananian
3f77a5a356 Make PHP object accessors typesafe using V8::AccessorSignature.
This ensures that if you copy the accessor to another object you can't
trigger a segfault.
2013-10-27 02:49:24 -04:00
C. Scott Ananian
57348c5f7d Fix double-pop of timer_ctx (and efree from wrong thread).
The timer_ctx was being popped & freed in terminate_execution, from the
timer thread (not the main thread), and then popped again in the main
thread when execution was aborted.  Do all pop/free work in main thread.
Also, remember to pop the timer_ctx when just a memory limit is set.
2013-10-27 02:48:52 -04:00
C. Scott Ananian
dba6322812 Fix memory leak: The get_properties handler owns the returned hashtable. 2013-10-26 23:14:39 -04:00
C. Scott Ananian
b4d560dd52 Fix a bunch of memory leaks.
Found by compiling PHP with --enable-debug.
2013-10-26 23:14:39 -04:00