<!DOCTYPE html>
<p>Tests that properties of CustomEvent initialized with initCustomEvent() are cloned when accessed in isolated worlds.</p>
<div id="main"></div>
<div id="isolated"></div>
<script>
testRunner.dumpAsText();
function addListener(worldType) {
document.getElementById(worldType).addEventListener("CustomEvent", function(event) {
console.log("CustomEvent received in " + worldType + " world");
console.log("detail was " + JSON.stringify(event.detail));
});
}
function sendCloneableObject(targetWorldType) {
var newEvent = document.createEvent("CustomEvent");
newEvent.initCustomEvent("CustomEvent", false, false, { foo: 5, bar: 'hello', targetWorld: targetWorldType });
document.getElementById(targetWorldType).dispatchEvent(newEvent);
}
var sendScript = "(" + sendCloneableObject.toString() + ")('main');";
addListener("main");
testRunner.evaluateScriptInIsolatedWorld(1, sendScript);
var receiveScript = "(" + addListener.toString() + ")('isolated');";
testRunner.evaluateScriptInIsolatedWorld(1, receiveScript);
sendCloneableObject("isolated");
</script>