0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-12-24 16:21:52 +00:00
Commit Graph

44 Commits

Author SHA1 Message Date
Stefan Siegl
888684b483 use v8::Global instead of v8::Persistent 2024-09-27 23:27:59 +02:00
Stefan Siegl
7887ec6475 Merge branch 'php7' into php8 2023-02-03 19:25:54 +01:00
Stefan Siegl
4bfe2ef3ce rename to setExceptionFilter 2022-06-24 12:04:11 +02:00
Stefan Siegl
ac2b1cb238 introduce setExceptionProxyFactory 2022-06-01 08:04:41 +02:00
Stefan Siegl
f6a93c3cd6 Remove support for uncaught exceptions. Use try/catch. 2022-05-31 09:53:09 +02:00
Stefan Siegl
748310c894 Merge branch 'php7' of https://github.com/phpv8/v8js into php8 2022-05-30 14:29:37 +02:00
Stefan Siegl
10cd73a03d eliminate PHP_VERSION_ID checks for < 80000 etc 2022-05-30 14:11:28 +02:00
Stefan Siegl
3257a86bef hold extra reference on v8 instance as long as we call into V8, closes #472 2022-05-29 21:48:47 +02:00
Albert
97cc819ade support php8 2021-06-03 09:33:51 +08:00
Stefan Siegl
35398cc4e3
add zend_class_entry* to method_tmpls key, fixes #410 2019-06-22 19:15:05 +02:00
Stefan Siegl
313ad1e258
cleanup: remove no longer needed modules_base from ctx, refs #349 2018-02-01 19:43:36 +01:00
Stefan Siegl
1c7e355937
allow modules to return arbitrary values 2017-11-12 16:26:18 +01:00
Stefan Siegl
bd730068a2
use ObjectTemplate as base for global object 2017-11-12 15:24:30 +01:00
Stefan Siegl
7a947fe9d1
rename v8js_tmpl_t -> v8js_function_tmpl_t 2017-11-12 15:22:39 +01:00
Stefan Siegl
f02b44b3f8 make memory_limit a size_t internally 2017-03-11 17:57:33 +01:00
Stefan Siegl
3e8ef5f684 remove V8JS_TSRMLS_FETCH 2017-03-11 13:43:30 +01:00
Stefan Siegl
288fe4d2a0 PHP Version 5 -> 7 2017-03-11 12:33:49 +01: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
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
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
12903ca269 add V8Js::setAverageObjectSize method 2016-03-08 09:28:16 +01:00
Stefan Siegl
bf6effba63 Merge remote-tracking branch 'origin/master' into php7 2016-03-05 22:21:42 +01:00
Stefan Siegl
930b450d99 refcount on snapshot_blob zval 2016-03-05 17:12:36 +01:00
Stefan Siegl
d0e78019aa Allow snapshot creation & use with V8 > 4.3.7
This does *not* seem to depend on whether V8 itself was compiled
with support for snapshots or not.

Therefore use PHP_V8_USE_EXTERNAL_STARTUP_DATA only to mark
whether we need to provide external snapshot data to V8.
2016-03-05 17:12:36 +01:00
Stefan Siegl
93d3f9591f Add CreateParams fields in v8js_ctx only if needed 2016-02-28 20:17:56 +01:00
Stefan Siegl
b405a34690 Allow to create snapshots and re-use them 2016-02-28 17:00:47 +01:00
Stefan Siegl
2d34adb91f Merge remote-tracking branch 'origin/master'
This primarily ports features introduced with V8Js 0.4.0
to the PHP7 branch.
2015-12-31 20:25:24 +01:00
Stefan Siegl
67a9de01bd Allow custom module normalisation 2015-12-06 13:55:13 +01: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
83f51e5021 Merge pull request #156 from stesie/php-exception-behaviour
PHP->JS exception propagation
2015-09-23 19:40:23 +02:00
Stefan Siegl
71f4b7ba05 Cache pseudo-Array FunctionTemplate as well 2015-09-01 15:53:21 +02:00
Stefan Siegl
916e068c4a PHP7 adapt v8js_object_export.cc 2015-08-29 11:57:53 +02:00
Stefan Siegl
78dd0a9ff0 Cache v8::FunctionTemplates created by v8js_named_property_callback 2015-08-27 14:46:27 +02:00
Stefan Siegl
3fa38e7b87 v8js_class.cc pt.2 for PHP7, zend_object_store_get_object stuff & script resource 2015-08-25 00:24:04 +02:00
Stefan Siegl
a10e601af3 adapt v8js_ctx custom object creation to PHP7 API 2015-08-24 22:19:15 +02:00
Stefan Siegl
f6105ff3cf v8js_class pt.1: pending_exception, module_loader, weak_objects, jsext 2015-08-24 22:05:27 +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
829bac9ddc Merge pull request #150 from stesie/issue-140
Fix module caching & memory leaks
2015-08-03 08:40:26 +02:00
Stefan Siegl
0deb7d1802 Track list of valid script object in ctx
We don't know whether the V8Js object dtor or the script (resource)
dtor is called first.  Nevertheless they depend on each other as
we must not simply Reset the persistent v8::Script if the v8::Isolate
was disposed before.

Now the V8Js dtor iterates over all script resources and resets the
persistent v8::Script instances; leaving an invalidated resource
object (which cannot be called anymore).
2015-08-02 23:35:47 +02:00
Stefan Siegl
3d89f0250d Provide key compare function for modules_loaded
Without the compare function std::map simply compares one
pointer to another.  However we need to compare the actual
strings.

Besides we must not efree normalised_module_id on return
of require method, since the pointer was added to
modules_loaded (and is valid until destruction of V8Js
class); instead it is now freed during V8Js object destruction.
2015-08-01 17:49:11 +02:00
Stefan Siegl
2954de2db5 Remove php_ prefix to struct & type names 2014-12-13 01:18:42 +01:00
Stefan Siegl
d269809d8b Move types from php_v8js_macros.h to new headers 2014-12-13 00:43:19 +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