Stefan Siegl
b7dde1b1db
Handle thrown PHP objects, that are no exceptions
2015-08-23 17:40:27 +02:00
Stefan Siegl
f7c33539c2
Improve PHP->JS->PHP exception back propagation
2015-08-23 15:09:21 +02:00
Stefan Siegl
462eb623b3
Allow PHP exception to JS propagation
2015-08-22 15:16:02 +02:00
Stefan Siegl
187b97060f
Stop JS execution on PHP exceptions, refs #144
2015-08-21 15:55:52 +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
441f7b7fab
v8js_commonjs_split_terms: use pointer comparison instead of strlen
...
The strlen usage on term obviously was wrong here, since the term
string is not null-terminated at that place.
2015-08-01 19:54:23 +02:00
Stefan Siegl
ea3ec4bd65
Fix commonjs memory leaks (and increase test coverage to 100%)
2015-08-01 19:30:55 +02:00
Stefan Siegl
3324490a79
test issue_127_001.phpt doesn't depend on ext_json
2015-08-01 18:47:44 +02:00
Stefan Siegl
d8e239a756
test per isolate module cache seperation
2015-08-01 17:57:57 +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
34242c5d60
skip extensions_error test for v8 version < 3.30
2015-07-25 18:16:04 +02:00
Stefan Siegl
81018372e4
Adapt test to changed v8 error message
...
Added a "%s" so both messages are matched:
* Extension or internal compilation error: MakeReferenceError in handlebars at line 1.
* Extension or internal compilation error in handlebars at line 1.
2015-07-25 16:01:54 +02:00
Stefan Siegl
e67f1f4c9c
Fix handling of failed context creation, closes #136
2015-05-01 11:43:24 +02:00
Stefan Siegl
b350871795
Correctly force to array on property writing, closes #137
2015-04-26 13:49:13 +02:00
Stefan Siegl
af58f4ec9e
Catch serialization of V8Function instances
2014-12-11 22:28:01 +01:00
Stefan Siegl
73d022cca1
Test unserialization with properties
2014-12-11 22:15:38 +01:00
Stefan Siegl
c0d1e2fa6d
Catch serialization of V8Object instances
2014-12-11 20:58:53 +01:00
Stefan Siegl
1386c96d26
Catch serialization of V8Js object, closes #119
2014-12-11 19:30:06 +01:00
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
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
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
2a1ae43496
Use prologues for V8Function calls, closes #129
2014-12-07 15:19:47 +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
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
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
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
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
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
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