mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-20 06:07:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
46
dom/workers/test/recursion_worker.js
Normal file
46
dom/workers/test/recursion_worker.js
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
// This function should never run on a too much recursion error.
|
||||
onerror = function(event) {
|
||||
postMessage(event.message);
|
||||
};
|
||||
|
||||
// Pure JS recursion
|
||||
function recurse() {
|
||||
recurse();
|
||||
}
|
||||
|
||||
// JS -> C++ -> JS -> C++ recursion
|
||||
function recurse2() {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onreadystatechange = function() {
|
||||
xhr.open("GET", "nonexistent.file");
|
||||
}
|
||||
xhr.open("GET", "nonexistent.file");
|
||||
}
|
||||
|
||||
var messageCount = 0;
|
||||
onmessage = function(event) {
|
||||
switch (++messageCount) {
|
||||
case 2:
|
||||
recurse2();
|
||||
|
||||
// An exception thrown from an event handler like xhr.onreadystatechange
|
||||
// should not leave an exception pending in the code that generated the
|
||||
// event.
|
||||
postMessage("Done");
|
||||
return;
|
||||
|
||||
case 1:
|
||||
recurse();
|
||||
throw "Exception should have prevented us from getting here!";
|
||||
|
||||
default:
|
||||
throw "Weird number of messages: " + messageCount;
|
||||
}
|
||||
|
||||
throw "Impossible to get here!";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue