Skip to content

Instantly share code, notes, and snippets.

@akavel
Created January 28, 2021 08:28
Show Gist options
  • Save akavel/64d08b28eb0b3885ee4b7f49cd1408f1 to your computer and use it in GitHub Desktop.
Save akavel/64d08b28eb0b3885ee4b7f49cd1408f1 to your computer and use it in GitHub Desktop.
touch events in JS
This file has been truncated, but you can view the full file.
"touchstart", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
timeStamp: 5584.549999970477,
touches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
type: "touchstart",
view: [circular object Window],
which: 0
}
"touchstart", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5589.304999972228,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchstart",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5589.5199999795295,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5598.950000014156,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
item: function item() { [native code] },
length: 1
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5619.424999982584,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5629.160000011325,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5649.090000020806,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5658.984999987297,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5678.865000023507,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;",
outerText: "",
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
part: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
prefix: null,
prepend: function prepend() { [native code] },
previousElementSibling: null,
previousSibling: [object DocumentType] {
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
appendChild: function appendChild() { [native code] },
ATTRIBUTE_NODE: 2,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
CDATA_SECTION_NODE: 4,
childNodes: [object NodeList] { ... },
cloneNode: function cloneNode() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
contains: function contains() { [native code] },
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
ELEMENT_NODE: 1,
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: null,
getRootNode: function getRootNode() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lastChild: null,
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
name: "html",
nextSibling: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
nodeName: "html",
nodeType: 10,
nodeValue: null,
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
ownerDocument: [circular object HTMLDocument],
parentElement: null,
parentNode: [circular object HTMLDocument],
previousSibling: null,
PROCESSING_INSTRUCTION_NODE: 7,
publicId: "",
remove: function remove() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceWith: function replaceWith() { [native code] },
systemId: "",
TEXT_NODE: 3,
textContent: null
},
PROCESSING_INSTRUCTION_NODE: 7,
querySelector: function querySelector() { [native code] },
querySelectorAll: function querySelectorAll() { [native code] },
releasePointerCapture: function releasePointerCapture() { [native code] },
remove: function remove() { [native code] },
removeAttribute: function removeAttribute() { [native code] },
removeAttributeNode: function removeAttributeNode() { [native code] },
removeAttributeNS: function removeAttributeNS() { [native code] },
removeChild: function removeChild() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
replaceChild: function replaceChild() { [native code] },
replaceChildren: function replaceChildren() { [native code] },
replaceWith: function replaceWith() { [native code] },
requestFullscreen: function requestFullscreen() { [native code] },
requestPointerLock: function requestPointerLock() { [native code] },
scroll: function scroll() { [native code] },
scrollBy: function scrollBy() { [native code] },
scrollHeight: 214,
scrollIntoView: function scrollIntoView() { [native code] },
scrollIntoViewIfNeeded: function scrollIntoViewIfNeeded() { [native code] },
scrollLeft: 0,
scrollTo: function scrollTo() { [native code] },
scrollTop: 0,
scrollWidth: 474,
setAttribute: function setAttribute() { [native code] },
setAttributeNode: function setAttributeNode() { [native code] },
setAttributeNodeNS: function setAttributeNodeNS() { [native code] },
setAttributeNS: function setAttributeNS() { [native code] },
setPointerCapture: function setPointerCapture() { [native code] },
shadowRoot: null,
slot: "",
spellcheck: true,
style: [object CSSStyleDeclaration] {
alignContent: "",
alignItems: "",
alignmentBaseline: "",
alignSelf: "",
all: "",
animation: "",
animationDelay: "",
animationDirection: "",
animationDuration: "",
animationFillMode: "",
animationIterationCount: "",
animationName: "",
animationPlayState: "",
animationTimingFunction: "",
appearance: "",
ascentOverride: "",
backdropFilter: "",
backfaceVisibility: "",
background: "",
backgroundAttachment: "",
backgroundBlendMode: "",
backgroundClip: "",
backgroundColor: "",
backgroundImage: "",
backgroundOrigin: "",
backgroundPosition: "",
backgroundPositionX: "",
backgroundPositionY: "",
backgroundRepeat: "",
backgroundRepeatX: "",
backgroundRepeatY: "",
backgroundSize: "",
baselineShift: "",
blockSize: "",
border: "",
borderBlock: "",
borderBlockColor: "",
borderBlockEnd: "",
borderBlockEndColor: "",
borderBlockEndStyle: "",
borderBlockEndWidth: "",
borderBlockStart: "",
borderBlockStartColor: "",
borderBlockStartStyle: "",
borderBlockStartWidth: "",
borderBlockStyle: "",
borderBlockWidth: "",
borderBottom: "",
borderBottomColor: "",
borderBottomLeftRadius: "",
borderBottomRightRadius: "",
borderBottomStyle: "",
borderBottomWidth: "",
borderCollapse: "",
borderColor: "",
borderImage: "",
borderImageOutset: "",
borderImageRepeat: "",
borderImageSlice: "",
borderImageSource: "",
borderImageWidth: "",
borderInline: "",
borderInlineColor: "",
borderInlineEnd: "",
borderInlineEndColor: "",
borderInlineEndStyle: "",
borderInlineEndWidth: "",
borderInlineStart: "",
borderInlineStartColor: "",
borderInlineStartStyle: "",
borderInlineStartWidth: "",
borderInlineStyle: "",
borderInlineWidth: "",
borderLeft: "",
borderLeftColor: "",
borderLeftStyle: "",
borderLeftWidth: "",
borderRadius: "",
borderRight: "",
borderRightColor: "",
borderRightStyle: "",
borderRightWidth: "",
borderSpacing: "",
borderStyle: "",
borderTop: "",
borderTopColor: "",
borderTopLeftRadius: "",
borderTopRightRadius: "",
borderTopStyle: "",
borderTopWidth: "",
borderWidth: "",
bottom: "",
boxShadow: "",
boxSizing: "",
breakAfter: "",
breakBefore: "",
breakInside: "",
bufferedRendering: "",
captionSide: "",
caretColor: "",
clear: "",
clip: "",
clipPath: "",
clipRule: "",
color: "",
colorInterpolation: "",
colorInterpolationFilters: "",
colorRendering: "",
colorScheme: "",
columnCount: "",
columnFill: "",
columnGap: "",
columnRule: "",
columnRuleColor: "",
columnRuleStyle: "",
columnRuleWidth: "",
columns: "",
columnSpan: "",
columnWidth: "",
contain: "",
containIntrinsicSize: "",
content: "",
contentVisibility: "",
counterIncrement: "",
counterReset: "",
counterSet: "",
cssFloat: "",
cssText: "",
cursor: "",
cx: "",
cy: "",
d: "",
descentOverride: "",
direction: "",
display: "",
dominantBaseline: "",
emptyCells: "",
fill: "",
fillOpacity: "",
fillRule: "",
filter: "",
flex: "",
flexBasis: "",
flexDirection: "",
flexFlow: "",
flexGrow: "",
flexShrink: "",
flexWrap: "",
float: "",
floodColor: "",
floodOpacity: "",
font: "",
fontDisplay: "",
fontFamily: "",
fontFeatureSettings: "",
fontKerning: "",
fontOpticalSizing: "",
fontSize: "",
fontStretch: "",
fontStyle: "",
fontVariant: "",
fontVariantCaps: "",
fontVariantEastAsian: "",
fontVariantLigatures: "",
fontVariantNumeric: "",
fontVariationSettings: "",
fontWeight: "",
gap: "",
getPropertyPriority: function getPropertyPriority() { [native code] },
getPropertyValue: function getPropertyValue() { [native code] },
grid: "",
gridArea: "",
gridAutoColumns: "",
gridAutoFlow: "",
gridAutoRows: "",
gridColumn: "",
gridColumnEnd: "",
gridColumnGap: "",
gridColumnStart: "",
gridGap: "",
gridRow: "",
gridRowEnd: "",
gridRowGap: "",
gridRowStart: "",
gridTemplate: "",
gridTemplateAreas: "",
gridTemplateColumns: "",
gridTemplateRows: "",
height: "",
hyphens: "",
imageOrientation: "",
imageRendering: "",
inherits: "",
initialValue: "",
inlineSize: "",
inset: "",
insetBlock: "",
insetBlockEnd: "",
insetBlockStart: "",
insetInline: "",
insetInlineEnd: "",
insetInlineStart: "",
isolation: "",
item: function item() { [native code] },
justifyContent: "",
justifyItems: "",
justifySelf: "",
left: "",
length: 0,
letterSpacing: "",
lightingColor: "",
lineBreak: "",
lineGapOverride: "",
lineHeight: "",
listStyle: "",
listStyleImage: "",
listStylePosition: "",
listStyleType: "",
margin: "",
marginBlock: "",
marginBlockEnd: "",
marginBlockStart: "",
marginBottom: "",
marginInline: "",
marginInlineEnd: "",
marginInlineStart: "",
marginLeft: "",
marginRight: "",
marginTop: "",
marker: "",
markerEnd: "",
markerMid: "",
markerStart: "",
mask: "",
maskType: "",
maxBlockSize: "",
maxHeight: "",
maxInlineSize: "",
maxWidth: "",
maxZoom: "",
minBlockSize: "",
minHeight: "",
minInlineSize: "",
minWidth: "",
minZoom: "",
mixBlendMode: "",
objectFit: "",
objectPosition: "",
offset: "",
offsetDistance: "",
offsetPath: "",
offsetRotate: "",
opacity: "",
order: "",
orientation: "",
orphans: "",
outline: "",
outlineColor: "",
outlineOffset: "",
outlineStyle: "",
outlineWidth: "",
overflow: "",
overflowAnchor: "",
overflowWrap: "",
overflowX: "",
overflowY: "",
overscrollBehavior: "",
overscrollBehaviorBlock: "",
overscrollBehaviorInline: "",
overscrollBehaviorX: "",
overscrollBehaviorY: "",
padding: "",
paddingBlock: "",
paddingBlockEnd: "",
paddingBlockStart: "",
paddingBottom: "",
paddingInline: "",
paddingInlineEnd: "",
paddingInlineStart: "",
paddingLeft: "",
paddingRight: "",
paddingTop: "",
page: "",
pageBreakAfter: "",
pageBreakBefore: "",
pageBreakInside: "",
pageOrientation: "",
paintOrder: "",
parentRule: null,
perspective: "",
perspectiveOrigin: "",
placeContent: "",
placeItems: "",
placeSelf: "",
pointerEvents: "",
position: "",
quotes: "",
r: "",
removeProperty: function removeProperty() { [native code] },
resize: "",
right: "",
rowGap: "",
rubyPosition: "",
rx: "",
ry: "",
scrollBehavior: "",
scrollMargin: "",
scrollMarginBlock: "",
scrollMarginBlockEnd: "",
scrollMarginBlockStart: "",
scrollMarginBottom: "",
scrollMarginInline: "",
scrollMarginInlineEnd: "",
scrollMarginInlineStart: "",
scrollMarginLeft: "",
scrollMarginRight: "",
scrollMarginTop: "",
scrollPadding: "",
scrollPaddingBlock: "",
scrollPaddingBlockEnd: "",
scrollPaddingBlockStart: "",
scrollPaddingBottom: "",
scrollPaddingInline: "",
scrollPaddingInlineEnd: "",
scrollPaddingInlineStart: "",
scrollPaddingLeft: "",
scrollPaddingRight: "",
scrollPaddingTop: "",
scrollSnapAlign: "",
scrollSnapStop: "",
scrollSnapType: "",
setProperty: function setProperty() { [native code] },
shapeImageThreshold: "",
shapeMargin: "",
shapeOutside: "",
shapeRendering: "",
size: "",
speak: "",
src: "",
stopColor: "",
stopOpacity: "",
stroke: "",
strokeDasharray: "",
strokeDashoffset: "",
strokeLinecap: "",
strokeLinejoin: "",
strokeMiterlimit: "",
strokeOpacity: "",
strokeWidth: "",
syntax: "",
tableLayout: "",
tabSize: "",
textAlign: "",
textAlignLast: "",
textAnchor: "",
textCombineUpright: "",
textDecoration: "",
textDecorationColor: "",
textDecorationLine: "",
textDecorationSkipInk: "",
textDecorationStyle: "",
textDecorationThickness: "",
textIndent: "",
textOrientation: "",
textOverflow: "",
textRendering: "",
textShadow: "",
textSizeAdjust: "",
textTransform: "",
textUnderlineOffset: "",
textUnderlinePosition: "",
top: "",
touchAction: "",
transform: "",
transformBox: "",
transformOrigin: "",
transformStyle: "",
transition: "",
transitionDelay: "",
transitionDuration: "",
transitionProperty: "",
transitionTimingFunction: "",
unicodeBidi: "",
unicodeRange: "",
userSelect: "",
userZoom: "",
vectorEffect: "",
verticalAlign: "",
visibility: "",
webkitAlignContent: "",
webkitAlignItems: "",
webkitAlignSelf: "",
webkitAnimation: "",
webkitAnimationDelay: "",
webkitAnimationDirection: "",
webkitAnimationDuration: "",
webkitAnimationFillMode: "",
webkitAnimationIterationCount: "",
webkitAnimationName: "",
webkitAnimationPlayState: "",
webkitAnimationTimingFunction: "",
webkitAppearance: "",
webkitAppRegion: "",
webkitBackfaceVisibility: "",
webkitBackgroundClip: "",
webkitBackgroundOrigin: "",
webkitBackgroundSize: "",
webkitBorderAfter: "",
webkitBorderAfterColor: "",
webkitBorderAfterStyle: "",
webkitBorderAfterWidth: "",
webkitBorderBefore: "",
webkitBorderBeforeColor: "",
webkitBorderBeforeStyle: "",
webkitBorderBeforeWidth: "",
webkitBorderBottomLeftRadius: "",
webkitBorderBottomRightRadius: "",
webkitBorderEnd: "",
webkitBorderEndColor: "",
webkitBorderEndStyle: "",
webkitBorderEndWidth: "",
webkitBorderHorizontalSpacing: "",
webkitBorderImage: "",
webkitBorderRadius: "",
webkitBorderStart: "",
webkitBorderStartColor: "",
webkitBorderStartStyle: "",
webkitBorderStartWidth: "",
webkitBorderTopLeftRadius: "",
webkitBorderTopRightRadius: "",
webkitBorderVerticalSpacing: "",
webkitBoxAlign: "",
webkitBoxDecorationBreak: "",
webkitBoxDirection: "",
webkitBoxFlex: "",
webkitBoxOrdinalGroup: "",
webkitBoxOrient: "",
webkitBoxPack: "",
webkitBoxReflect: "",
webkitBoxShadow: "",
webkitBoxSizing: "",
webkitClipPath: "",
webkitColumnBreakAfter: "",
webkitColumnBreakBefore: "",
webkitColumnBreakInside: "",
webkitColumnCount: "",
webkitColumnGap: "",
webkitColumnRule: "",
webkitColumnRuleColor: "",
webkitColumnRuleStyle: "",
webkitColumnRuleWidth: "",
webkitColumns: "",
webkitColumnSpan: "",
webkitColumnWidth: "",
webkitFilter: "",
webkitFlex: "",
webkitFlexBasis: "",
webkitFlexDirection: "",
webkitFlexFlow: "",
webkitFlexGrow: "",
webkitFlexShrink: "",
webkitFlexWrap: "",
webkitFontFeatureSettings: "",
webkitFontSmoothing: "",
webkitHighlight: "",
webkitHyphenateCharacter: "",
webkitJustifyContent: "",
webkitLineBreak: "",
webkitLineClamp: "",
webkitLocale: "",
webkitLogicalHeight: "",
webkitLogicalWidth: "",
webkitMarginAfter: "",
webkitMarginBefore: "",
webkitMarginEnd: "",
webkitMarginStart: "",
webkitMask: "",
webkitMaskBoxImage: "",
webkitMaskBoxImageOutset: "",
webkitMaskBoxImageRepeat: "",
webkitMaskBoxImageSlice: "",
webkitMaskBoxImageSource: "",
webkitMaskBoxImageWidth: "",
webkitMaskClip: "",
webkitMaskComposite: "",
webkitMaskImage: "",
webkitMaskOrigin: "",
webkitMaskPosition: "",
webkitMaskPositionX: "",
webkitMaskPositionY: "",
webkitMaskRepeat: "",
webkitMaskRepeatX: "",
webkitMaskRepeatY: "",
webkitMaskSize: "",
webkitMaxLogicalHeight: "",
webkitMaxLogicalWidth: "",
webkitMinLogicalHeight: "",
webkitMinLogicalWidth: "",
webkitOpacity: "",
webkitOrder: "",
webkitPaddingAfter: "",
webkitPaddingBefore: "",
webkitPaddingEnd: "",
webkitPaddingStart: "",
webkitPerspective: "",
webkitPerspectiveOrigin: "",
webkitPerspectiveOriginX: "",
webkitPerspectiveOriginY: "",
webkitPrintColorAdjust: "",
webkitRtlOrdering: "",
webkitRubyPosition: "",
webkitShapeImageThreshold: "",
webkitShapeMargin: "",
webkitShapeOutside: "",
webkitTapHighlightColor: "",
webkitTextCombine: "",
webkitTextDecorationsInEffect: "",
webkitTextEmphasis: "",
webkitTextEmphasisColor: "",
webkitTextEmphasisPosition: "",
webkitTextEmphasisStyle: "",
webkitTextFillColor: "",
webkitTextOrientation: "",
webkitTextSecurity: "",
webkitTextSizeAdjust: "",
webkitTextStroke: "",
webkitTextStrokeColor: "",
webkitTextStrokeWidth: "",
webkitTransform: "",
webkitTransformOrigin: "",
webkitTransformOriginX: "",
webkitTransformOriginY: "",
webkitTransformOriginZ: "",
webkitTransformStyle: "",
webkitTransition: "",
webkitTransitionDelay: "",
webkitTransitionDuration: "",
webkitTransitionProperty: "",
webkitTransitionTimingFunction: "",
webkitUserDrag: "",
webkitUserModify: "",
webkitUserSelect: "",
webkitWritingMode: "",
whiteSpace: "",
widows: "",
width: "",
willChange: "",
wordBreak: "",
wordSpacing: "",
wordWrap: "",
writingMode: "",
x: "",
y: "",
zIndex: "",
zoom: ""
},
tabIndex: -1,
tagName: "HTML",
TEXT_NODE: 3,
textContent: "
Mousewheel Event
/* EOS */
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
",
title: "",
toggleAttribute: function toggleAttribute() { [native code] },
translate: true,
version: "",
webkitMatchesSelector: function webkitMatchesSelector() { [native code] },
webkitRequestFullScreen: function webkitRequestFullScreen() { [native code] },
webkitRequestFullscreen: function webkitRequestFullscreen() { [native code] }
}, [circular object HTMLDocument], [circular object Window]],
preventDefault: function preventDefault() { [native code] },
returnValue: true,
shiftKey: false,
sourceCapabilities: [object InputDeviceCapabilities] {
firesTouchEvents: true
},
srcElement: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
stopImmediatePropagation: function stopImmediatePropagation() { [native code] },
stopPropagation: function stopPropagation() { [native code] },
target: [circular object HTMLHtmlElement] :
&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;&lt;/html&gt;,
targetTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
timeStamp: 5689.085000019986,
touches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
type: "touchmove",
view: [circular object Window],
which: 0
}
"touchmove", false, [object TouchEvent] {
altKey: false,
AT_TARGET: 2,
bubbles: true,
BUBBLING_PHASE: 3,
cancelable: false,
cancelBubble: false,
CAPTURING_PHASE: 1,
changedTouches: [object TouchList] {
0: [object Touch] { ... },
1: [object Touch] { ... },
item: function item() { [native code] },
length: 2
},
composed: true,
composedPath: function composedPath() { [native code] },
ctrlKey: false,
currentTarget: [object Window] {
__internalOpen__: { ... },
__internalPrompt__: { ... },
addEventListener: function addEventListener() { [native code] },
alert: function alert() { [native code] },
atob: function atob() { [native code] },
beaker: { ... },
blur: function blur() { [native code] },
btoa: function btoa() { [native code] },
caches: [object CacheStorage] { ... },
cancelAnimationFrame: function cancelAnimationFrame() { [native code] },
cancelIdleCallback: function cancelIdleCallback() { [native code] },
captureEvents: function captureEvents() { [native code] },
chrome: { ... },
clearInterval: function clearInterval() { [native code] },
clearTimeout: function clearTimeout() { [native code] },
clientInformation: [object Navigator] { ... },
close: function () {
window.__internalOpen__.close()
},
closed: false,
confirm: function confirm() { [native code] },
cookieStore: [object CookieStore] { ... },
createImageBitmap: function createImageBitmap() { [native code] },
crossOriginIsolated: false,
crypto: [object Crypto] { ... },
customElements: [object CustomElementRegistry] { ... },
defaultStatus: "",
defaultstatus: "",
devicePixelRatio: 2.25,
dispatchEvent: function dispatchEvent() { [native code] },
document: [object HTMLDocument] { ... },
external: [object External] { ... },
fetch: function fetch() { [native code] },
find: function find() { [native code] },
focus: function focus() { [native code] },
frameElement: null,
frames: [circular object Window],
getComputedStyle: function getComputedStyle() { [native code] },
getSelection: function getSelection() { [native code] },
history: [object History] { ... },
indexedDB: [object IDBFactory] { ... },
innerHeight: 214,
innerWidth: 474,
isSecureContext: true,
length: 0,
localStorage: [object Storage] { ... },
location: [object Location] { ... },
locationbar: [object BarProp] { ... },
matchMedia: function matchMedia() { [native code] },
menubar: [object BarProp] { ... },
moveBy: function moveBy() { [native code] },
moveTo: function moveTo() { [native code] },
name: "result",
navigator: [circular object Navigator],
onabort: null,
onafterprint: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onappinstalled: null,
onauxclick: null,
onbeforeinstallprompt: null,
onbeforeprint: null,
onbeforeunload: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncuechange: null,
ondblclick: null,
ondevicemotion: null,
ondeviceorientation: null,
ondeviceorientationabsolute: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: (message, url, line, column) => {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line < 0){
pushToConsole(message, "error")
} else {
pushToConsole(`[${line}:${column}] ${message}`, "error")
}
},
onfocus: null,
onformdata: null,
ongotpointercapture: null,
onhashchange: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onlanguagechange: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmessage: null,
onmessageerror: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onoffline: null,
ononline: null,
onpagehide: null,
onpageshow: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onpopstate: null,
onprogress: null,
onratechange: null,
onrejectionhandled: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onstorage: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onunhandledrejection: null,
onunload: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkittransitionend: null,
onwheel: null,
open: function open() { [native code] },
openDatabase: function openDatabase() { [native code] },
opener: null,
origin: "https://fiddle.jshell.net",
outerHeight: 765,
outerWidth: 1171,
pageXOffset: 0,
pageYOffset: 0,
parent: { ... },
performance: [object Performance] { ... },
PERSISTENT: 1,
personalbar: [object BarProp] { ... },
postMessage: function postMessage() { [native code] },
print: function print() { [native code] },
prompt: (message, def) => window.__internalPrompt__.prompt(message, def),
queueMicrotask: function queueMicrotask() { [native code] },
releaseEvents: function releaseEvents() { [native code] },
removeEventListener: function removeEventListener() { [native code] },
requestAnimationFrame: function requestAnimationFrame() { [native code] },
requestIdleCallback: function requestIdleCallback() { [native code] },
resizeBy: function resizeBy() { [native code] },
resizeTo: function resizeTo() { [native code] },
screen: [object Screen] { ... },
screenLeft: -9,
screenTop: 0,
screenX: -9,
screenY: 0,
scroll: function scroll() { [native code] },
scrollbars: [object BarProp] { ... },
scrollBy: function scrollBy() { [native code] },
scrollTo: function scrollTo() { [native code] },
scrollX: 0,
scrollY: 0,
self: [circular object Window],
sessionStorage: [object Storage] { ... },
setInterval: function setInterval() { [native code] },
setTimeout: function setTimeout() { [native code] },
showDirectoryPicker: function showDirectoryPicker() { [native code] },
showOpenFilePicker: function showOpenFilePicker() { [native code] },
showSaveFilePicker: function showSaveFilePicker() { [native code] },
speechSynthesis: [object SpeechSynthesis] { ... },
status: "",
statusbar: [object BarProp] { ... },
stop: function stop() { [native code] },
stringify: function stringify(o, visited, buffer) {
var i, vi, type = '', parts = [], circular = false;
buffer = buffer || '';
visited = visited || [];
// Get out fast with primitives that don't like toString
if (o === null) {
return 'null';
}
if (typeof o === 'undefined') {
return 'undefined';
}
// Determine the type
try {
type = ({}).toString.call(o);
} catch (e) { // only happens when typeof is protected (...randomly)
type = '[object Object]';
}
// Handle the primitive types
if (type == '[object Number]') {
return ''+o;
}
if (type == '[object Boolean]') {
return o ? 'true' : 'false';
}
if (type == '[object Function]') {
return o.toString().split('\n ').join('\n' + buffer);
}
if (type == '[object String]') {
return '"' + htmlEntities(o.replace(/"/g, '\\"')) + '"';
}
// Check for circular references
for (vi = 0; vi < visited.length; vi++) {
if (o === visited[vi]) {
// Notify the user that a circular object was found and, if available,
// show the object's outerHTML (for body and elements)
return '[circular ' + type.slice(1) +
('outerHTML' in o ? ' :\n' + htmlEntities(o.outerHTML).split('\n').join('\n' + buffer) : '')
}
}
// Remember that we visited this object
visited.push(o);
// Stringify each member of the array
if (type == '[object Array]') {
for (i = 0; i < o.length; i++) {
parts.push(stringify(o[i], visited));
}
return '[' + parts.join(', ') + ']';
}
// Fake array – very tricksy, get out quickly
if (type.match(/Array/)) {
return type;
}
var typeStr = type + ' ',
newBuffer = buffer + ' ';
// Dive down if we're less than 2 levels deep
if (buffer.length / 2 < 2) {
var names = [];
// Some objects don't like 'in', so just skip them
try {
for (i in o) {
names.push(i);
}
} catch (e) {}
names.sort(sortci);
for (i = 0; i < names.length; i++) {
try {
parts.push(newBuffer + names[i] + ': ' + stringify(o[names[i]], visited, newBuffer));
} catch (e) {}
}
}
// If nothing was gathered, return empty object
if (!parts.length) return typeStr + '{ ... }';
// Return the indented object with new lines
return typeStr + '{\n' + parts.join(',\n') + '\n' + buffer + '}';
},
styleMedia: [object StyleMedia] { ... },
TEMPORARY: 0,
testEvent: function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
},
toolbar: [object BarProp] { ... },
trustedTypes: [object TrustedTypePolicyFactory] { ... },
visualViewport: [object VisualViewport] { ... },
webkitCancelAnimationFrame: function webkitCancelAnimationFrame() { [native code] },
webkitRequestAnimationFrame: function webkitRequestAnimationFrame() { [native code] },
webkitRequestFileSystem: function webkitRequestFileSystem() { [native code] },
webkitResolveLocalFileSystemURL: function webkitResolveLocalFileSystemURL() { [native code] },
webkitStorageInfo: [object DeprecatedStorageInfo] { ... },
window: [circular object Window]
},
defaultPrevented: false,
detail: 0,
eventPhase: 3,
initEvent: function initEvent() { [native code] },
initUIEvent: function initUIEvent() { [native code] },
isTrusted: true,
metaKey: false,
NONE: 0,
path: [[object HTMLHtmlElement] {
accessKey: "",
addEventListener: function addEventListener() { [native code] },
after: function after() { [native code] },
animate: function animate() { [native code] },
append: function append() { [native code] },
appendChild: function appendChild() { [native code] },
ariaAtomic: null,
ariaAutoComplete: null,
ariaBusy: null,
ariaChecked: null,
ariaColCount: null,
ariaColIndex: null,
ariaColSpan: null,
ariaCurrent: null,
ariaDescription: null,
ariaDisabled: null,
ariaExpanded: null,
ariaHasPopup: null,
ariaHidden: null,
ariaKeyShortcuts: null,
ariaLabel: null,
ariaLevel: null,
ariaLive: null,
ariaModal: null,
ariaMultiLine: null,
ariaMultiSelectable: null,
ariaOrientation: null,
ariaPlaceholder: null,
ariaPosInSet: null,
ariaPressed: null,
ariaReadOnly: null,
ariaRelevant: null,
ariaRequired: null,
ariaRoleDescription: null,
ariaRowCount: null,
ariaRowIndex: null,
ariaRowSpan: null,
ariaSelected: null,
ariaSetSize: null,
ariaSort: null,
ariaValueMax: null,
ariaValueMin: null,
ariaValueNow: null,
ariaValueText: null,
assignedSlot: null,
attachInternals: function attachInternals() { [native code] },
attachShadow: function attachShadow() { [native code] },
ATTRIBUTE_NODE: 2,
attributes: [object NamedNodeMap] {
getNamedItem: function getNamedItem() { [native code] },
getNamedItemNS: function getNamedItemNS() { [native code] },
item: function item() { [native code] },
length: 0,
removeNamedItem: function removeNamedItem() { [native code] },
removeNamedItemNS: function removeNamedItemNS() { [native code] },
setNamedItem: function setNamedItem() { [native code] },
setNamedItemNS: function setNamedItemNS() { [native code] }
},
attributeStyleMap: [object StylePropertyMap] {
append: function append() { [native code] },
clear: function clear() { [native code] },
delete: function delete() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
get: function get() { [native code] },
getAll: function getAll() { [native code] },
has: function has() { [native code] },
keys: function keys() { [native code] },
set: function set() { [native code] },
size: 0,
values: function values() { [native code] }
},
autocapitalize: "",
autofocus: false,
baseURI: "https://fiddle.jshell.net/_display/?editor_console=true",
before: function before() { [native code] },
blur: function blur() { [native code] },
CDATA_SECTION_NODE: 4,
childElementCount: 2,
childNodes: [object NodeList] {
0: [object HTMLHeadElement] { ... },
1: [object Text] { ... },
2: [object HTMLBodyElement] { ... },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 3,
values: function values() { [native code] }
},
children: [object HTMLCollection] {
0: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
1: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
item: function item() { [native code] },
length: 2,
namedItem: function namedItem() { [native code] }
},
classList: [object DOMTokenList] {
add: function add() { [native code] },
contains: function contains() { [native code] },
entries: function entries() { [native code] },
forEach: function forEach() { [native code] },
item: function item() { [native code] },
keys: function keys() { [native code] },
length: 0,
remove: function remove() { [native code] },
replace: function replace() { [native code] },
supports: function supports() { [native code] },
toggle: function toggle() { [native code] },
toString: function toString() { [native code] },
value: "",
values: function values() { [native code] }
},
className: "",
click: function click() { [native code] },
clientHeight: 214,
clientLeft: 0,
clientTop: 0,
clientWidth: 474,
cloneNode: function cloneNode() { [native code] },
closest: function closest() { [native code] },
COMMENT_NODE: 8,
compareDocumentPosition: function compareDocumentPosition() { [native code] },
computedStyleMap: function computedStyleMap() { [native code] },
contains: function contains() { [native code] },
contentEditable: "inherit",
dataset: [object DOMStringMap] { ... },
dir: "",
dispatchEvent: function dispatchEvent() { [native code] },
DOCUMENT_FRAGMENT_NODE: 11,
DOCUMENT_NODE: 9,
DOCUMENT_POSITION_CONTAINED_BY: 16,
DOCUMENT_POSITION_CONTAINS: 8,
DOCUMENT_POSITION_DISCONNECTED: 1,
DOCUMENT_POSITION_FOLLOWING: 4,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32,
DOCUMENT_POSITION_PRECEDING: 2,
DOCUMENT_TYPE_NODE: 10,
draggable: false,
ELEMENT_NODE: 1,
elementTiming: "",
enterKeyHint: "",
ENTITY_NODE: 6,
ENTITY_REFERENCE_NODE: 5,
firstChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
firstElementChild: [circular object HTMLHeadElement] :
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;googlebot&quot; content=&quot;noindex, nofollow&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/js/lib/dummy.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/normalize.css&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/css/result-light.css&quot;&gt;
&lt;style id=&quot;compiled-css&quot; type=&quot;text/css&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=&quot;insert&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, &quot;*&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, &quot;error&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, &quot;error&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;log&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;info&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;warn&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, &quot;error&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, &quot;system&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, &quot;log&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(&quot;Running fiddle&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;,
focus: function focus() { [native code] },
getAnimations: function getAnimations() { [native code] },
getAttribute: function getAttribute() { [native code] },
getAttributeNames: function getAttributeNames() { [native code] },
getAttributeNode: function getAttributeNode() { [native code] },
getAttributeNodeNS: function getAttributeNodeNS() { [native code] },
getAttributeNS: function getAttributeNS() { [native code] },
getBoundingClientRect: function getBoundingClientRect() { [native code] },
getClientRects: function getClientRects() { [native code] },
getElementsByClassName: function getElementsByClassName() { [native code] },
getElementsByTagName: function getElementsByTagName() { [native code] },
getElementsByTagNameNS: function getElementsByTagNameNS() { [native code] },
getRootNode: function getRootNode() { [native code] },
hasAttribute: function hasAttribute() { [native code] },
hasAttributeNS: function hasAttributeNS() { [native code] },
hasAttributes: function hasAttributes() { [native code] },
hasChildNodes: function hasChildNodes() { [native code] },
hasPointerCapture: function hasPointerCapture() { [native code] },
hidden: false,
id: "",
innerHTML: "&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;error\&quot;)
} else {
pushToConsole(`[${line}:${column}] ${message}`, \&quot;error\&quot;)
}
}
let console = (function(systemConsole){
return {
log: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;log\&quot;)
systemConsole.log.apply(this, args)
},
info: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;info\&quot;)
systemConsole.info.apply(this, args)
},
warn: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;warn\&quot;)
systemConsole.warn.apply(this, args)
},
error: function(){
let args = Array.from(arguments)
pushToConsole(args, \&quot;error\&quot;)
systemConsole.error.apply(this, args)
},
system: function(arg){
pushToConsole(arg, \&quot;system\&quot;)
},
clear: function(){
systemConsole.clear.apply(this, {})
},
time: function(){
let args = Array.from(arguments)
systemConsole.time.apply(this, args)
},
assert: function(assertion, label){
if (!assertion){
pushToConsole(label, \&quot;log\&quot;)
}
let args = Array.from(arguments)
systemConsole.assert.apply(this, args)
}
}
}(window.console))
window.console = { ...window.console, ...console }
console.system(\&quot;Running fiddle\&quot;)
}
if (window.parent){
customConsole(window)
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type=\&quot;text/javascript\&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(\&quot;mousewheel\&quot;)
testEvent(\&quot;touchstart\&quot;)
testEvent(\&quot;touchmove\&quot;)
testEvent(\&quot;touchcancel\&quot;)
testEvent(\&quot;touchend\&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([\&quot;resultsFrame\&quot;, {
height: document.body.getBoundingClientRect().height,
slug: \&quot;\&quot;
}], \&quot;*\&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = \&quot;result\&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(\&quot;message\&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(\&quot;#insert\&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(\&quot;;\r\&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;",
innerText: "",
inputMode: "",
insertAdjacentElement: function insertAdjacentElement() { [native code] },
insertAdjacentHTML: function insertAdjacentHTML() { [native code] },
insertAdjacentText: function insertAdjacentText() { [native code] },
insertBefore: function insertBefore() { [native code] },
isConnected: true,
isContentEditable: false,
isDefaultNamespace: function isDefaultNamespace() { [native code] },
isEqualNode: function isEqualNode() { [native code] },
isSameNode: function isSameNode() { [native code] },
lang: "",
lastChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
lastElementChild: [circular object HTMLBodyElement] :
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[
function testEvent(name) {
window.addEventListener(name,function (e) {
console.log(name,e.ctrlKey,e)
e.preventDefault()
},false)
}
testEvent(&quot;mousewheel&quot;)
testEvent(&quot;touchstart&quot;)
testEvent(&quot;touchmove&quot;)
testEvent(&quot;touchcancel&quot;)
testEvent(&quot;touchend&quot;)
//]]&gt;&lt;/script&gt;
&lt;script&gt;
// tell the embed parent frame the height of the content
if (window.parent &amp;&amp; window.parent.parent){
window.parent.parent.postMessage([&quot;resultsFrame&quot;, {
height: document.body.getBoundingClientRect().height,
slug: &quot;&quot;
}], &quot;*&quot;)
}
// always overwrite window.name, in case users try to set it manually
window.name = &quot;result&quot;
&lt;/script&gt;
&lt;script&gt;
let allLines = []
window.addEventListener(&quot;message&quot;, (message) =&gt; {
if (message.data.console){
let insert = document.querySelector(&quot;#insert&quot;)
allLines.push(message.data.console.payload)
insert.innerHTML = allLines.join(&quot;;\r&quot;)
let result = eval.call(null, message.data.console.payload)
if (result !== undefined){
console.log(result)
}
}
})
&lt;/script&gt;
&lt;/body&gt;,
localName: "html",
lookupNamespaceURI: function lookupNamespaceURI() { [native code] },
lookupPrefix: function lookupPrefix() { [native code] },
matches: function matches() { [native code] },
namespaceURI: "http://www.w3.org/1999/xhtml",
nextElementSibling: null,
nextSibling: null,
nodeName: "HTML",
nodeType: 1,
nodeValue: null,
nonce: "",
normalize: function normalize() { [native code] },
NOTATION_NODE: 12,
offsetHeight: 0,
offsetLeft: 0,
offsetParent: null,
offsetTop: 0,
offsetWidth: 474,
onabort: null,
onanimationend: null,
onanimationiteration: null,
onanimationstart: null,
onauxclick: null,
onbeforecopy: null,
onbeforecut: null,
onbeforepaste: null,
onbeforexrselect: null,
onblur: null,
oncancel: null,
oncanplay: null,
oncanplaythrough: null,
onchange: null,
onclick: null,
onclose: null,
oncontextmenu: null,
oncopy: null,
oncuechange: null,
oncut: null,
ondblclick: null,
ondrag: null,
ondragend: null,
ondragenter: null,
ondragleave: null,
ondragover: null,
ondragstart: null,
ondrop: null,
ondurationchange: null,
onemptied: null,
onended: null,
onerror: null,
onfocus: null,
onformdata: null,
onfullscreenchange: null,
onfullscreenerror: null,
ongotpointercapture: null,
oninput: null,
oninvalid: null,
onkeydown: null,
onkeypress: null,
onkeyup: null,
onload: null,
onloadeddata: null,
onloadedmetadata: null,
onloadstart: null,
onlostpointercapture: null,
onmousedown: null,
onmouseenter: null,
onmouseleave: null,
onmousemove: null,
onmouseout: null,
onmouseover: null,
onmouseup: null,
onmousewheel: null,
onpaste: null,
onpause: null,
onplay: null,
onplaying: null,
onpointercancel: null,
onpointerdown: null,
onpointerenter: null,
onpointerleave: null,
onpointermove: null,
onpointerout: null,
onpointerover: null,
onpointerrawupdate: null,
onpointerup: null,
onprogress: null,
onratechange: null,
onreset: null,
onresize: null,
onscroll: null,
onsearch: null,
onseeked: null,
onseeking: null,
onselect: null,
onselectionchange: null,
onselectstart: null,
onstalled: null,
onsubmit: null,
onsuspend: null,
ontimeupdate: null,
ontoggle: null,
ontransitioncancel: null,
ontransitionend: null,
ontransitionrun: null,
ontransitionstart: null,
onvolumechange: null,
onwaiting: null,
onwebkitanimationend: null,
onwebkitanimationiteration: null,
onwebkitanimationstart: null,
onwebkitfullscreenchange: null,
onwebkitfullscreenerror: null,
onwebkittransitionend: null,
onwheel: null,
outerHTML: "&lt;html&gt;&lt;head&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;title&gt;Mousewheel Event&lt;/title&gt;
&lt;meta http-equiv=\&quot;content-type\&quot; content=\&quot;text/html; charset=UTF-8\&quot;&gt;
&lt;meta name=\&quot;robots\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;googlebot\&quot; content=\&quot;noindex, nofollow\&quot;&gt;
&lt;meta name=\&quot;viewport\&quot; content=\&quot;width=device-width, initial-scale=1\&quot;&gt;
&lt;script type=\&quot;text/javascript\&quot; src=\&quot;/js/lib/dummy.js\&quot;&gt;&lt;/script&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/normalize.css\&quot;&gt;
&lt;link rel=\&quot;stylesheet\&quot; type=\&quot;text/css\&quot; href=\&quot;/css/result-light.css\&quot;&gt;
&lt;style id=\&quot;compiled-css\&quot; type=\&quot;text/css\&quot;&gt;
/* EOS */
&lt;/style&gt;
&lt;script id=\&quot;insert\&quot;&gt;&lt;/script&gt;
&lt;script src=\&quot;/js/stringify.js?2e1a08e11df17968898e3ff29f7e6486935607e9\&quot; charset=\&quot;utf-8\&quot;&gt;&lt;/script&gt;
&lt;script&gt;
const customConsole = (w) =&gt; {
const pushToConsole = (payload, type) =&gt; {
w.parent.postMessage({
console: {
payload: stringify(payload),
type: type
}
}, \&quot;*\&quot;)
}
w.onerror = (message, url, line, column) =&gt; {
// the line needs to correspond with the editor panel
// unfortunately this number needs to be altered every time this view is changed
line = line - 70
if (line &lt; 0){
pushToConsole(message, \&quot;e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment