Stefan Siegl
d97832d9fb
v8::Handle -> v8::Local
2017-03-11 13:31:40 +01:00
Stefan Siegl
288fe4d2a0
PHP Version 5 -> 7
2017-03-11 12:33:49 +01:00
Stefan Siegl
d2c171a83f
fix bound check: uint32_t -> int
2017-03-11 10:14:30 +01:00
Stefan Siegl
ab8613f41b
v8js_v8: add size check + precission down cast
2017-03-10 23:53:11 +01:00
Stefan Siegl
77e7338018
Don't try to guess if blob.bin files are needed
...
Search for them, if they exist, provide them to V8. Otherwise
try to go without them.
2016-12-05 16:29:03 +00:00
Stefan Siegl
5ae48bbda7
Fix refcounting, use zval_ptr_dtor, closes #250
2016-08-12 01:02:56 +02:00
Stefan Siegl
c459acd1ef
Merge remote-tracking branch 'origin/master' into php7
2016-07-02 22:59:33 +02:00
Stefan Siegl
3278be8bee
Add 'indent-tabs-mode: t' to file variables
2016-07-02 22:48:45 +02:00
Stefan Siegl
c4c5a19165
fix wrapped php object detection, closes #240
...
V8 since 5.3.337 returns InternalFieldCount() == -1 for
special objects like "arguments", which fulfilled the old
check.
2016-07-02 22:35:58 +02:00
Stefan Siegl
e9e90bac65
Merge remote-tracking branch 'origin/master' into php7
...
Conflicts:
config.w32
package.xml
php_v8js_macros.h
v8js.cc
v8js_array_access.cc
v8js_class.cc
v8js_convert.cc
v8js_exceptions.cc
v8js_object_export.cc
v8js_timer.cc
v8js_v8.cc
v8js_v8object_class.cc
2016-05-22 22:30:19 +02:00
Stefan Siegl
05b96a96b8
Use internal fields instead of GetHiddenValue/SetHiddenValue
...
The latter were deprecated and removed in V8 5.2
2016-05-22 15:20:52 +02:00
Stefan Siegl
4fea8f4fb9
Require V8 4.6.76 or higher
...
... 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.
2016-05-11 16:50:37 +02:00
Stefan Siegl
3dca462e9d
Use V8::LowMemoryNotification on V8 < 3.28.36
2016-03-26 14:11:20 +01:00
Stefan Siegl
b2eb89e49e
send LowMemoryNotification before imposing memory limit, fixes #217
2016-03-26 00:53:52 +01:00
Stefan Siegl
4faab8842c
Re-check memory limit, refs #217
2016-03-26 00:37:53 +01:00
Stefan Siegl
bf6effba63
Merge remote-tracking branch 'origin/master' into php7
2016-03-05 22:21:42 +01:00
Stefan Siegl
40f0f5e89f
Provide startup data loader for V8 < 4.6.76
2016-02-28 20:17:20 +01:00
Stefan Siegl
39062b4248
Test for snapshot support in V8
...
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.
2016-02-28 17:48:44 +01:00
Stefan Siegl
2c7a7ab87d
Implement PHP-side iteration of JS generator objects
2016-01-07 21:35:44 +01:00
Stefan Siegl
c2a2cc341f
Initialize libv8_platform for Windows as well
...
V8 doesn't work without libplatform anymore, even under
Windows.
Furthermore adapted two tests to \r\n vs. \n line
ending differences
2016-01-06 11:58:40 +00:00
Stefan Siegl
98205461be
Reorder includes for Visual Studio 2015, closes #194
...
C++ headers need to go first, since PHP headers redefine
"inline" which causes trouble with the C++ header files.
2016-01-06 09:01:35 +00:00
Stefan Siegl
a83c49266e
defer bailout until std::function dtor
...
std::function allocates some heap memory, at least with some
implementations and expects the dtor to run. Hence defer the
bailout until the dtor ran.
2016-01-01 19:10:04 +01:00
Stefan Siegl
a520f49335
exit v8::HandleScope and v8::IsolateScope before bailing out
...
This fixes some memory leaks.
2015-12-31 23:44:01 +01:00
Stefan Siegl
7e1f2e9355
Fix use-after-free error wrt. pending exception
...
Don't dtor pending exception, PHP's exception handling does after all.
2015-12-30 17:46:29 +01:00
Stefan Siegl
3085db6aeb
Merge remote-tracking branch 'origin/master' into php7
2015-10-11 19:51:59 +02:00
Stefan Siegl
b38c31b521
Remove v8::Debug agent stuff
...
Debug Agent support was removed from V8 with 3.28 line which
is pretty old meanwhile.
2015-10-11 19:47:22 +02:00
Stefan Siegl
5cba44ccd0
Merge remote-tracking branch 'origin/master' into php7
...
Conflicts:
README.md
v8js.cc
v8js_class.cc
v8js_exceptions.cc
v8js_object_export.cc
v8js_v8.cc
v8js_v8object_class.cc
2015-10-11 02:09:59 +02:00
Stefan Siegl
c6136ec3d2
Fix globals ptr passing wrt. timer thread
2015-09-28 22:03:24 +02:00
Stefan Siegl
74440ed9f7
Move V8JSG extensions and v8_flags to process globals
2015-09-26 21:39:26 +02:00
Stefan Siegl
7d97c97d4c
Fix multi-threading, initialize V8 only once
2015-09-26 18:58:12 +02:00
Stefan Siegl
5f6d9aee2d
Don't terminate execution repeatedly
2015-09-22 22:36:50 +02:00
Stefan Siegl
592d6528ca
PHP7 adapt: fix zend_string memory leaks
2015-08-30 00:26:55 +02:00
Stefan Siegl
fd6eeddc52
Adapt to PHP7
2015-08-29 17:48:26 +02:00
Stefan Siegl
2d0aa9b2cc
adapt PHPJS_OBJECT_KEY from zval* to zend_object*
2015-08-24 21:13:35 +02:00
Stefan Siegl
f7c33539c2
Improve PHP->JS->PHP exception back propagation
2015-08-23 15:09:21 +02:00
Stefan Siegl
f7a592052f
Store flags in v8js_ctx class instead of v8 hidden value
2015-08-21 16:12:12 +02:00
Stefan Siegl
187b97060f
Stop JS execution on PHP exceptions, refs #144
2015-08-21 15:55:52 +02:00
Stefan Siegl
4650273c90
Shutdown V8 on GSHUTDOWN
2015-08-02 19:42:03 +02:00
Stefan Siegl
5018192123
Move libplatform.h include farther down
...
If it is included before php.h, PHP_V8_API_VERSION is not
defined if V8Js is built as a PHP built-in extension.
2015-08-02 18:15:28 +02:00
Stefan Siegl
90c3b9db5f
Fix debug build; move debug stuff into seperate files
2015-03-11 14:06:21 +01:00
Stefan Siegl
5b4aaa64f1
More php_v8js_ prefix cleanup
2014-12-13 01:37:25 +01:00
Stefan Siegl
2954de2db5
Remove php_ prefix to struct & type names
2014-12-13 01:18:42 +01:00
Stefan Siegl
6869d318b3
Rename V8Object stuff to v8js_v8object_XXX
2014-12-13 00:28:09 +01:00
Stefan Siegl
5ea36016fe
code cleanup, part 1
...
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.
2014-12-13 00:11:02 +01:00