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

396 Commits

Author SHA1 Message Date
Stefan Siegl
0ea210f94e Throw V8JsException if source is not a script 2014-12-11 18:05:37 +01:00
Stefan Siegl
c28c9f50f1 introduce V8JsException class 2014-12-11 18:00:43 +01:00
Stefan Siegl
2b4750748e Merge branch 'array-access'
Conflicts:
	v8js_convert.cc
2014-12-10 20:02:33 +01:00
Stefan Siegl
a7fbe9dde4 Fix path seperator for Windows 2014-12-10 19:46:15 +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
8b89a7b691 increase time limit to start engine 2014-12-10 19:27:04 +01:00
Stefan Siegl
1613570ced Add test on die() call, refs #122 2014-12-10 01:10:30 +01:00
Stefan Siegl
a2a9c30a11 Use zend_try/zend_catch to unwind v8 stack 2014-12-09 23:56:46 +00:00
Simon Best
dbea6fc122 Correct name of memory limit test. 2014-12-09 22:53:06 +01:00
Stefan Siegl
7ac12c4fbd Unwind stack after fatal error in V8Function, closes #130 2014-12-09 22:40:53 +01:00
Stefan Siegl
2252169a98 Use isolate->RequestInterrupt to get heap size 2014-12-09 01:08:16 +01:00
Stefan Siegl
0004626015 Make time limit tests pass more safely 2014-12-09 01:06:46 +01:00
Stefan Siegl
b6fb9acc65 Remove set_memory_limit_002 test
The test is unfortunately unstable as it somehow depends on CPU speed.
v8 seems to precompute the result even so it hasn't reached the for
loop consuming the memory.

This can be proved easily by adding a sleep(1) call at the start of the
prolongTimeLimit function.  Then the memory limit is always tripped
even so v8 didn't have to do much until there
2014-12-07 16:52:10 +01:00
Stefan Siegl
e85b095282 Add test showing that time limits can be prolonged 2014-12-07 16:44:54 +01:00
Stefan Siegl
c17208c9c0 Allow to impose memory & time limits 2014-12-07 16:44:54 +01:00
Stefan Siegl
8945357d76 Allow to change & reset memory limits 2014-12-07 16:44:52 +01:00
Stefan Siegl
daf8788e0f Allow to change & reset time limits 2014-12-07 16:05:58 +01:00
Stefan Siegl
ab6df6f14f Use std::deque for timer_stack
In order to update limits at runtime we need the stack to be iterable.
2014-12-07 15:54:37 +01:00
Stefan Siegl
e617662293 Always push timer on stack to allow updates 2014-12-07 15:49:56 +01:00
Stefan Siegl
2a1ae43496 Use prologues for V8Function calls, closes #129 2014-12-07 15:19:47 +01:00
Stefan Siegl
acd00af78a Refactor v8 call prologue/epilogue into function 2014-12-07 14:08:01 +01:00
Stefan Siegl
3a1f3e5237 Add setMemoryLimit & setTimeLimit setter methods 2014-12-07 13:25:52 +01:00
Stefan Siegl
0023c03280 Use v8::TryCatch if calling V8Function, refs #127 2014-12-01 22:12:22 +01:00
Stefan Siegl
38bc89e10a Once more fix ZTS build 2014-11-30 22:34:24 +00:00
Stefan Siegl
dba4da9b8b Refactor PHP method call code 2014-11-30 23:30:28 +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
8550dcb5ca Mention array & object mapping 2014-11-30 19:25:08 +01:00
Stefan Siegl
35350f7642 Test __invoke handling on ArrayAccess objects 2014-11-29 21:34:17 +01:00
Stefan Siegl
d21896ab33 Test export of properties on ArrayAccess object
Private & protected properties shouldn't be accessible, also the
length property should not be overwritten by a length property of
the PHP object.
2014-11-29 21:30:44 +01:00
Stefan Siegl
5a11ef2468 Test ArrayAccess prototype method overwriting
If the PHP object implementing ArrayAccess has a method,
that has the same name as one of the Array.prototype methods,
the PHP method shall be called, i.e. overwrite the JS method.
2014-11-29 21:28:21 +01:00
Stefan Siegl
b25960786d Remove count() echo statements
These cause the test to fail on old v8 versions like 3.24.10
since the Array.prototype.push implementation calls count() twice
with that version (causing a second echo-line that makes the
test fail).
2014-11-29 20:23:23 +00: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
Stefan Siegl
d494a22644 Use hidden value instead of internal field
Just a preparation to mix the array access stuff with the name-based
property accessors.
2014-11-29 15:16:58 +01:00
Stefan Siegl
5135afa67e Add ArrayAccess test with native JS push method 2014-11-29 13:41:35 +01:00
Stefan Siegl
1b64a92c8d Add test on ArrayAccess live binding 2014-11-29 13:25:01 +01:00
Stefan Siegl
ff194ba6c1 Add v8js_array_access.cc to Win32 build files 2014-11-26 00:15:55 +01:00
Stefan Siegl
94a889b2cb Fix ZTS build + memory leak 2014-11-25 22:55:17 +00:00
Stefan Siegl
1efd91b29a Add array access offsetSet support 2014-11-25 23:43:21 +01:00
Stefan Siegl
66b42ce080 Add slice call to array_access test 2014-11-25 21:18:00 +01:00
Stefan Siegl
ddcaee47d6 Refactor array access code into seperate files 2014-11-25 21:06:11 +01:00
Stefan Siegl
1121d5f4d0 Skip unnecessary v8::FunctionTemplate fluff 2014-11-23 23:49:36 +01:00
Stefan Siegl
3f6ea8fcfd Set Array.prototype on ArrayAccess wrapped object 2014-11-23 23:47:29 +01:00
Stefan Siegl
f1dd5ad23b Add basic ArrayAccess wrapping 2014-11-23 23:39:15 +01:00
Stefan Siegl
6d43ec6dbc Fix exception_clearing test wrt. column numbers 2014-11-22 18:58:05 +01:00
Stefan Siegl
654a8b8039 Merge branch 'issue-126' 2014-11-22 13:27:26 +01:00