Worker.js - Hiding global variables
by James Greene
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/json2/20121008/json2.js"></script>
JavaScript
window.onerror = function(message, fileName, lineNo, colNo, error) {
message = typeof message !== "undefined" && message !== null ? message : "{{undefined}}";
fileName = typeof fileName !== "undefined" && fileName !== null ? fileName : "{{undefined}}";
lineNo = typeof lineNo !== "undefined" && lineNo !== null ? lineNo : "{{undefined}}";
colNo = typeof colNo !== "undefined" && colNo !== null ? colNo : "{{undefined}}";
error = typeof error !== "undefined" && error !== null ? error : "{{undefined}}";
console.log("WINDOW.ONERROR!\nMessage: " + message + "\nFile: " + fileName + "\nLine: " + lineNo + "\nColumn: " + colNo + "\nError: " + error);
};
var messages = [];
try {
function top() { }
var top = undefined;
if (typeof top === "undefined" &&
typeof window.top === "undefined" &&
typeof this.top === "undefined")
{
messages.push("Successfully hid: `top`");
}
else {
messages.push("Failed to hide: `top`");
}
}
catch (e) {
messages.push("ERROR! Died while trying to hide `top`.\n" + e);
}
try {
function opener() { }
var opener = undefined;
if (typeof opener === "undefined" &&
typeof window.opener === "undefined" &&
typeof this.opener === "undefined")
{
messages.push("Successfully hid: `opener`");
}
else {
messages.push("Failed to hide: `opener`");
}
}
catch (e) {
messages.push("ERROR! Died while trying to hide `opener`.\n" + e);
}
try {
function parent() { }
var parent = undefined;
if (typeof parent === "undefined" &&
typeof window.parent === "undefined" &&
typeof this.parent === "undefined")
{
messages.push("Successfully hid: `parent`");
}
else {
messages.push("Failed to hide: `parent`");
}
}
catch (e) {
messages.push("ERROR! Died while trying to hide `parent`.\n" + e);
}
try {
function eval() { }
var eval = undefined;
if (typeof eval ===...