/test-scripts/innerHTML/dom_versus_inner_html.html
HTML | 1436 lines | 1319 code | 117 blank | 0 comment | 0 complexity | 0806df30bd61f76a72c6d5ee666c8234 MD5 | raw file
Possible License(s): Apache-2.0
Large files files are truncated, but you can click here to view the full file
- <!doctype html>
- <html>
- <head>
- <title> new document </title>
-
-
- <style>
- /* debugger style */
- .folder-key {
- border:none;
- margin:0;
- margin-right:7px;
- padding:0;
- font-size:10px;
- line-height:11px;
- height:11px;
- width:11px;
- background: transparent url('data:image/png;charset=utf-8;base64,R0lGODlhCwAhAKIAAAAAAP///8zMzGZmZv///wAAAAAAAAAAACH5BAEAAAQALAAAAAALACEAAAM9KLqs8RA6OOJ8VYqYnxtgWF1BF5Amam3R2rww066zVnts/Yngmc+kVpB2izEIyKRyyWw6n1BmaRqtWq/LBAA7') scroll no-repeat 0 0;
- cursor:pointer;
- }
-
- examine-objects,
- examine-objects item
- {
- display:block;
- }
- examine-objects
- {
- padding: 0 9px;
- }
- examine-objects examine-objects
- {
- padding: 0 0 0 16px;
- }
- examine-objects key
- {
- margin-right:7px;
- }
- examine-objects key.no-expander
- {
- margin-left: 18px;
- }
- .prototype-chain-object
- {
- background-color: #666;
- color: #fff;
- font-weight: bold;
- padding: 2px 16px;
- margin: 2px 0;
- }
-
-
-
-
-
- </style>
-
- <style>
- /* ecma object tree */
-
-
-
-
- examine-objects key {
- color: #111;
- }
-
- examine-objects .string {
- color:#742;
- }
-
- examine-objects .number, offsets value {
- color:#920;
- }
-
- examine-objects .undefined {
- color:#c00;
- font-style: italic;
- }
-
- examine-objects .null {
- color:#c00;
- font-style: italic;
- }
-
- examine-objects .boolean {
- color:#920;
- }
-
- examine-objects .object {
- color:#18a;
- }
-
- </style>
- <style>
- /* html 5 markup */
- /* debugger style */
-
-
-
- .examine-objects
- {
- padding: 0 9px;
- }
- .examine-objects .examine-objects
- {
- padding: 0 0 0 16px;
- }
- .key
- {
- margin-right:7px;
- }
- .key.no-expander
- {
- margin-left: 18px;
- }
- .prototype-chain-object
- {
- background-color: #666;
- color: #fff;
- font-weight: bold;
- padding: 2px 16px;
- margin: 2px 0;
- }
-
-
-
-
-
-
- /* ecma object tree */
-
-
-
-
- .key {
- color: #111;
- }
-
- .string {
- color:#742;
- }
-
- .number {
- color:#920;
- }
-
- .undefined {
- color:#c00;
- font-style: italic;
- }
-
- .null {
- color:#c00;
- font-style: italic;
- }
-
- .boolean {
- color:#920;
- }
-
- .object {
- color:#18a;
- }
-
- </style>
- <style>
- body
- {
- font-family: sans-serif;
- }
- </style>
-
-
- <script>
- // dom.js
- /**
- * @fileoverview
- * Helper function prototypes related to DOM objects and the DOM
- * <strong>fixme: Christian should document the template syntax</strong>
- *
- * TEMPLATE :: =
- * "[" [NODENAME | "null"]
- * {"," TEXT | "," TEMPLATE}
- * {"," KEY "," VALUE}
- * "]"
- *
- * where NODENAME, TEXT and KEY are DOM strings and VALUE can be everything except an array
- */
-
- Element.prototype.render = Document.prototype.render = function(args)
- {
-
- if (typeof args == 'string' && this.nodeType == 1)
- {
- this.insertAdjacentHTML('beforeend', args);
- return this.firstElementChild;
- }
-
- var
- doc = this.nodeType == 9 ? this : this.ownerDocument,
- i = 0,
- ele = this,
- first_arg = args[0],
- arg = null,
- node_string_properties = ['innerHTML'];
-
- if (args.length)
- {
- if (first_arg)
- {
- if (typeof first_arg == 'string')
- {
- ele = first_arg in CustomElements ? CustomElements[first_arg].create() : doc.createElement(first_arg);
- i++;
- }
- arg = args[i];
- while (true)
- {
- if (arg instanceof Array)
- {
- ele.render(arg);
- arg = args[++i];
- }
- else if (typeof arg == 'string' && ((args.length - i) % 2 || args[i + 1] instanceof Array))
- {
- ele.appendChild(doc.createTextNode(arg));
- arg = args[++i];
- }
- else
- {
- break;
- }
- }
- for ( ; args[i]; i += 2)
- {
- if (typeof args[i] != 'string')
- {
- throw "TemplateSyntaxError";
- }
- if (typeof args[i + 1] == 'string' && node_string_properties.indexOf(args[i]) == -1)
- {
- ele.setAttribute(args[i], args[i + 1]);
- }
- else
- {
- ele[args[i]] = args[i + 1];
- }
- }
- if (this.nodeType == 1 && (this != ele))
- {
- this.appendChild(ele);
- }
- return ele;
- }
- else
- {
- return this.appendChild(doc.createTextNode(args[1]));
- }
- }
- return null;
- };
-
- Element.prototype.renderInner = Document.prototype.renderInner = function callee(template)
- {
- var
- i = template[0] && template[0] instanceof Array ? 0 : 1,
- arg = template[i],
- tag_name = template[0],
- ret = "",
- content = [],
- attrs = i && ["<", tag_name, " "] || [];
-
- if (tag_name)
- {
- while (true)
- {
- if (arg instanceof Array)
- {
- content.push(callee.call(null, arg));
- arg = template[++i];
- }
- else if (typeof arg == 'string' && ((template.length - i) % 2 || template[i + 1] instanceof Array))
- {
- content.push(arg.replace(/&/g, "&").replace(/</g, "<"));
- arg = template[++i];
- }
- else
- {
- break;
- }
- }
- if (attrs.length)
- content.push("</", tag_name, ">");
- for ( ; template[i]; i += 2)
- {
- attrs.push(template[i], "=\u0022", template[i + 1].replace(/"/g, """), "\u0022", " ");
- }
- if (attrs.length)
- attrs.push(">");
- ret = attrs.join("") + content.join("");
- if (this && this.nodeType == 1)
- {
- window.__t_3 = Date.now();
- this.innerHTML += ret;
- }
-
- }
- return ret;
- };
-
- </script>
- <script>
- // namespaces
- window.cls || ( window.cls = {} );
-
- /**
- * @constructor
- * A simple class to create a namespace on the window object.
- * It has one methode to add new created objects to it.
- */
-
- window.cls.Namespace = function(namespace)
- {
- if( window[namespace] instanceof this.constructor )
- {
- return window[namespace];
- }
- this.init(namespace);
- }
-
- window.cls.Namespace.prototype = new function()
- {
- this.add = function(obj)
- {
- if( !(obj.id || obj.name) )
- {
- throw "to add an object to a namespace it must have either an id or a name";
- }
- return ( this[obj.id || obj.name] = obj );
- }
- this.init = function(namespace)
- {
- if( !( window[namespace] instanceof this.constructor ) )
- {
- window[namespace] = this;
- }
- }
- this.toString = function()
- {
- return "[object Namespace]";
- }
-
- }
- </script>
-
-
- <script>
- // actions
- /**
- * @constructor
- */
-
- var EventHandler = function(type, is_capturing, handler_key)
- {
- handler_key = handler_key ? handler_key : 'handler';
- if(!window.eventHandlers)
- {
- window.eventHandlers = {};
- }
- if(window.eventHandlers[type])
- {
- return;
- }
-
- window.eventHandlers[type] = {};
-
- var handler = function(event)
- {
-
- var ele = event.target, handler = null, container = null;
-
- if( ele.nodeType != 1 )
- {
- return;
- }
- if(event.which == 3)
- {
- // right click
- event.stopPropagation();
- event.preventDefault();
- return;
- }
- handler = ele.getAttribute(handler_key);
- while( !handler && ( ele = ele.parentElement ) )
- {
- handler = ele.getAttribute(handler_key);
- }
- if( handler && eventHandlers[type][handler] )
- {
- if( type == 'click' && /toolbar-buttons/i.test(ele.parentNode.nodeName) )
- {
- container =
- document.getElementById(ele.parentNode.parentNode.id.replace('toolbar', 'container'));
- }
- eventHandlers[type][handler](event, ele, container);
- }
- }
-
- this.post = function(handler, event)
- {
- if(eventHandlers[type][handler])
- {
- eventHandlers[type][handler](event);
- }
- }
-
- document.addEventListener(type, handler, is_capturing ? is_capturing : false);
- }
-
- new EventHandler('click');
- new EventHandler('dblclick', false, 'edit-handler');
- new EventHandler('change');
- new EventHandler('input');
- new EventHandler('keyup', true);
- new EventHandler('keydown', true);
- new EventHandler('keypress', true);
- new EventHandler('mousedown');
- new EventHandler('mouseover');
- new EventHandler('focus', true, 'focus-handler');
- new EventHandler('blur', true, 'blur-handler');
-
-
-
- </script>
- <script>
- // helpers
- var cls = window.cls || ( window.cls = {} );
-
- /**
- * @fileoverview
- * <strong>fixme: Deprecated. marked for removal</strong>
- */
-
- /**
- * @constructor
- * @deprecated
- * use EventHandler and BaseActions
- */
-
- window.cls.Helpers = function()
- {
- var self = this;
-
-
- var handleKeypress = function(event, id)
- {
- event.preventDefault();
- event.stopPropagation();
- var button = document.getElementById(id);
- if(button && !button.disabled)
- {
- button.click();
- }
- }
-
- // TODO this should be handled with the Keyhandler class
- var keypressListener = function(event)
- {
- if( event.which == 0 )
- {
- switch(event.keyCode)
- {
- case 119: // F8
- {
- event.preventDefault();
- handleKeypress(event, 'continue-run');
- break;
- }
- case 121: // F10
- {
- event.preventDefault();
- handleKeypress(event, 'continue-step-next-line');
- break;
- }
- case 122: // F11
- {
- event.preventDefault();
- if(event.shiftKey)
- {
- handleKeypress(event, 'continue-step-out-of-call');
- }
- else
- {
- handleKeypress(event, 'continue-step-into-call');
- }
- break;
- }
- }
- }
- }
-
- this.setSelected = function(event)
- {
- var ele=event.target;
- var parent = ele.parentNode;
- var siblings = parent.getElementsByTagName(ele.nodeName), sibling = null, i=0;
- for( ; sibling = siblings[i]; i++)
- {
- if( sibling.parentElement == parent )
- {
- if(sibling == ele)
- {
- sibling.addClass('selected');
- }
- else
- {
- sibling.removeClass('selected');
- }
- }
- }
- }
-
- this.shortenURI = function(uri)
- {
- var ret_uri = uri;
- var title = '';
- var max_length = 40;
- if( ret_uri && ret_uri.length > max_length )
- {
- title = uri;
- ret_uri = uri.split('?')[0];
- if( ret_uri.length > max_length )
- {
- var temp = /\/([^/]+)$/.exec(ret_uri);
- if( temp )
- {
- ret_uri = temp[1];
- }
- }
- }
- return {uri: ret_uri, title: title};
- }
-
- this.resolveURLS = function(top_url, url)
- {
- return (
- /^.{4,5}:\/\//.test(url) && url
- || /^\//.test(url) && /^.{4,5}:\/\/[^/]*/.exec(top_url)[0] + url
- || top_url.replace(/\?.*$/, '').replace(/#.*$/, '').replace(/\/[^/]*$/, "/") + url );
- }
-
- this.escapeTextHtml = (function()
- {
- var re_amp = /&/g, re_lt = /</g;
- return function(str)
- {
- return str.replace(re_amp, "&").replace(re_lt, "<");
- }
- })();
-
- this.escapeAttributeHtml = (function()
- {
- var re_amp = /&/g, re_lt = /</g, re_quot = /"/g;
- return function(str)
- {
- return str.replace(re_amp, "&").replace(re_lt, "<").replace(re_quot, """);
- }
- })();
-
- this.setCookie = function(key, value, time)
- {
- document.cookie = (
- key + "=" + encodeURIComponent(value) +
- "; expires=" +
- ( new Date( new Date().getTime() + ( time || 360*24*60*60*1000 ) ) ).toGMTString() +
- "; path=/");
- }
-
- this.getCookie = function(key)
- {
- var value = new RegExp(key + "=([^;]*)").exec(document.cookie);
- return value && decodeURIComponent(value[1]);
- }
-
- // mouseover handler in the breadcrumb
- this.breadcrumbSpotlight = function(event)
- {
- var obj_id = parseInt(event.target.getAttribute('obj-id'));
- if(obj_id && /^breadcrumb$/i.test(event.target.parentNode.nodeName))
- {
- hostspotlighter.soft_spotlight(obj_id);
- }
- }
- // mouseover handler in the breadcrumb
- this.breadcrumbClearSpotlight = function(event)
- {
- var obj_id = event.target.getAttribute('obj-id');
- if( obj_id )
- {
- //hostspotlighter.clearSpotlight();
- }
- }
-
- this.service_dashed_name = function(name)
- {
- for ( var cur = '', i = 0, ret = ''; cur = name[i]; i++)
- {
- ret += /[A-Z]/.test(cur) && ( i ? '-' : '' ) + cur.toLowerCase() || cur;
- }
- return ret;
- }
-
- this.service_class_name = window.app.helpers.dash_to_class_name;
-
- document.addEventListener('keypress', keypressListener, true);
-
- }
- </script>
- <script>
- // inspection
- window.cls || (window.cls = {});
- cls.EcmascriptDebugger || (cls.EcmascriptDebugger = {});
- cls.EcmascriptDebugger["6.0"] || (cls.EcmascriptDebugger["6.0"] = {});
-
- /**
- * @constructor
- */
-
- /*
- status: OK
- payload:
- objectChainList:
- objectChain:
- objectList:
-
- object:
- value:
- objectID: 2
- isCallable: 0
- type: "object"
- prototypeID: 3
- className: "HTMLDocument"
-
- propertyList:
-
- property:
- name: "URL"
- type: "string"
- value: "opera:debug"
-
- property:
- name: "activeElement"
- type: "object"
- value:
- objectValue:
- objectID: 22
- isCallable: 0
- type: "object"
- prototypeID: 37
- className: "HTMLButtonElement"
-
- */
-
- cls.EcmascriptDebugger["6.0"].InspectionBaseData = function()
- {
-
- /* interface */
-
- // expand and collapse.
-
-
- this.setObject = function(rt_id, obj_id, virtualProperties){};
- this.getSelectedObject = function(){};
- this.getData = function(rt_id, obj_id, depth, org_args){};
- this.prettyPrint = function(data, target_depth, use_filter, filter_type){};
- this.clearData = function(rt_id, obj_id, depth, key){};
-
- /* private */
- this.parseXML = function(status, message, rt_id, obj_id, org_args){};
- this.getObject = function(obj_id, depth, key){};
- this.getCountVirtualProperties = function(index){};
-
- this.__getData = function(index, target_depth){};
-
- /* constants */
-
- const
- OBJECT_CHAIN_LIST = 0,
- // sub message ObjectList
- OBJECT_LIST = 0,
- // sub message ObjectInfo
- VALUE = 0,
- PROPERTY_LIST = 1,
- // sub message ObjectValue
- OBJECT_ID = 0,
- IS_CALLABLE = 1,
- TYPE = 2,
- PROTOTYPE_ID = 3,
- CLASS_NAME = 4,
- FUNCTION_NAME = 5;
- // sub message Property
- NAME = 0,
- PROPERTY_TYPE = 1,
- PROPERTY_VALUE = 2,
- OBJECT_VALUE = 3,
- // added fields
- PROPERTY_ITEM = 4,
- MAX_VALUE_LENGTH = 30;
-
-
-
- //this._obj_map = {};
- //this._queried_map = {};
- /*
- object:
- value:
- objectID: 2
- isCallable: 0
- type: "object"
- prototypeID: 3
- className: "HTMLDocument"
-
- propertyList:
-
- property:
- name: "URL"
- type: "string"
- value: "opera:debug"
-
- property:
- name: "activeElement"
- type: "object"
- value:
- objectValue:
- objectID: 22
- isCallable: 0
- type: "object"
- prototypeID: 37
- className: "HTMLButtonElement"
- */
-
- this.setObject = function(rt_id, obj_id, virtual_props, identifier, _class)
- {
- this._obj_map =
- {
- 0:
- [
- [
- [obj_id],
- [
- [
- identifier || '',
- 'object',
- ,
- [obj_id, , , , _class || '']
- ]
- ]
- ]
- ]
- };
- this._queried_map = {};
- this._expand_tree = {};
- this._rt_id = rt_id;
- this._obj_id = obj_id;
- // TODO sync format
- this._virtual_props = virtual_props;
-
- }
-
- this.get_object =
- this.getSelectedObject = function()
- {
- return this._obj_id && {rt_id: this._rt_id, obj_id: this._obj_id} || null;
- }
-
- this._id_counter = 0;
- this._get_id = function()
- {
- this._id_counter++;
- return "inspection-id-" + this._id_counter.toString();
- }
-
-
- this._init = function(id, views)
- {
- this.id = id || this._get_id();
- this._views = views || [];
- if (!window.inspections)
- {
- new cls.Namespace("inspections");
- }
- window.inspections.add(this);
- }
-
- this._update_views = function()
- {
- for (var view_id = '', i = 0; view_id = this._views[i]; i++)
- {
- if (window.views[view_id])
- {
- window.views[view_id].update();
- }
- }
- }
-
- this.collapse = this.clear = function(){};
-
- this.expand =
- this.inspect =
- this.get_data = function(cb, path)
- {
- if (path === undefined)
- {
- path = [this._obj_id];
- }
- if (path)
- {
- var obj_id = path[path.length - 1];
- if (this._obj_map[obj_id])
- {
- cb();
- }
- else
- {
- var tag = window.tag_manager.set_callback(this, this._handle_examine_object, [path, cb]);
- window.services['ecmascript-debugger'].requestExamineObjects(tag, [this._rt_id, [obj_id], 1]);
- }
- }
- }
-
- this._handle_examine_object = function(status, message, path, cb)
- {
- var
- obj_id = 0,
- tree = this._expand_tree,
- proto_chain = null,
- property_list = null,
- i = 0,
- class_name = '',
- items = null,
- attributes = null,
- cursor = null,
- i = 0,
- re_d = /^\d+$/;
-
- if (status)
- opera.postError(ui_strings.S_DRAGONFLY_INFO_MESSAGE + ' failed to examine object');
- else
- {
- for ( ; path[i]; i++)
- {
- obj_id = path[i];
- // TODO
-
- //alert((path[i + 1] == obj_id) +' '+(i < (path.length - 1) && !tree[obj_id]))
-
- if (i < (path.length - 1) && !tree[obj_id])
- {
- throw 'not valid path in InspectionBaseData._handle_examine_object';
- }
- tree = tree[obj_id] || (tree[obj_id] = {});
- }
- proto_chain = message[OBJECT_CHAIN_LIST][0][OBJECT_LIST];
- for (i = 0; proto = proto_chain[i]; i++)
- {
- class_name = proto[VALUE][CLASS_NAME];
- property_list = proto[PROPERTY_LIST];
- if (property_list)
- {
- if (class_name == "Array" || /Collection/.test(class_name))
- {
- items = [];
- attributes = [];
- for (i = 0; cursor = property_list[i]; i++)
- {
- if (re_d.test(cursor[NAME]))
- {
- cursor[PROPERTY_ITEM] = parseInt(cursor[NAME]);
- items.push(cursor);
- }
- else
- attributes.push(cursor);
- }
- items.sort(this._sort_item);
- attributes.sort(this._sort_name);
- proto[PROPERTY_LIST] = items.concat(attributes);
- }
- else
- proto[PROPERTY_LIST].sort(this._sort_name);
- }
- if (i == 0 && obj_id == this._obj_id && this._virtual_props)
- proto[PROPERTY_LIST] = this._virtual_props.concat(proto[PROPERTY_LIST] || []);
-
- }
-
- this._obj_map[obj_id] = proto_chain;
-
- if (cb)
- {
- cb();
- }
- }
- }
-
- this._sort_name = function(a, b)
- {
- return a[NAME] < b[NAME] ? -1 : a[NAME] > b[NAME] ? 1 : 0;
- };
-
-
- this._sort_item = function(a, b)
- {
- return a[PROPERTY_ITEM] < b[PROPERTY_ITEM] ? -1 : a[PROPERTY_ITEM] > b[PROPERTY_ITEM] ? 1 : 0;
- };
-
- this.clear_data =
- this.clearData = function(path)
- {
- var i = 0, cur = '', tree = this._expand_tree, dead_ids = null, ids = null;
- if (path)
- {
- for (; cur = path[i]; i++)
- {
-
- if (i == path.length -1)
- {
- dead_ids = [cur].concat(this._get_all_ids(tree[cur]));
- tree[cur] = null;
- }
- else
- {
- tree = tree[cur];
- if (!tree)
- throw 'not valid path in InspectionBaseData.clearData';
- }
- }
- ids = this._get_all_ids(this._expand_tree);
- for (i = 0; cur = dead_ids[i]; i++)
- {
- if (ids.indexOf(cur) == -1)
- this._obj_map[cur] = this._queried_map[cur] = null;
- }
- }
- else
- {
- this._obj_map =
- this._queried_map =
- this._expand_tree =
- this._virtual_props = null;
- this._rt_id =
- this._obj_id = 0;
- }
- }
-
- this._get_all_ids = function get_all_ids(tree, ret)
- {
- ret || (ret = []);
- for (var id in tree)
- {
- if (tree[id])
- {
- ret.push(id);
- get_all_ids(tree[id], ret);
- }
- }
- return ret;
- }
-
- this.get_expand_tree = function()
- {
- return this._expand_tree;
- }
-
- this.get_data = function(obj_id)
- {
- return this._obj_map[obj_id];
- }
-
- };
-
- </script>
- <script>
- window.cls || (window.cls = {});
- cls.EcmascriptDebugger || (cls.EcmascriptDebugger = {});
- cls.EcmascriptDebugger["6.0"] || (cls.EcmascriptDebugger["6.0"] = {});
-
- /**
- * @constructor
- * @extends InspectionBaseData
- */
-
- cls.EcmascriptDebugger["6.0"].FixObjectInspectionData = function(rt_id, obj_id, identifier, _class)
- {
- this._init();
- this.setObject(rt_id, obj_id, null, identifier, _class)
- }
- </script>
- <script>
-
- // direct creation of innerHTML string
- (function()
- {
- const
- // sub message ObjectInfo
- VALUE = 0,
- PROPERTY_LIST = 1,
- // sub message ObjectValue
- OBJECT_ID = 0,
- CLASS_NAME = 4,
- // sub message Property
- NAME = 0,
- PROPERTY_TYPE = 1,
- PROPERTY_VALUE = 2,
- OBJECT_VALUE = 3,
- // added fields
- MAX_VALUE_LENGTH = 30;
-
- var _pretty_print_object = function(model, tree, obj_id, ret)
- {
- ret || (ret = []);
- var data = model.get_data(obj_id), obj = model.get_object();
- if (obj && data)
- {
- ret.push(
- "<examine-objects " +
- "rt-id='" + obj.rt_id + "' " +
- "data-id='" + model.id + "' " +
- "obj-id='" + obj.obj_id + "' " +
- ">"
- );
- for (var proto = null, i = 0; proto = data[i]; i++)
- {
- // skip the first object description
- if (i)
- ret.push("<div class='prototype-chain-object'>", proto[VALUE][CLASS_NAME], "</div>");
- _pretty_print_properties(model, tree, proto[PROPERTY_LIST] || [], ret);
- }
- ret.push("</examine-objects>");
- };
- return ret;
- };
-
- var _pretty_print_properties = function(model, tree, property_list, ret)
- {
- var value = '', type = '', short_val = '', obj_id = 0;
- for (var prop = null, i = 0; prop = property_list[i]; i++)
- {
- value = prop[PROPERTY_VALUE];
- switch (type = prop[PROPERTY_TYPE])
- {
- case "number":
- case "boolean":
- {
- ret.push(
- "<item>" +
- "<key class='no-expander'>" + helpers.escapeTextHtml(prop[NAME]) + "</key>" +
- "<value class='" + type + "'>" + value + "</value>" +
- "</item>"
- );
- break;
- }
- case "string":
- {
- short_val = value.length > MAX_VALUE_LENGTH ?
- value.slice(0, MAX_VALUE_LENGTH) + '…"' : '';
- value = helpers.escapeTextHtml(value).replace(/'/g, ''');
- if (short_val)
- {
- ret.push(
- "<item>" +
- "<input type='button' handler='expand-value' class='folder-key'/>" +
- "<key>" + helpers.escapeTextHtml(prop[NAME]) + "</key>" +
- "<value class='" + type + "' data-value='" + value + "'>" +
- "\"" + helpers.escapeTextHtml(short_val) +
- "</value>" +
- "</item>"
- );
- }
- else
- {
- ret.push(
- "<item>" +
- "<key class='no-expander'>" + helpers.escapeTextHtml(prop[NAME]) + "</key>" +
- "<value class='" + type + "'>\"" + value + "\"</value>" +
- "</item>"
- );
- }
- break;
- }
- case "null":
- case "undefined":
- {
- ret.push(
- "<item>" +
- "<key class='no-expander'>" + helpers.escapeTextHtml(prop[NAME]) + "</key>" +
- "<value class='" + type + "'>" + type + "</value>" +
- "</item>"
- );
- break;
- }
- case "object":
- {
- obj_id = prop[OBJECT_VALUE][OBJECT_ID];
- ret.push(
- "<item obj-id='" + obj_id + "'>" +
- "<input " +
- "type='button' " +
- "handler='examine-object' " +
- "class='folder-key' "
- );
- if (obj_id in tree)
- ret.push("style='background-position: 0px -11px') ");
- ret.push(
- "/>" +
- "<key>" + helpers.escapeTextHtml(prop[NAME]) + "</key>" +
- "<value class='object'>" + prop[OBJECT_VALUE][CLASS_NAME] + "</value>"
- );
- if (obj_id in tree)
- _pretty_print_object(model, tree[obj_id], obj_id, ret);
- ret.push("</item>");
- break;
- }
- }
- }
- };
-
- this.inspected_js_object = function(model, show_root, path)
- {
- var tree = model.get_expand_tree();
- if (typeof show_root === 'boolean' && model.get_object())
- path = show_root ? null : [model.get_object().obj_id];
- for (var obj_id = 0, i = 0; path && path[i]; i++)
- {
- tree = tree[obj_id = path[i]];
- if (!tree)
- throw 'not valid path in templates.inspected_js_object';
- }
- return _pretty_print_object(model, tree, obj_id).join('');
- }
-
- }).apply(window.templates || (window.templates = {}));
-
-
- </script>
- <script>
- // template
- (function()
- {
- const
- // sub message ObjectInfo
- VALUE = 0,
- PROPERTY_LIST = 1,
- // sub message ObjectValue
- OBJECT_ID = 0,
- CLASS_NAME = 4,
- // sub message Property
- NAME = 0,
- PROPERTY_TYPE = 1,
- PROPERTY_VALUE = 2,
- OBJECT_VALUE = 3,
- // added fields
- MAX_VALUE_LENGTH = 30;
-
- var _pretty_print_object = function(model, tree, obj_id)
- {
- var ret = [];
- var obj = model.get_object();
- var data = model.get_data(obj_id);
- if (obj && data)
- {
- for (var proto = null, i = 0; proto = data[i]; i++)
- {
- // skip the first object description
- if (i)
- ret.push(['div', proto[VALUE][CLASS_NAME], 'class', 'prototype-chain-object']);
- ret.push(_pretty_print_properties(model, tree, proto[PROPERTY_LIST] || []));
- }
-
- }
- return (
- ['examine-objects',
- ret,
- 'rt-id', obj.rt_id.toString(),
- 'data-id', model.id,
- 'obj-id', obj.obj_id.toString()
- ]);
- };
-
- var _pretty_print_properties = function(model, tree, property_list)
- {
- var ret = [], value = '', type = '', short_val = '', obj_id = 0;
- for (var prop = null, i = 0; prop = property_list[i]; i++)
- {
- value = prop[PROPERTY_VALUE];
- switch (type = prop[PROPERTY_TYPE])
- {
- case "number":
- case "boolean":
- {
- ret.push(
- ['item',
- ['key', helpers.escapeTextHtml(prop[NAME]), 'class', 'no-expander'],
- ['value', value.toString(), 'class', type]
- ]);
- break;
- }
- case "string":
- {
- short_val = value.length > MAX_VALUE_LENGTH ?
- value.slice(0, MAX_VALUE_LENGTH) + '…"' : '';
- value = helpers.escapeTextHtml(value).replace(/'/g, ''');
- if (short_val)
- {
- ret.push(
- ['item',
- ['input', 'type', 'button', 'handler', 'expand-value', 'class', 'folder-key'],
- ['key', helpers.escapeTextHtml(prop[NAME])],
- ['value', helpers.escapeTextHtml(short_val), 'class', type, 'data-value', value]
- ]);
- }
- else
- {
- ret.push(
- ['item',
- ['key', helpers.escapeTextHtml(prop[NAME]), 'class', 'no-expander'],
- ['value', value, 'class', type]
- ]);
- }
- break;
- }
- case "null":
- case "undefined":
- {
- ret.push(
- ['item',
- ['key', helpers.escapeTextHtml(prop[NAME]), 'class', 'no-expander'],
- ['value', type, 'class', type]
- ]);
- break;
- }
- case "object":
- {
- obj_id = prop[OBJECT_VALUE][OBJECT_ID];
- ret.push(
- ['item',
- ['input',
- 'type', 'button',
- 'handler', 'examine-object',
- 'class', 'folder-key'
- ].concat(obj_id in tree ? ['style', 'background-position: 0px -11px'] : []),
- ['key', helpers.escapeTextHtml(prop[NAME])],
- ['value', prop[OBJECT_VALUE][CLASS_NAME], 'class', 'object'],
- obj_id in tree ? _pretty_print_object(model, tree[obj_id], obj_id) : [],
- 'obj-id', obj_id.toString()
- ]);
- break;
- }
- }
- }
- return ret;
- };
-
- this.inspected_js_object_test = function(model, show_root, path)
- {
- var tree = model.get_expand_tree();
- if (typeof show_root === 'boolean' && model.get_object())
- path = show_root ? null : [model.get_object().obj_id];
- for (var obj_id = 0, i = 0; path && path[i]; i++)
- {
- tree = tree[obj_id = path[i]];
- if (!tree)
- throw 'not valid path in InspectionBaseData.pretty_print';
- }
- return _pretty_print_object(model, tree, obj_id);
- }
-
-
- }).apply(window.templates || (window.templates = {}));
-
-
-
- </script>
- <script>
-
- // creating valid HTML5 innerHTML string
- (function()
- {
- const
- // sub message ObjectInfo
- VALUE = 0,
- PROPERTY_LIST = 1,
- // sub message ObjectValue
- OBJECT_ID = 0,
- CLASS_NAME = 4,
- // sub message Property
- NAME = 0,
- PROPERTY_TYPE = 1,
- PROPERTY_VALUE = 2,
- OBJECT_VALUE = 3,
- // added fields
- MAX_VALUE_LENGTH = 30;
-
- var _pretty_print_object = function(model, tree, obj_id, ret)
- {
- ret || (ret = []);
- var data = model.get_data(obj_id), obj = model.get_object();
- if (obj && data)
- {
- ret.push(
- "<div class='examine-objects' " +
- "data-rt-id='" + obj.rt_id + "' " +
- "data-data-id='" + model.id + "' " +
- "data-obj-id='" + obj.obj_id + "' " +
- ">"
- );
- for (var proto = null, i = 0; proto = data[i]; i++)
- {
- // skip the first object description
- if (i)
- ret.push("<div class='prototype-chain-object'>", proto[VALUE][CLASS_NAME], "</div>");
- _pretty_print_properties(model, tree, proto[PROPERTY_LIST] || [], ret);
- }
- ret.push("</div>");
- };
- return ret;
- };
-
- var _pretty_print_properties = function(model, tree, property_list, ret)
- {
- var value = '', type = '', short_val = '', obj_id = 0;
- for (var prop = null, i = 0; prop = property_list[i]; i++)
- {
- value = prop[PROPERTY_VALUE];
- switch (type = prop[PROPERTY_TYPE])
- {
- case "number":
- case "boolean":
- {
- ret.push(
- "<div class='item'>" +
- "<span class='key no-expander'>" + helpers.escapeTextHtml(prop[NAME]) + "</span>" +
- "<span class='value " + type + "'>" + value + "</span>" +
- "</div>"
- );
- break;
- }
- case "string":
- {
- short_val = value.length > MAX_VALUE_LENGTH ?
- value.slice(0, MAX_VALUE_LENGTH) + '…"' : '';
- value = helpers.escapeTextHtml(value).replace(/'/g, ''');
- if (short_val)
- {
- ret.push(
- "<div class='item'>" +
- "<input type='button' data-handler='expand-value' class='folder-key'/>" +
- "<span class='key'>" + helpers.escapeTextHtml(prop[NAME]) + "</span>" +
- "<span class='value " + type + "' data-value='" + value + "'>" +
- "\"" + helpers.escapeTextHtml(short_val) +
- "</span>" +
- "</div>"
- );
- }
- else
- {
- ret.push(
- "<div class='item'>" +
- "<span class='key no-expander'>" + helpers.escapeTextHtml(prop[NAME]) + "</span>" +
- "<span class='value " + type + "'>\"" + value + "\"</span>" +
- "</div>"
- );
- }
- break;
- }
- case "null":
- case "undefined":
- {
- ret.push(
- "<div class='item'>" +
- "<span class='key no-expander'>" + helpers.escapeTextHtml(prop[NAME]) + "</span>" +
- "<span class='value " + type + "'>" + type + "</span>" +
- "</div>"
- );
- break;
- }
- case "object":
- {
- obj_id = prop[OBJECT_VALUE][OBJECT_ID];
- ret.push(
- "<div class='item' data-obj-id='" + obj_id + "'>" +
- "<input " +
- "type='button' " +
- "data-handler='examine-object' " +
- "class='folder-key' "
- );
- if (obj_id in tree)
- ret.push("style='background-position: 0px -11px') ");
- ret.push(
- "/>" +
- "<span class='key'>" + helpers.escapeTextHtml(prop[NAME]) + "</span>" +
- "<span class='value object'>" + prop[OBJECT_VALUE][CLASS_NAME] + "</span>"
- );
- if (obj_id in tree)
- _pretty_print_object(model, tree[obj_id], obj_id, ret);
- ret.push("</div>");
- break;
- }
- }
- }
- };
-
- this.inspected_js_object_3 = function(model, show_root, path)
- {
- var tree = model.get_expand_tree();
- if (typeof show_root === 'boolean' && model.get_object())
- path = show_root ? null : [model.get_object().obj_id];
- for (var obj_id = 0, i = 0; path && path[i]; i++)
- {
- tree = tree[obj_id = path[i]];
- if (!tree)
- throw 'not valid path in templates.inspected_js_object';
- }
- return _pretty_print_object(model, tree, obj_id).join('');
- }
-
- }).apply(window.templates || (window.templates = {}));
-
- </script>
-
-
-
- <script>
- //static data
-
- var __obj_map = {"0":[[[1],[["Window","object",null,[1,null,null,null,""]]]]],"1":[[[1,1,"object",6,"Window"],[["Array","object",null,[34,1,"function",321,"Function","Array"]],["Attr","object",null,[134,1,"object",6,"Attr"]],["Audio","object",null,[106,1,"object",321,"Audio"]],["Boolean","object",null,[37,1,"function",321,"Function","Boolean"]],["ByteArray","object",null,[111,1,"object",321,"ByteArray"]],["CDATASection","object",null,[137,1,"object",6,"CDATASection"]],["CSSMediaRule","object",null,[156,1,"object",6,"CSSMediaRule"]],["CSSPrimitiveValue","object",null,[304,1,"object",321,"CSSPrimitiveValue"]],["CSSRule","object",null,[88,0,"object",6,"CSSRule"]],["CSSRuleList","object",null,[155,1,"object",6,"CSSRuleList"]],["CSSStyleDeclaration","object",null,[153,1,"object",6,"CSSStyleDeclaration"]],["CSSStyleSheet","object",null,[154,1,"object",6,"CSSStyleSheet"]],["CanvasGradient","object",null,[169,1,"object",6,"CanvasGradient"]],["CanvasPattern","object",null,[170,1,"object",6,"CanvasPattern"]],["CanvasRenderingContext2D","object",null,[167,1,"object",6,"CanvasRenderingContext2D"]],["CanvasRenderingContext2DGame","object",null,[168,1,"object",6,"CanvasRenderingContext2DGame"]],["ClientRect","object",null,[150,1,"object",6,"ClientRect"]],["ClientRectList","object",null,[151,1,"object",6,"ClientRectList"]],["Comment","object",null,[136,1,"object",6,"Comment"]],["ConnectionCallback","object",null,[116,1,"function",321,"Function","ConnectionCallback"]],["DOMError","object",null,[92,0,"object",6,"DOMError"]],["DOMException","object",null,[91,0,"object",6,"DOMException"]],["DOMImplementationLS","object",null,[96,0,"object",6,"DOMImplementationLS"]],["DOMParser","object",null,[94,1,"object",321,"DOMParser"]],["Database","object",null,[172,1,"object",6,"Database"]],["Date","object",null,[39,1,"function",321,"Function","Date"]],["Document","object",null,[132,1,"object",6,"Document"]],["DocumentFragment","object",null,[133,1,"object",6,"DocumentFragment"]],["DocumentType","object",null,[138,1,"object",6,"DocumentType"]],["Element","object",null,[131,1,"object",6,"Element"]],["Entity","object",null,[140,1,"object",6,"Entity"]],["EntityReference","object",null,[141,1,"object",6,"EntityReference"]],["Error","object",null,[42,1,"function",321,"Function","Error"]],["EvalError","object",null,[43,1,"function",321,"Function","EvalError"]],["Event","object",null,[119,1,"object",6,"Event"]],["Function","object",null,[33,1,"function",321,"Function","Function"]],["HTMLAnchorElement","object",null,[207,1,"object",321,"HTMLAnchorElement"]],["HTMLAppletElement","object",null,[211,1,"object",321,"HTMLAppletElement"]],["HTMLAreaElement","object",null,[214,1,"object",321,"HTMLAreaElement"]],["HTMLAudioElement","object",null,[225,1,"object",321,"HTMLAudioElement"]],["HTMLBRElement","object",null,[202,1,"object",321,"HTMLBRElement"]],["HTMLBaseElement","object",null,[182,1,"object",321,"HTMLBaseElement"]],["HTMLBaseFontElement","object",null,[203,1,"object",321,"HTMLBaseFontElement"]],["HTMLBodyElement","object",null,[117,1,"object",321,"HTMLBodyElement"]],["HTMLButtonElement","object",null,[118,1,"object",321,"HTMLButtonElement"]],["HTMLCanvasElement","object",null,[228,1,"object",321,"HTMLCanvasElement"]],["HTMLCollection","object",null,[146,1,"object",6,"HTMLCollection"]],["HTMLDListElement","object",null,[129,1,"object",321,"HTMLDListElement"]],["HTMLDataListElement","object",null,[194,1,"object",321,"HTMLDataListElement"]],["HTMLDirectoryElement","object",null,[197,1,"object",321,"HTMLDirectoryElement"]],["HTMLDivElement","object",null,[122,1,"object",321,"HTMLDivElement"]],["HTMLDocument","object",null,[148,1,"object",6,"HTMLDocument"]],["HTMLElement","object",null,[149,1,"object",6,"HTMLElement"]],["HTMLEmbedElement","object",null,[212,1,"object",321,"HTMLEmbedElement"]],["HTMLFieldSetElement","object",null,[191,1,"object",321,"HTMLFieldSetElement"]],["HTMLFontElement","object",null,[204,1,"object",321,"HTMLFontElement"]],["HTMLFormElement","object",null,[185,1,"object",321,"HTMLFormElement"]],["HTMLFrameElement","object",null,[222,1,"object",321,"HTMLFrameElement"]],["HTMLFrameSetElement","object",null,[221,1,"object",321,"HTMLFrameSetElement"]],["HTMLHRElement","object",null,[205,1,"object",321,"HTMLHRElement"]],["HTMLHeadElement","object",null,[126,1,"object",321,"HTMLHeadElement"]],["HTMLHeadingElement","object",null,[128,1,"object",321,"HTMLHeadingElement"]],["HTMLHtmlElement","object",null,[112,1,"object",321,"HTMLHtmlElement"]],["HTMLIFrameElement","object",null,[223,1,"object",321,"HTMLIFrameElement"]],["HTMLImageElement","object",null,[208,1,"object",321,"HTMLImageElement"]],["HTMLInputElement","object",null,[123,1,"object",321,"HTMLInputElement"]],["HTMLIsIndexElement","object",null,[183,1,"object",321,"HTMLIsIndexElement"]],["HTMLLIElement","object",null,[199,1,"object",321,"HTMLLIElement"]],["HTMLLabelElement","object",null,[190,1,"object",321,"HTMLLabelElement"]],["HTMLLegendElement","object",null,[192,1,"object",321,"HTMLLegendElement"]],["HTMLLinkElement","object",null,[125,1,"object",321,"HTMLLinkElement"]],["HTMLMapElement","object",null,[213,1,"object",321,"HTMLMapElement"]],["HTMLMarqueeElement","object",null,[229,1,"object",321,"HTMLMarqueeElement"]],["HTMLMediaElement","object",null,[224,1,"object",321,"HTMLMediaElement"]],["HTMLMenuElement","object",null,[198,1,"object",321,"HTMLMenuElement"]],["HTMLMetaElement","object",null,[181,1,"object",321,"HTMLMetaElement"]],["HTMLModElement","object",null,[206,1,"object",321,"HTMLModElement"]],["HTMLOListElement","object",null,[196,1,"object",321,"HTMLOListElement"]],["HTMLObjectElement","object",null,[209,1,"object",321,"HTMLObjectElement"]],["HTMLOptGroupElement","object",null,[187,1,"object",321,"HTMLOptGroupElement"]],["HTMLOptionElement","object",null,[188,1,"object",321,"HTMLOptionElement"]],["HTMLOptionsCollection","object",null,[147,1,"object",6,"HTMLOptionsCollection"]],["HTMLOutputElement","object",null,[193,1,"object",321,"HTMLOutputElement"]],["HTMLParagraphElement","object",null,[124,1,"object",321,"HTMLParagraphElement"]],["HTMLParamElement","object",null,[210,1,"object",321,"HTMLParamElement"]],["HTMLPreElement","object",null,[201,1,"object",321,"HTMLPreElement"]],["HTMLQuoteElement","object",null,[200,1,"object",321,"HTMLQuoteElement"]],["HTMLScriptElement","object",null,[113,1,"object",321,"HTMLScriptElement"]],["HTMLSelectElement","object",null,[186,1,"object",321,"HTMLSelectElement"]],["HTMLSourceElement","object",null,[227,1,"object",321,"HTMLSourceElement"]],["HTMLStyleElement","object",null,[184,1,"object",321,"HTMLStyleElement"]],["HTMLTableCaptionElement","object",null,[216,1,"object",321,"HTMLTableCaptionElement"]],["HTMLTableCellElement","object",null,[220,1,"object",321,"HTMLTableCellElement"]],["HTMLTableColElement","object",null,[217,1,"object",321,"HTMLTableColElement"]],["HTMLTableElement","object",null,[215,1,"object",321,"HTMLTableElement"]],["HTMLTableRowElement","object",null,[219,1,"object",321,"HTMLTableRowElement"]],["HTMLTableSectionElement","object",null,[218,1,"object",321,"HTMLTableSectionElement"]],["HTMLTextAreaElement","object",null,[189,1,"object",321,"HTMLTextAreaElement"]],["HTMLTitleElement","object",null,[127,1,"object",321,"HTMLTitleElement"]],["HTMLUListElement","object",null,[195,1,"object",321,"HTMLUListElement"]],["HTMLUnknownElement","object",null,[180,1,"object",321,"HTMLUnknownElement"]],["HTMLVideoElement","object",null,[226,1,"object",321,"HTMLVideoElement"]],["Image","object",null,[104,1,"object",321,"Image"]],["ImageData","object",null,[110,1,"object",321,"ImageData"]],["Infinity","number","Infinity"],["JSON","object",null,[41,0,"object",6,"JSON"]],["LSException","object",null,[93,0,"object",6,"LSException"]],["LSParser","object",null,[160,1,"object",6,"LSParser"]],["LSParserFilter","object",null,[95,0,"object",6,"LSParserFilter"]],["Math","object",null,[40,0,"object",6,"Math"]],["MediaError","object",null,[165,1,"object",6,"MediaError"]],["MediaList","object",null,[158,1,"object",6,"MediaList"]],["MouseEvent","object",null,[121,1,"object",6,"MouseEvent"]],["MutationEvent","object",null,[152,1,"object",6,"MutationEvent"]],["NaN","number","NaN"],["NamedNodeMap","object",null,[144,1,"object",6,"NamedNodeMap"]],["Node","object",null,[130,1,"object",6,"Node"]],["NodeFilter","object",null,[89,0,"object",6,"NodeFilter"]],["NodeList","object",null,[143,1,"object",6,"NodeList"]],["Notation","object",null,[139,1,"object",6,"Notation"]],["Number","object",null,[36,1,"function",321,"Function","Number"]],["Object","object",null,[32,1,"function",321,"Function","Object"]],["Option","object",null,[105,1,"object",321,"Option"]],["ProcessingInstruction","object",null,[142,1,"object",6,"ProcessingInstruction"]],["RGBColor","object",null,[305,1,"object",321,"RGBColor"]],["Range","object",null,[159,1,"object",6,"Range"]],["RangeError","object",null,[44,1,"function",321,"Function","RangeError"]],["RangeException","object",null,[90,0,"object",6,"RangeException"]],["ReferenceError","object",null,[45,1,"function",321,"Function","ReferenceError"]],["RegExp","object",null,[38,1,"function",321,"Function","RegExp"]],["SQLError","object",null,[176,1,"object",6,"SQLError"]],["SQLResultSet","object",null,[174,1,"object",6,"SQLResultSet"]],["SQLResultSetRowList","object",null,[175,1,"object",6,"SQLResultSetRowList"]],["SQLTransaction","object",null,[173,1,"object",6,"SQLTransaction"]],["SVGAElement","object",null,[257,1,"object",321,"SVGAElement"]],["SVGAngle","object",null,[308,1,"object",321,"SVGAngle"]],["SVGAnimateColorElement","object",null,[231,1,"object",321,"SVGAnimateColorElement"]],["SVGAnimateElement","object",null,[230,1,"object",321,"SVGAnimateElement"]],["SVGAnimateMotionElement","object",null,[234,1,"object",321,"SVGAnimateMotionElement"]],["SVGAnimateTransformElement","object",null,[232,1,"object",321,"SVGAnimateTransformElement"]],["SVGAnimationElement","object",null,[299,1,"object",321,"SVGAnimationElement"]],["SVGAudioElement","object",null,[297,1,"object",321,"SVGAudioElement"]],["SVGCircleElement","object",null,[235,1,"object",321,"SVGCircleElement"]],["SVGClipPathElement","object",null,[265,1,"object",321,"SVGClipPathElement"]],["SVGDefsElement","object",null,[236,1,"object",321,"SVGDefsElement"]],["SVGDescElement","object",null,[237,1,"object",321,"SVGDescElement"]],["SVGDocument","object",null,[166,1,"object",6,"SVGDocument"]],["SVGEllipseElement","object",null,[238,1,"object",321,"SVGEllipseElement"]],["SVGException","object",null,[107,0,"object",6,"SVGException"]],["SVGFEBlendElement","object",null,[266,1,"object",321,"SVGFEBlendElement"]],["SVGFEColorMatrixElement","object",null,[267,1,"object",321,"SVGFEColorMatrixElement"]],["SVGFEComponentTransferElement","object",null,[268,1,"object",321,"SVGFEComponentTransferElement"]],["SVGFECompositeElement","object",null,[273,1,"object",321,"SVGFECompositeElement"]],["SVGFEConvolveMatrixElement","object",null,[274,1,"object",321,"SVGFEConvolveMatrixElement"]],["SVGFEDiffuseLightingElement","object",null,[275,1,"object",321,"SVGFEDiffuseLightingElement"]],["SVGFEDisplacementMapElement","object",null,[279,1,"object",321,"SVGFEDisplacementMapElement"]],["SVGFEDistantLightElement","object",null,[276,1,"object",321,"SVGFEDistantLightElement"]],["SVGFEFloodElement","object",null,[280,1,"object",321,"SVGFEFloodElement"]],["SVGFEFuncAElement","object",null,[272,1,"object",321,"SVGFEFuncAElement"]],["SVGFEFuncBElement","object",null,[271,1,"object",321,"SVGFEFuncBElement"]],["SVGFEFuncGElement","object",null,[270,1,"object",321,"SVGFEFuncGElement"]],["SVGFEFuncRElement","object",null,[269,1,"object",321,"SVGFEFuncRElement"]],["SVGFEGaussianBlurElement","object",null,[281,1,"object",321,"SVGFEGaussianBlurElement"]],["SVGFEImageElement","object",null,[282,1,"object",321,"SVGFEImageElement"]],["SVGFEMergeElement","object",null,[283,1,"object",321,"SVGFEMergeElement"]],["SVGFEMergeNodeElement","object",null,[284,1,"object",321,"SVGFEMergeNodeElement"]],["SVGFEMorphologyElement","object",null,[285,1,"object",321,"SVGFEMorphologyElement"]],["SVGFEOffsetElement","object",null,[286,1,"object",321,"SVGFEOffsetElement"]],["SVGFEPointLightElement","object",null,[277,1,"object",321,"SVGFEPointLightElement"]],["SVGFESpecularLightingElement","object",null,[287,1,"object",321,"SVGFESpecularLightingElement"]],["SVGFESpotLightElement","object",null,[278,1,"object",321,"SVGFESpotLightElement"]],["SVGFETileElement","object",null,[288,1,"object",321,"SVGFETileElement"]],["SVGFETurbulenceElement","object",null,[289,1,"object",321,"SVGFETurbulenceElement"]],["SVGFilterElement","object",null,[290,1,"object",321,"SVGFilterElement"]],["SVGFontElement","object",null,[260,1,"object",321,"SVGFontElement"]],["SVGForeignObjectElement","object",null,[263,1,"object",321,"SVGForeignObjectElement"]],["SVGGElement","object",null,[239,1,"object",321,"SVGGElement"]],["SVGGlyphElement","object",null,[261,1,"object",321,"SVGGlyphElement"]],["SVGImageElement","object",null,[240,1,"object",321,"SVGImageElement"]],["SVGLength","object",null,[307,1,"object",321,"SVGLength"]],["SVGLineElement","object",null,[241,1,"object",321,"SVGLineElement"]],["SVGLinearGradientElement","object",null,[242,1,"object",321,"SVGLinearGradientElement"]],["SVGMPathElement","object",null,[259,1,"object",321,"SVGMPathElement"]],["SVGMarkerElement","object",null,[291,1,"object",321,"SVGMarkerElement"]],["SVGMaskElement","object",null,[292,1,"object",321,"SVGMaskElement"]],["SVGMatrix","object",null,[302,1,"object",321,"SVGMatrix"]],["SVGMissingGlyphElement","object",null,[262,1,"object",321,"SVGMissingGlyphElement"]],["SVGNumber","object",null,[306,1,"object",321,"SVGNumber"]],["SVGPaint","object",null,[310,1,"object",321,"SVGPaint"]],["SVGPath","object",null,[314,1,"object",321,"SVGPath"]],["SVGPathElement","object",null,[243,1,"object",321,"SVGPathElement"]],["SVGPathSeg","object",null,[312,1,"object",321,"SVGPathSeg"]],["SVGPatternElement","object",null,[293,1,"object",321,"SVGPatternElement"]],["SVGPoint","object",null,[301,1,"object",321,"SVGPoint"]],["SVGPolygonElement","object",null,[244,1,"object",321,"SVGPolygonElement"]],["SVGPolylineElement","object",null,[245,1,"object",321,"SVGPolylineElement"]],["SVGPreserveAspectRatio","object",null,[311,1,"object",321,"SVGPreserveAspectRatio"]],["SVGRGBColor","object",null,[313,1,"object",321,"SVGRGBColor"]],["SVGRadialGradientElement","object",null,[246,1,"object",321,"SVGRadialGradientElement"]],["SVGRect","object",null,[303,1,"object",321,"SVGRect"]],["SVGRectElement","object",null,[247,1,"object",321,"SVGRectElement"]],["SVGSVGElement","object",null,[264,1,"object",321,"SVGSVGElement"]],["SVGScriptElement","object",null,[258,1,"object",321,"SVGScriptElement"]],["SVGSetElement","object",null,[233,1,"object",321,"SVGSetElement"]],["SVGStopElement","object",null,[248,1,"object",321,"SVGStopElement"]],["SVGStyleElement","object",null,[294,1,"object",321,"SVGStyleElement"]],["SVGSwitchElement","o…
Large files files are truncated, but you can click here to view the full file