/** * Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ onmessage = function (event) { // TEST: does console exist? postMessage({ event: "console exists", status: !!console, last: false }); postMessage({ event: "console is the same object", status: console === console, last: false, }); postMessage({ event: "trace without function", status: true, last: false }); for (var i = 0; i < 10; ++i) { console.log(i, i, i); } function trace1() { function trace2() { function trace3() { console.trace("trace " + i); } trace3(); } trace2(); } trace1(); foobar585956c = function (a) { console.trace(); return a + "c"; }; function foobar585956b(a) { return foobar585956c(a + "b"); } function foobar585956a(omg) { return foobar585956b(omg + "a"); } function foobar646025(omg) { console.log(omg, "o", "d"); } function startTimer(timer) { console.time(timer); } function stopTimer(timer) { console.timeEnd(timer); } function timeStamp(label) { console.timeStamp(label); } function testGroups() { console.groupCollapsed("a", "group"); console.group("b", "group"); console.groupEnd(); } foobar585956a("omg"); foobar646025("omg"); timeStamp(); timeStamp("foo"); testGroups(); startTimer("foo"); setTimeout(function () { stopTimer("foo"); nextSteps(event); }, 10); }; function nextSteps(event) { function namelessTimer() { console.time(); console.timeEnd(); } namelessTimer(); var str = "Test Message."; console.log(str); console.info(str); console.warn(str); console.error(str); console.exception(str); console.assert(true, str); console.assert(false, str); console.profile(str); console.profileEnd(str); console.timeStamp(); console.clear(); postMessage({ event: "4 messages", status: true, last: false }); // Recursive: if (event.data == true) { var worker = new Worker("console_worker.js"); worker.onmessage = function (msg) { postMessage(msg.data); }; worker.postMessage(false); } else { postMessage({ event: "bye bye", status: true, last: true }); } }