// executes the given code and handles the result var run = function(code) { var result = { input: code, output: null, error: null }; try { result.output = stringify(runHidden(code)); } catch(e) { result.error = e.message; } application.remote.output(result); }; // protects even the worker scope from being accessed var runHidden = function(code) { var indexedDB = null; var location = null; var navigator = null; var onerror = null; var onmessage = null; var performance = null; var self = null; var webkitIndexedDB = null; var postMessage = null; var close = null; var openDatabase = null; var openDatabaseSync = null; var webkitRequestFileSystem = null; var webkitRequestFileSystemSync = null; var webkitResolveLocalFileSystemSyncURL = null; var webkitResolveLocalFileSystemURL = null; var addEventListener = null; var dispatchEvent = null; var removeEventListener = null; var dump = null; var onoffline = null; var ononline = null; var importScripts = null; var console = { panel: $(parent.document.body).append('