Browse Source

Mention setExceptionProxyFactory in README

Stefan Siegl 2 years ago
parent
commit
abb8b6df14
1 changed files with 14 additions and 0 deletions
  1. 14 0
      README.md

+ 14 - 0
README.md

@@ -104,6 +104,15 @@ class V8Js
     public function setModuleNormaliser(callable $normaliser)
     public function setModuleNormaliser(callable $normaliser)
     {}
     {}
 
 
+    /**
+     * Provate a function or method to be used to convert/proxy PHP exceptions to JS.
+     * This can be any valid PHP callable.
+     * The factory function will receive the PHP Exception instance that has not been caught and is
+     * due to be forwarded to JS.
+     */
+    public function setExceptionProxyFactory(callable $factory)
+    {}
+
     /**
     /**
      * Compiles and executes script in object's context with optional identifier string.
      * Compiles and executes script in object's context with optional identifier string.
      * A time limit (milliseconds) and/or memory limit (bytes) can be provided to restrict execution. These options will throw a V8JsTimeLimitException or V8JsMemoryLimitException.
      * A time limit (milliseconds) and/or memory limit (bytes) can be provided to restrict execution. These options will throw a V8JsTimeLimitException or V8JsMemoryLimitException.
@@ -401,3 +410,8 @@ objects obeying the above rules and re-thrown in JavaScript context.  If they
 are not caught by JavaScript code the execution stops and a
 are not caught by JavaScript code the execution stops and a
 `V8JsScriptException` is thrown, which has the original PHP exception accessible
 `V8JsScriptException` is thrown, which has the original PHP exception accessible
 via `getPrevious` method.
 via `getPrevious` method.
+
+Consider that the JS code has access to methods like `getTrace` on the exception
+object.  This might be unwanted behaviour, if you execute untrusted code.
+Using `setExceptionProxyFactory` method a callable can be provided, that converts
+the PHP exception to not expose unwanted information.