0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-11-09 23:08:41 +00:00
Commit Graph

108 Commits

Author SHA1 Message Date
Stefan Siegl
8668d28df3 Remove V8JS_CONST preprocessor define 2016-07-02 23:02:17 +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
2e5a565237 Remove (meanwhile) unreferenced local variables 2016-05-26 21:53:17 +02:00
Stefan Siegl
8287a19c8d Remove conditional compilation of generator support
All supported V8 versions (>= 4.6.76) have support for JS generators,
therefore it's no longer needed.
2016-05-22 23:47:36 +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
ec6c6d3eb3 Use WeakCallbackInfo
WeakCallbackData was deprecated and finally removed in V8 5.2
2016-05-22 20:08:28 +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
d44592910d Retain object indentity on 'return $this' 2016-03-25 19:15:25 +01:00
Stefan Siegl
d6394301b2 Pass back V8Object instances, don't re-wrap 2016-03-25 17:40:43 +01: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
89399fa961 Disable generator export for V8 < 3.30 (not supported) 2016-01-09 14:17:48 +01:00
Stefan Siegl
80575beecc Don't create v8::HandleScope in v8js_wrap_generator 2016-01-09 14:05:19 +01:00
Stefan Siegl
a18ae9e853 Implement JS-side wrapper around PHP Generator objects 2016-01-09 12:50:40 +01:00
Stefan Siegl
3508f0c8e7 export public methods of classes derived from \V8Js, closes #183 2016-01-08 15:42:43 +01:00
Stefan Siegl
38b9c053a1 Enable V8Generator support on V8 >= 3.30.0 2016-01-08 00:12:06 +01:00
Stefan Siegl
f97a25b69c Test & implement PHP-side instantiation of JS generators 2016-01-07 22:57:50 +01: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
2d9c831eeb Move zend_try block into v8::Unlocker block
If the v8::Unlocker block is within the zend_try block, then
v8::~Unlocker (dtor) is not called and hence V8 doesn't
re-aquire the lock.

Besides before we re-entered the isolate within zend_try
and hence *before* taking the lock.
2015-12-31 23:42:01 +01:00
Stefan Siegl
64bfa552ad Fix double free
Fix double free of `php_value` and free `php_ret_value` instead
(which otherwise leaks).
2015-12-30 15:54:47 +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
71c43b6377 don't declare v8js_named_property_callback inline 2015-10-02 22:09:56 +02:00
Stefan Siegl
fcb056b5a5 Handle access of undeclared properties 2015-09-28 22:57:00 +02:00
Stefan Siegl
4002c3c1ae pass const char* instead of zend_string* 2015-09-28 22:44:30 +02:00
Stefan Siegl
f22ce7046d Fix duplicate context declaration 2015-09-23 19:56:48 +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
8934db6dec Add v8js.compat_php_exceptions INI switch 2015-09-23 19:19:11 +02:00
Stefan Siegl
71f4b7ba05 Cache pseudo-Array FunctionTemplate as well 2015-09-01 15:53:21 +02:00
Stefan Siegl
794da39882 PHP7 adapt: handle ZEND_WRONG_PROPERTY_INFO special ptr 2015-08-30 02:08:38 +02:00
Stefan Siegl
1e8ce5a609 PHP7 adapt fix: use zend_hash_find_ptr on ce->function_table 2015-08-30 00:53:56 +02:00
Stefan Siegl
592d6528ca PHP7 adapt: fix zend_string memory leaks 2015-08-30 00:26:55 +02:00
Stefan Siegl
5477d780a3 PHP7 adapt v8js_v8object_class.cc 2015-08-29 16:47:37 +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
b8c9badddb Adapt v8js_class.cc to PHP7 API 2015-08-25 23:38:09 +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
2d0aa9b2cc adapt PHPJS_OBJECT_KEY from zval* to zend_object* 2015-08-24 21:13:35 +02:00
Stefan Siegl
8389e126b5 adapt to changed ZVAL_STRING/ZVAL_STRINGL/RETVAL_STRINGL macros 2015-08-23 21:14:49 +02:00
Stefan Siegl
462eb623b3 Allow PHP exception to JS propagation 2015-08-22 15:16:02 +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
b350871795 Correctly force to array on property writing, closes #137 2015-04-26 13:49:13 +02: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
f987cc7b4c Rename php_v8js_objects -> v8js_v8objects
* drop php_ prefix, currently used inconsistently anyways
* change "object" to "v8object" to clarify it's a JS object wrapped
  to a V8Object instance
2014-12-13 00:13:03 +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
Stefan Siegl
2b4750748e Merge branch 'array-access'
Conflicts:
	v8js_convert.cc
2014-12-10 20:02:33 +01:00
Stefan Siegl
603790f3dd Don't redefine default parameter
This compiles fine with gcc, but Visual C++ doesn't support it but
throws C2572 error instead.
See http://msdn.microsoft.com/en-us/library/acahh3ba.aspx
2014-12-10 19:41:59 +01:00
Stefan Siegl
901268994a Implement isset behaviour on ArrayAccess objects 2014-11-30 22:43:56 +01:00
Stefan Siegl
1b027a525f Implement delete behaviour on ArrayAccess objects 2014-11-30 22:31:27 +01:00
Stefan Siegl
6399b49b3f Improve ArrayAccess enumeration
When enumerating an ArrayAccess-style object the array keys should be
returned, not the method names & properties of the PHP object.
2014-11-30 21:00:42 +01:00
Stefan Siegl
27d326a196 Fix ZTS build 2014-11-29 19:49:44 +00:00
Stefan Siegl
2b897e8bc4 Export extra methods on ArrayAccess
This merges the distinct code path for the export of ArrayAccess
capable PHP objects back into the "common" PHP object export code.
Sole difference is that the ArrayAccess-style object has index
property handlers as well as property bridging to Array.prototype.
2014-11-29 20:35:32 +01:00
Stefan Siegl
02d8ecc16e Split php_v8js_hash_to_jsobj into smaller pieces
php_v8js_hash_to_jsobj is called for all wrapping to JS objects, be it
a PHP associative array or a PHP object.  I've now splitted both parts
into seperate functions since they don't share any code any longer
anyways.
2014-11-29 16:38:45 +01:00
Stefan Siegl
fc583a8ec6 Move PHP to JS object wrapping into seperate file 2014-11-29 15:42:41 +01:00