haikuwebkit/LayoutTests/userscripts/window-onerror-for-isolated...

79 lines
2.1 KiB
HTML
Raw Permalink Normal View History

window.onerror should pass the ErrorEvent's 'error' property as the 5th argument to the event handler https://bugs.webkit.org/show_bug.cgi?id=55092 <rdar://problem/25731279> Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-06-13 Reviewed by Dean Jackson. LayoutTests/imported/w3c: * web-platform-tests/html/dom/interfaces-expected.txt: Source/WebCore: This includes the actual Error in window.error / ErrorEvent: https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface This is useful for scripts to be able to get an error stack from uncaught exceptions, by checking the error itself. Tests: fast/events/window-onerror17.html http/tests/security/cross-origin-script-error-event-redirected.html http/tests/security/cross-origin-script-error-event.html http/tests/security/script-crossorigin-error-event-information.html http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html userscripts/window-onerror-for-isolated-world-3.html * CMakeLists.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: Add new custom error event file. * bindings/js/JSDOMBinding.cpp: (WebCore::reportException): Include the JSC::Exception when reporting exceptions, so the error value is available. * bindings/js/JSErrorEventCustom.cpp: (WebCore::JSErrorEvent::error): Sanitized access to the ErrorEvent's error property to prevent leaking objects across isolated world boundaries. This is like CustomEvent's data property. * bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::handleEvent): * bindings/js/JSErrorHandler.h: Include the error object as the 4th argument to the window.onerror event handler. * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::sanitizeScriptError): (WebCore::ScriptExecutionContext::reportException): (WebCore::ScriptExecutionContext::dispatchErrorEvent): * dom/ScriptExecutionContext.h: Include the error object in the ErrorEvent constructed when dispatching error events. * dom/ErrorEvent.cpp: (WebCore::ErrorEvent::ErrorEvent): (WebCore::ErrorEvent::sanitizedErrorValue): (WebCore::ErrorEvent::trySerializeError): * dom/ErrorEvent.h: * dom/ErrorEvent.idl: Include an any "error" property on the ErrorEvent, and allow it in initialization. * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Within the Worker world, the error is included in the event. When re-dispatching the error on the world object in the world that spawned the Worker the event does not include an error object. This matches other browsers right now, but could be improved to have the same cross world serialization as isolated worlds have with the error data. * dom/CustomEvent.h: Remove unimplemented stale method. LayoutTests: * platform/wk2/TestExpectations: Skip new userscript test on WebKit2 like others. * fast/events/constructors/error-event-constructor-expected.txt: * fast/events/constructors/error-event-constructor.html: Test for the new any "error" initialization property. * fast/events/event-leak-objects-expected.txt: * fast/events/event-leak-objects.html: * fast/events/event-properties-gc-expected.txt: * fast/events/event-properties-gc.html: Like CustomEvent.details, ErrorEvent.error should not leak objects across isolated worlds. * fast/events/window-onerror-exception-in-attr-expected.txt: * fast/events/window-onerror-exception-in-attr.html: * fast/events/window-onerror-syntax-error-in-attr-expected.txt: * fast/events/window-onerror-syntax-error-in-attr.html: * fast/events/window-onerror1-expected.txt: * fast/events/window-onerror1.html: * fast/events/window-onerror10-expected.txt: * fast/events/window-onerror10.html: * fast/events/window-onerror11-expected.txt: * fast/events/window-onerror11.html: * fast/events/window-onerror12-expected.txt: * fast/events/window-onerror12.html: * fast/events/window-onerror13.html: * fast/events/window-onerror14.html: * fast/events/window-onerror16.html: * fast/events/window-onerror17-expected.txt: Added. * fast/events/window-onerror17.html: Copied from LayoutTests/fast/events/window-onerror12.html. * fast/events/window-onerror2-expected.txt: * fast/events/window-onerror2.html: * fast/events/window-onerror3-expected.txt: * fast/events/window-onerror3.html: * fast/events/window-onerror4-expected.txt: * fast/events/window-onerror4.html: * fast/events/window-onerror5-expected.txt: * fast/events/window-onerror5.html: * fast/events/window-onerror6-expected.txt: * fast/events/window-onerror6.html: * fast/events/window-onerror7-expected.txt: * fast/events/window-onerror7.html: * fast/events/window-onerror8-expected.txt: * fast/events/window-onerror8.html: * fast/events/window-onerror9-expected.txt: * fast/events/window-onerror9.html: Include output for the column number and error object where possible. * fast/files/resources/setup-for-read-common.js: * fast/files/workers/worker-apply-blob-url-to-xhr.html: * fast/workers/resources/worker-error-in-handling-script-error.js: * fast/workers/resources/worker-script-error-bubbled.js: * fast/workers/resources/worker-script-error-handled.js: * fast/workers/resources/worker-script-error.js: * fast/workers/worker-script-error-expected.txt: Test "onerror" within Workers, and the "error" event on the Worker from the spawning context. * http/tests/security/cross-origin-script-error-event-expected.txt: Added. * http/tests/security/cross-origin-script-error-event-redirected-expected.txt: Added. * http/tests/security/cross-origin-script-error-event-redirected.html: Added. * http/tests/security/cross-origin-script-error-event.html: Added. * http/tests/security/cross-origin-script-window-onerror-expected.txt: * http/tests/security/cross-origin-script-window-onerror-redirected-expected.txt: * http/tests/security/cross-origin-script-window-onerror-redirected.html: * http/tests/security/cross-origin-script-window-onerror.html: * http/tests/security/script-crossorigin-error-event-information-expected.txt: Added. * http/tests/security/script-crossorigin-error-event-information.html: Added. * http/tests/security/script-crossorigin-onerror-information-expected.txt: * http/tests/security/script-crossorigin-onerror-information.html: * http/tests/security/script-no-crossorigin-error-event-should-be-sanitized-expected.txt: Added. * http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html: Copied from LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html. * http/tests/security/script-no-crossorigin-onerror-should-be-sanitized-expected.txt: * http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html: * http/tests/security/window-onerror-exception-in-iframe-expected.txt: * http/tests/security/window-onerror-exception-in-iframe.html: * http/tests/workers/worker-importScriptsOnError-expected.txt: * js/dom/exception-line-number-expected.txt: * js/dom/script-tests/exception-line-number.js: (window.onerror): * userscripts/window-onerror-for-isolated-world-1-expected.txt: * userscripts/window-onerror-for-isolated-world-1.html: * userscripts/window-onerror-for-isolated-world-2-expected.txt: * userscripts/window-onerror-for-isolated-world-2.html: * userscripts/window-onerror-for-isolated-world-3-expected.txt: Added. * userscripts/window-onerror-for-isolated-world-3.html: Added. Add an explicit test for error objects crossing isolated world boundaries. In the Isolated World case, serializable values are cloned, but unserializable values cause the error object to return to null to avoid leaking across worlds. Canonical link: https://commits.webkit.org/176802@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-06-14 03:28:10 +00:00
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<p>Test that window.onerror and "error" event listeners from main world are
invoked for uncaught exceptions in the main world, user scripts, isolated worlds.
The `error` object in the event is sanitized out across worlds.</p>
<div id="console"></div>
<script>
var recordCount = 0;
var expectedRecordCount = (2 * 2 * 3);
function checkEnd() {
recordCount++;
if (recordCount === expectedRecordCount)
testRunner.notifyDone();
}
function log(msg) {
var record = document.createElement("div");
record.textContent = msg;
document.getElementById("console").appendChild(record);
}
function header(msg) {
document.getElementById("console").append(document.createElement("br"), msg);
}
function lastUrlComponent(url) {
return url ? url.match( /[^\/]+\/?$/ )[0] : url;
}
window.onerror = function(msg, url, line, column, error) {
log("Main world window.onerror: " + msg + " at " + lastUrlComponent(url) + ":" + line + ":" + column + " " + error);
checkEnd();
return true;
}
window.addEventListener("error", function(e) {
log("Main world error event listener: " + e.message + " at " + lastUrlComponent(e.filename) + ":" + e.lineno + ":" + e.colno + " " + e.error);
checkEnd();
e.preventDefault();
});
function triggerExceptions(worldName)
{
// Serializable error data is fine.
setTimeout(function() {
throw "SerializableError from (" + worldName + ")";
}, 0);
// Non-serializable data should be null.
setTimeout(function() {
var globalObject = (1, eval)('this');
throw globalObject;
}, 0);
}
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
header("User Script");
testRunner.addUserScript("(" + triggerExceptions + ")('user script')", false, true);
setTimeout(function() {
header("Main World");
triggerExceptions("main world");
}, 100);
window.onerror should pass the ErrorEvent's 'error' property as the 5th argument to the event handler https://bugs.webkit.org/show_bug.cgi?id=55092 <rdar://problem/25731279> Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-06-13 Reviewed by Dean Jackson. LayoutTests/imported/w3c: * web-platform-tests/html/dom/interfaces-expected.txt: Source/WebCore: This includes the actual Error in window.error / ErrorEvent: https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface This is useful for scripts to be able to get an error stack from uncaught exceptions, by checking the error itself. Tests: fast/events/window-onerror17.html http/tests/security/cross-origin-script-error-event-redirected.html http/tests/security/cross-origin-script-error-event.html http/tests/security/script-crossorigin-error-event-information.html http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html userscripts/window-onerror-for-isolated-world-3.html * CMakeLists.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: Add new custom error event file. * bindings/js/JSDOMBinding.cpp: (WebCore::reportException): Include the JSC::Exception when reporting exceptions, so the error value is available. * bindings/js/JSErrorEventCustom.cpp: (WebCore::JSErrorEvent::error): Sanitized access to the ErrorEvent's error property to prevent leaking objects across isolated world boundaries. This is like CustomEvent's data property. * bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::handleEvent): * bindings/js/JSErrorHandler.h: Include the error object as the 4th argument to the window.onerror event handler. * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::sanitizeScriptError): (WebCore::ScriptExecutionContext::reportException): (WebCore::ScriptExecutionContext::dispatchErrorEvent): * dom/ScriptExecutionContext.h: Include the error object in the ErrorEvent constructed when dispatching error events. * dom/ErrorEvent.cpp: (WebCore::ErrorEvent::ErrorEvent): (WebCore::ErrorEvent::sanitizedErrorValue): (WebCore::ErrorEvent::trySerializeError): * dom/ErrorEvent.h: * dom/ErrorEvent.idl: Include an any "error" property on the ErrorEvent, and allow it in initialization. * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Within the Worker world, the error is included in the event. When re-dispatching the error on the world object in the world that spawned the Worker the event does not include an error object. This matches other browsers right now, but could be improved to have the same cross world serialization as isolated worlds have with the error data. * dom/CustomEvent.h: Remove unimplemented stale method. LayoutTests: * platform/wk2/TestExpectations: Skip new userscript test on WebKit2 like others. * fast/events/constructors/error-event-constructor-expected.txt: * fast/events/constructors/error-event-constructor.html: Test for the new any "error" initialization property. * fast/events/event-leak-objects-expected.txt: * fast/events/event-leak-objects.html: * fast/events/event-properties-gc-expected.txt: * fast/events/event-properties-gc.html: Like CustomEvent.details, ErrorEvent.error should not leak objects across isolated worlds. * fast/events/window-onerror-exception-in-attr-expected.txt: * fast/events/window-onerror-exception-in-attr.html: * fast/events/window-onerror-syntax-error-in-attr-expected.txt: * fast/events/window-onerror-syntax-error-in-attr.html: * fast/events/window-onerror1-expected.txt: * fast/events/window-onerror1.html: * fast/events/window-onerror10-expected.txt: * fast/events/window-onerror10.html: * fast/events/window-onerror11-expected.txt: * fast/events/window-onerror11.html: * fast/events/window-onerror12-expected.txt: * fast/events/window-onerror12.html: * fast/events/window-onerror13.html: * fast/events/window-onerror14.html: * fast/events/window-onerror16.html: * fast/events/window-onerror17-expected.txt: Added. * fast/events/window-onerror17.html: Copied from LayoutTests/fast/events/window-onerror12.html. * fast/events/window-onerror2-expected.txt: * fast/events/window-onerror2.html: * fast/events/window-onerror3-expected.txt: * fast/events/window-onerror3.html: * fast/events/window-onerror4-expected.txt: * fast/events/window-onerror4.html: * fast/events/window-onerror5-expected.txt: * fast/events/window-onerror5.html: * fast/events/window-onerror6-expected.txt: * fast/events/window-onerror6.html: * fast/events/window-onerror7-expected.txt: * fast/events/window-onerror7.html: * fast/events/window-onerror8-expected.txt: * fast/events/window-onerror8.html: * fast/events/window-onerror9-expected.txt: * fast/events/window-onerror9.html: Include output for the column number and error object where possible. * fast/files/resources/setup-for-read-common.js: * fast/files/workers/worker-apply-blob-url-to-xhr.html: * fast/workers/resources/worker-error-in-handling-script-error.js: * fast/workers/resources/worker-script-error-bubbled.js: * fast/workers/resources/worker-script-error-handled.js: * fast/workers/resources/worker-script-error.js: * fast/workers/worker-script-error-expected.txt: Test "onerror" within Workers, and the "error" event on the Worker from the spawning context. * http/tests/security/cross-origin-script-error-event-expected.txt: Added. * http/tests/security/cross-origin-script-error-event-redirected-expected.txt: Added. * http/tests/security/cross-origin-script-error-event-redirected.html: Added. * http/tests/security/cross-origin-script-error-event.html: Added. * http/tests/security/cross-origin-script-window-onerror-expected.txt: * http/tests/security/cross-origin-script-window-onerror-redirected-expected.txt: * http/tests/security/cross-origin-script-window-onerror-redirected.html: * http/tests/security/cross-origin-script-window-onerror.html: * http/tests/security/script-crossorigin-error-event-information-expected.txt: Added. * http/tests/security/script-crossorigin-error-event-information.html: Added. * http/tests/security/script-crossorigin-onerror-information-expected.txt: * http/tests/security/script-crossorigin-onerror-information.html: * http/tests/security/script-no-crossorigin-error-event-should-be-sanitized-expected.txt: Added. * http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html: Copied from LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html. * http/tests/security/script-no-crossorigin-onerror-should-be-sanitized-expected.txt: * http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html: * http/tests/security/window-onerror-exception-in-iframe-expected.txt: * http/tests/security/window-onerror-exception-in-iframe.html: * http/tests/workers/worker-importScriptsOnError-expected.txt: * js/dom/exception-line-number-expected.txt: * js/dom/script-tests/exception-line-number.js: (window.onerror): * userscripts/window-onerror-for-isolated-world-1-expected.txt: * userscripts/window-onerror-for-isolated-world-1.html: * userscripts/window-onerror-for-isolated-world-2-expected.txt: * userscripts/window-onerror-for-isolated-world-2.html: * userscripts/window-onerror-for-isolated-world-3-expected.txt: Added. * userscripts/window-onerror-for-isolated-world-3.html: Added. Add an explicit test for error objects crossing isolated world boundaries. In the Isolated World case, serializable values are cloned, but unserializable values cause the error object to return to null to avoid leaking across worlds. Canonical link: https://commits.webkit.org/176802@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-06-14 03:28:10 +00:00
setTimeout(function() {
header("Isolated World");
testRunner.evaluateScriptInIsolatedWorld(0, "(" + triggerExceptions + ")('isolated script')");
}, 200);
window.onerror should pass the ErrorEvent's 'error' property as the 5th argument to the event handler https://bugs.webkit.org/show_bug.cgi?id=55092 <rdar://problem/25731279> Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-06-13 Reviewed by Dean Jackson. LayoutTests/imported/w3c: * web-platform-tests/html/dom/interfaces-expected.txt: Source/WebCore: This includes the actual Error in window.error / ErrorEvent: https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface This is useful for scripts to be able to get an error stack from uncaught exceptions, by checking the error itself. Tests: fast/events/window-onerror17.html http/tests/security/cross-origin-script-error-event-redirected.html http/tests/security/cross-origin-script-error-event.html http/tests/security/script-crossorigin-error-event-information.html http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html userscripts/window-onerror-for-isolated-world-3.html * CMakeLists.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: Add new custom error event file. * bindings/js/JSDOMBinding.cpp: (WebCore::reportException): Include the JSC::Exception when reporting exceptions, so the error value is available. * bindings/js/JSErrorEventCustom.cpp: (WebCore::JSErrorEvent::error): Sanitized access to the ErrorEvent's error property to prevent leaking objects across isolated world boundaries. This is like CustomEvent's data property. * bindings/js/JSErrorHandler.cpp: (WebCore::JSErrorHandler::handleEvent): * bindings/js/JSErrorHandler.h: Include the error object as the 4th argument to the window.onerror event handler. * dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::sanitizeScriptError): (WebCore::ScriptExecutionContext::reportException): (WebCore::ScriptExecutionContext::dispatchErrorEvent): * dom/ScriptExecutionContext.h: Include the error object in the ErrorEvent constructed when dispatching error events. * dom/ErrorEvent.cpp: (WebCore::ErrorEvent::ErrorEvent): (WebCore::ErrorEvent::sanitizedErrorValue): (WebCore::ErrorEvent::trySerializeError): * dom/ErrorEvent.h: * dom/ErrorEvent.idl: Include an any "error" property on the ErrorEvent, and allow it in initialization. * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Within the Worker world, the error is included in the event. When re-dispatching the error on the world object in the world that spawned the Worker the event does not include an error object. This matches other browsers right now, but could be improved to have the same cross world serialization as isolated worlds have with the error data. * dom/CustomEvent.h: Remove unimplemented stale method. LayoutTests: * platform/wk2/TestExpectations: Skip new userscript test on WebKit2 like others. * fast/events/constructors/error-event-constructor-expected.txt: * fast/events/constructors/error-event-constructor.html: Test for the new any "error" initialization property. * fast/events/event-leak-objects-expected.txt: * fast/events/event-leak-objects.html: * fast/events/event-properties-gc-expected.txt: * fast/events/event-properties-gc.html: Like CustomEvent.details, ErrorEvent.error should not leak objects across isolated worlds. * fast/events/window-onerror-exception-in-attr-expected.txt: * fast/events/window-onerror-exception-in-attr.html: * fast/events/window-onerror-syntax-error-in-attr-expected.txt: * fast/events/window-onerror-syntax-error-in-attr.html: * fast/events/window-onerror1-expected.txt: * fast/events/window-onerror1.html: * fast/events/window-onerror10-expected.txt: * fast/events/window-onerror10.html: * fast/events/window-onerror11-expected.txt: * fast/events/window-onerror11.html: * fast/events/window-onerror12-expected.txt: * fast/events/window-onerror12.html: * fast/events/window-onerror13.html: * fast/events/window-onerror14.html: * fast/events/window-onerror16.html: * fast/events/window-onerror17-expected.txt: Added. * fast/events/window-onerror17.html: Copied from LayoutTests/fast/events/window-onerror12.html. * fast/events/window-onerror2-expected.txt: * fast/events/window-onerror2.html: * fast/events/window-onerror3-expected.txt: * fast/events/window-onerror3.html: * fast/events/window-onerror4-expected.txt: * fast/events/window-onerror4.html: * fast/events/window-onerror5-expected.txt: * fast/events/window-onerror5.html: * fast/events/window-onerror6-expected.txt: * fast/events/window-onerror6.html: * fast/events/window-onerror7-expected.txt: * fast/events/window-onerror7.html: * fast/events/window-onerror8-expected.txt: * fast/events/window-onerror8.html: * fast/events/window-onerror9-expected.txt: * fast/events/window-onerror9.html: Include output for the column number and error object where possible. * fast/files/resources/setup-for-read-common.js: * fast/files/workers/worker-apply-blob-url-to-xhr.html: * fast/workers/resources/worker-error-in-handling-script-error.js: * fast/workers/resources/worker-script-error-bubbled.js: * fast/workers/resources/worker-script-error-handled.js: * fast/workers/resources/worker-script-error.js: * fast/workers/worker-script-error-expected.txt: Test "onerror" within Workers, and the "error" event on the Worker from the spawning context. * http/tests/security/cross-origin-script-error-event-expected.txt: Added. * http/tests/security/cross-origin-script-error-event-redirected-expected.txt: Added. * http/tests/security/cross-origin-script-error-event-redirected.html: Added. * http/tests/security/cross-origin-script-error-event.html: Added. * http/tests/security/cross-origin-script-window-onerror-expected.txt: * http/tests/security/cross-origin-script-window-onerror-redirected-expected.txt: * http/tests/security/cross-origin-script-window-onerror-redirected.html: * http/tests/security/cross-origin-script-window-onerror.html: * http/tests/security/script-crossorigin-error-event-information-expected.txt: Added. * http/tests/security/script-crossorigin-error-event-information.html: Added. * http/tests/security/script-crossorigin-onerror-information-expected.txt: * http/tests/security/script-crossorigin-onerror-information.html: * http/tests/security/script-no-crossorigin-error-event-should-be-sanitized-expected.txt: Added. * http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html: Copied from LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html. * http/tests/security/script-no-crossorigin-onerror-should-be-sanitized-expected.txt: * http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html: * http/tests/security/window-onerror-exception-in-iframe-expected.txt: * http/tests/security/window-onerror-exception-in-iframe.html: * http/tests/workers/worker-importScriptsOnError-expected.txt: * js/dom/exception-line-number-expected.txt: * js/dom/script-tests/exception-line-number.js: (window.onerror): * userscripts/window-onerror-for-isolated-world-1-expected.txt: * userscripts/window-onerror-for-isolated-world-1.html: * userscripts/window-onerror-for-isolated-world-2-expected.txt: * userscripts/window-onerror-for-isolated-world-2.html: * userscripts/window-onerror-for-isolated-world-3-expected.txt: Added. * userscripts/window-onerror-for-isolated-world-3.html: Added. Add an explicit test for error objects crossing isolated world boundaries. In the Isolated World case, serializable values are cloned, but unserializable values cause the error object to return to null to avoid leaking across worlds. Canonical link: https://commits.webkit.org/176802@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202023 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-06-14 03:28:10 +00:00
</script>
</body>
</html>