polyfill-library 4.2.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. package/CHANGELOG.md +4 -4
  2. package/package.json +10 -11
  3. package/polyfills/__dist/Array.prototype.@@iterator/meta.json +1 -1
  4. package/polyfills/__dist/ArrayBuffer.prototype.@@toStringTag/meta.json +1 -0
  5. package/polyfills/__dist/ArrayBuffer.prototype.@@toStringTag/min.js +1 -0
  6. package/polyfills/__dist/ArrayBuffer.prototype.@@toStringTag/raw.js +19 -0
  7. package/polyfills/__dist/HTMLTemplateElement/meta.json +1 -1
  8. package/polyfills/__dist/HTMLTemplateElement/min.js +1 -1
  9. package/polyfills/__dist/HTMLTemplateElement/raw.js +25 -598
  10. package/polyfills/__dist/Map/meta.json +1 -1
  11. package/polyfills/__dist/Map/min.js +1 -1
  12. package/polyfills/__dist/Map/raw.js +12 -0
  13. package/polyfills/__dist/Promise/meta.json +1 -1
  14. package/polyfills/__dist/Promise/min.js +1 -1
  15. package/polyfills/__dist/Promise/raw.js +10 -0
  16. package/polyfills/__dist/Set/meta.json +1 -1
  17. package/polyfills/__dist/Set/min.js +1 -1
  18. package/polyfills/__dist/Set/raw.js +12 -0
  19. package/polyfills/__dist/String.prototype.@@iterator/meta.json +1 -1
  20. package/polyfills/__dist/Symbol.toStringTag/meta.json +1 -1
  21. package/polyfills/__dist/TypedArray.prototype.@@iterator/meta.json +1 -0
  22. package/polyfills/__dist/TypedArray.prototype.@@iterator/min.js +1 -0
  23. package/polyfills/__dist/TypedArray.prototype.@@iterator/raw.js +22 -0
  24. package/polyfills/__dist/TypedArray.prototype.@@toStringTag/meta.json +1 -0
  25. package/polyfills/__dist/TypedArray.prototype.@@toStringTag/min.js +1 -0
  26. package/polyfills/__dist/TypedArray.prototype.@@toStringTag/raw.js +91 -0
  27. package/polyfills/__dist/TypedArray.prototype.entries/meta.json +1 -0
  28. package/polyfills/__dist/TypedArray.prototype.entries/min.js +1 -0
  29. package/polyfills/__dist/TypedArray.prototype.entries/raw.js +38 -0
  30. package/polyfills/__dist/TypedArray.prototype.keys/meta.json +1 -0
  31. package/polyfills/__dist/TypedArray.prototype.keys/min.js +1 -0
  32. package/polyfills/__dist/TypedArray.prototype.keys/raw.js +38 -0
  33. package/polyfills/__dist/TypedArray.prototype.toLocaleString/meta.json +1 -0
  34. package/polyfills/__dist/TypedArray.prototype.toLocaleString/min.js +1 -0
  35. package/polyfills/__dist/TypedArray.prototype.toLocaleString/raw.js +31 -0
  36. package/polyfills/__dist/TypedArray.prototype.toString/meta.json +1 -0
  37. package/polyfills/__dist/TypedArray.prototype.toString/min.js +1 -0
  38. package/polyfills/__dist/TypedArray.prototype.toString/raw.js +29 -0
  39. package/polyfills/__dist/TypedArray.prototype.values/meta.json +1 -0
  40. package/polyfills/__dist/TypedArray.prototype.values/min.js +1 -0
  41. package/polyfills/__dist/TypedArray.prototype.values/raw.js +43 -0
  42. package/polyfills/__dist/WeakMap/meta.json +1 -1
  43. package/polyfills/__dist/WeakSet/meta.json +1 -1
  44. package/polyfills/__dist/WeakSet/min.js +1 -1
  45. package/polyfills/__dist/WeakSet/raw.js +6 -0
  46. package/polyfills/__dist/_ArrayIterator/meta.json +1 -1
  47. package/polyfills/__dist/_ArrayIterator/min.js +1 -1
  48. package/polyfills/__dist/_ArrayIterator/raw.js +8 -1
  49. package/polyfills/__dist/_StringIterator/meta.json +1 -1
  50. package/polyfills/__dist/_StringIterator/min.js +1 -1
  51. package/polyfills/__dist/_StringIterator/raw.js +8 -1
  52. package/polyfills/__dist/aliases.json +1 -1
@@ -1,602 +1,29 @@
1
1
 
2
2
  // HTMLTemplateElement
3
- /**
4
- * @license
5
- * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
6
- * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
7
- * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
8
- * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
9
- * Code distributed by Google as part of the polymer project is also
10
- * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
11
- */
3
+ (function(){
4
+ /*
5
+
6
+ Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
7
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
8
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
9
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
10
+ Code distributed by Google as part of the polymer project is also
11
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
12
+ */
13
+ 'use strict';(function(){function f(){}function p(a,b){if(!a.childNodes.length)return[];switch(a.nodeType){case Node.DOCUMENT_NODE:return J.call(a,b);case Node.DOCUMENT_FRAGMENT_NODE:return K.call(a,b);default:return L.call(a,b)}}var q="undefined"===typeof HTMLTemplateElement,A=!(document.createDocumentFragment().cloneNode()instanceof DocumentFragment),B=!1;/Trident/.test(navigator.userAgent)&&function(){function a(c,g){if(c instanceof DocumentFragment)for(var r;r=c.firstChild;)d.call(this,r,g);else d.call(this,
14
+ c,g);return c}B=!0;var b=Node.prototype.cloneNode;Node.prototype.cloneNode=function(c){c=b.call(this,c);this instanceof DocumentFragment&&(c.__proto__=DocumentFragment.prototype);return c};DocumentFragment.prototype.querySelectorAll=HTMLElement.prototype.querySelectorAll;DocumentFragment.prototype.querySelector=HTMLElement.prototype.querySelector;Object.defineProperties(DocumentFragment.prototype,{nodeType:{get:function(){return Node.DOCUMENT_FRAGMENT_NODE},configurable:!0},localName:{get:function(){},
15
+ configurable:!0},nodeName:{get:function(){return"#document-fragment"},configurable:!0}});var d=Node.prototype.insertBefore;Node.prototype.insertBefore=a;var e=Node.prototype.appendChild;Node.prototype.appendChild=function(c){c instanceof DocumentFragment?a.call(this,c,null):e.call(this,c);return c};var h=Node.prototype.removeChild,k=Node.prototype.replaceChild;Node.prototype.replaceChild=function(c,g){c instanceof DocumentFragment?(a.call(this,c,g),h.call(this,g)):k.call(this,c,g);return g};Document.prototype.createDocumentFragment=
16
+ function(){var c=this.createElement("df");c.__proto__=DocumentFragment.prototype;return c};var l=Document.prototype.importNode;Document.prototype.importNode=function(c,g){g=l.call(this,c,g||!1);c instanceof DocumentFragment&&(g.__proto__=DocumentFragment.prototype);return g}}();var v=Node.prototype.cloneNode,C=Document.prototype.createElement,M=Document.prototype.importNode,N=Node.prototype.removeChild,t=Node.prototype.appendChild,w=Node.prototype.replaceChild,O=DOMParser.prototype.parseFromString,
17
+ P=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,"innerHTML")||{get:function(){return this.innerHTML},set:function(a){this.innerHTML=a}},Q=Object.getOwnPropertyDescriptor(window.Node.prototype,"childNodes")||{get:function(){return this.childNodes}},L=Element.prototype.querySelectorAll,J=Document.prototype.querySelectorAll,K=DocumentFragment.prototype.querySelectorAll,R=function(){if(!q){var a=document.createElement("template"),b=document.createElement("template");b.content.appendChild(document.createElement("div"));
18
+ a.content.appendChild(b);a=a.cloneNode(!0);return 0===a.content.childNodes.length||0===a.content.firstChild.content.childNodes.length||A}}();if(q){var m=document.implementation.createHTMLDocument("template"),D=!0,n=document.createElement("style");n.textContent="template{display:none;}";var E=document.head;E.insertBefore(n,E.firstElementChild);f.prototype=Object.create(HTMLElement.prototype);var S=!document.createElement("div").hasOwnProperty("innerHTML");f.g=function(a){if(!a.content&&a.namespaceURI===
19
+ document.documentElement.namespaceURI){a.content=m.createDocumentFragment();for(var b;b=a.firstChild;)t.call(a.content,b);if(S)a.__proto__=f.prototype;else if(a.cloneNode=function(d){return f.i(this,d)},D)try{F(a),G(a)}catch(d){D=!1}f.h(a.content)}};var T={option:["select"],thead:["table"],col:["colgroup","table"],tr:["tbody","table"],th:["tr","tbody","table"],td:["tr","tbody","table"]},F=function(a){Object.defineProperty(a,"innerHTML",{get:function(){return x(this)},set:function(b){var d=T[(/<([a-z][^/\0>\x20\t\r\n\f]+)/i.exec(b)||
20
+ ["",""])[1].toLowerCase()];if(d)for(var e=0;e<d.length;e++)b="<"+d[e]+">"+b+"</"+d[e]+">";m.body.innerHTML=b;for(f.h(m);this.content.firstChild;)N.call(this.content,this.content.firstChild);b=m.body;if(d)for(e=0;e<d.length;e++)b=b.lastChild;for(;b.firstChild;)t.call(this.content,b.firstChild)},configurable:!0})},G=function(a){Object.defineProperty(a,"outerHTML",{get:function(){return"<template>"+this.innerHTML+"</template>"},set:function(b){if(this.parentNode){m.body.innerHTML=b;for(b=this.ownerDocument.createDocumentFragment();m.body.firstChild;)t.call(b,
21
+ m.body.firstChild);w.call(this.parentNode,b,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};F(f.prototype);G(f.prototype);f.h=function(a){a=p(a,"template");for(var b=0,d=a.length,e;b<d&&(e=a[b]);b++)f.g(e)};document.addEventListener("DOMContentLoaded",function(){f.h(document)});Document.prototype.createElement=function(){var a=C.apply(this,arguments);"template"===a.localName&&f.g(a);return a};DOMParser.prototype.parseFromString=
22
+ function(){var a=O.apply(this,arguments);f.h(a);return a};Object.defineProperty(HTMLElement.prototype,"innerHTML",{get:function(){return x(this)},set:function(a){P.set.call(this,a);f.h(this)},configurable:!0,enumerable:!0});var U=/[&\u00A0"]/g,V=/[&\u00A0<>]/g,H=function(a){switch(a){case "&":return"&amp;";case "<":return"&lt;";case ">":return"&gt;";case '"':return"&quot;";case "\u00a0":return"&nbsp;"}};n=function(a){for(var b={},d=0;d<a.length;d++)b[a[d]]=!0;return b};var W=n("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")),
23
+ X=n("style script xmp iframe noembed noframes plaintext noscript".split(" ")),x=function(a,b){"template"===a.localName&&(a=a.content);for(var d="",e=b?b(a):Q.get.call(a),h=0,k=e.length,l;h<k&&(l=e[h]);h++){a:{var c=l;var g=a;var r=b;switch(c.nodeType){case Node.ELEMENT_NODE:for(var y=c.localName,u="<"+y,Y=c.attributes,I=0;g=Y[I];I++)u+=" "+g.name+'="'+g.value.replace(U,H)+'"';u+=">";c=W[y]?u:u+x(c,r)+"</"+y+">";break a;case Node.TEXT_NODE:c=c.data;c=g&&X[g.localName]?c:c.replace(V,H);break a;case Node.COMMENT_NODE:c=
24
+ "\x3c!--"+c.data+"--\x3e";break a;default:throw window.console.error(c),Error("not implemented");}}d+=c}return d}}if(q||R){f.i=function(a,b){var d=v.call(a,!1);this.g&&this.g(d);b&&(t.call(d.content,v.call(a.content,!0)),z(d.content,a.content));return d};var z=function(a,b){if(b.querySelectorAll&&(b=p(b,"template"),0!==b.length)){a=p(a,"template");for(var d=0,e=a.length,h,k;d<e;d++)k=b[d],h=a[d],f&&f.g&&f.g(k),w.call(h.parentNode,Z.call(k,!0),h)}},Z=Node.prototype.cloneNode=function(a){if(!B&&A&&
25
+ this instanceof DocumentFragment)if(a)var b=aa.call(this.ownerDocument,this,!0);else return this.ownerDocument.createDocumentFragment();else this.nodeType===Node.ELEMENT_NODE&&"template"===this.localName&&this.namespaceURI==document.documentElement.namespaceURI?b=f.i(this,a):b=v.call(this,a);a&&z(b,this);return b},aa=Document.prototype.importNode=function(a,b){b=b||!1;if("template"===a.localName)return f.i(a,b);var d=M.call(this,a,b);if(b){z(d,a);a=p(d,'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]');
26
+ for(var e,h=0;h<a.length;h++){e=a[h];b=C.call(document,"script");b.textContent=e.textContent;for(var k=e.attributes,l=0,c;l<k.length;l++)c=k[l],b.setAttribute(c.name,c.value);w.call(e.parentNode,b,e)}}return d}}q&&(window.HTMLTemplateElement=f)})();
27
+ }).call(self);
12
28
 
13
- // minimal template polyfill
14
- (function() {
15
- 'use strict';
16
29
 
17
- var needsTemplate = (typeof HTMLTemplateElement === 'undefined');
18
- var brokenDocFragment = !(document.createDocumentFragment().cloneNode() instanceof DocumentFragment);
19
- var needsDocFrag = false;
20
-
21
- // NOTE: Replace DocumentFragment to work around IE11 bug that
22
- // causes children of a document fragment modified while
23
- // there is a mutation observer to not have a parentNode, or
24
- // have a broken parentNode (!?!)
25
- if (/Trident/.test(navigator.userAgent)) {
26
- (function() {
27
-
28
- needsDocFrag = true;
29
-
30
- var origCloneNode = Node.prototype.cloneNode;
31
- Node.prototype.cloneNode = function cloneNode(deep) {
32
- var newDom = origCloneNode.call(this, deep);
33
- if (this instanceof DocumentFragment) {
34
- newDom.__proto__ = DocumentFragment.prototype;
35
- }
36
- return newDom;
37
- };
38
-
39
- // IE's DocumentFragment querySelector code doesn't work when
40
- // called on an element instance
41
- DocumentFragment.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll;
42
- DocumentFragment.prototype.querySelector = HTMLElement.prototype.querySelector;
43
-
44
- Object.defineProperties(DocumentFragment.prototype, {
45
- 'nodeType': {
46
- get: function () {
47
- return Node.DOCUMENT_FRAGMENT_NODE;
48
- },
49
- configurable: true
50
- },
51
-
52
- 'localName': {
53
- get: function () {
54
- return undefined;
55
- },
56
- configurable: true
57
- },
58
-
59
- 'nodeName': {
60
- get: function () {
61
- return '#document-fragment';
62
- },
63
- configurable: true
64
- }
65
- });
66
-
67
- var origInsertBefore = Node.prototype.insertBefore;
68
- function insertBefore(newNode, refNode) {
69
- if (newNode instanceof DocumentFragment) {
70
- var child;
71
- while ((child = newNode.firstChild)) {
72
- origInsertBefore.call(this, child, refNode);
73
- }
74
- } else {
75
- origInsertBefore.call(this, newNode, refNode);
76
- }
77
- return newNode;
78
- }
79
- Node.prototype.insertBefore = insertBefore;
80
-
81
- var origAppendChild = Node.prototype.appendChild;
82
- Node.prototype.appendChild = function appendChild(child) {
83
- if (child instanceof DocumentFragment) {
84
- insertBefore.call(this, child, null);
85
- } else {
86
- origAppendChild.call(this, child);
87
- }
88
- return child;
89
- };
90
-
91
- var origRemoveChild = Node.prototype.removeChild;
92
- var origReplaceChild = Node.prototype.replaceChild;
93
- Node.prototype.replaceChild = function replaceChild(newChild, oldChild) {
94
- if (newChild instanceof DocumentFragment) {
95
- insertBefore.call(this, newChild, oldChild);
96
- origRemoveChild.call(this, oldChild);
97
- } else {
98
- origReplaceChild.call(this, newChild, oldChild);
99
- }
100
- return oldChild;
101
- };
102
-
103
- Document.prototype.createDocumentFragment = function createDocumentFragment() {
104
- var frag = this.createElement('df');
105
- frag.__proto__ = DocumentFragment.prototype;
106
- return frag;
107
- };
108
-
109
- var origImportNode = Document.prototype.importNode;
110
- Document.prototype.importNode = function importNode(impNode, deep) {
111
- deep = deep || false;
112
- var newNode = origImportNode.call(this, impNode, deep);
113
- if (impNode instanceof DocumentFragment) {
114
- newNode.__proto__ = DocumentFragment.prototype;
115
- }
116
- return newNode;
117
- };
118
- })();
119
- }
120
-
121
- // NOTE: we rely on this cloneNode not causing element upgrade.
122
- // This means this polyfill must load before the CE polyfill and
123
- // this would need to be re-worked if a browser supports native CE
124
- // but not <template>.
125
- var capturedCloneNode = Node.prototype.cloneNode;
126
- var capturedCreateElement = Document.prototype.createElement;
127
- var capturedImportNode = Document.prototype.importNode;
128
- var capturedRemoveChild = Node.prototype.removeChild;
129
- var capturedAppendChild = Node.prototype.appendChild;
130
- var capturedReplaceChild = Node.prototype.replaceChild;
131
- var capturedParseFromString = DOMParser.prototype.parseFromString;
132
- var capturedHTMLElementInnerHTML = Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, 'innerHTML') || {
133
- /**
134
- * @this {!HTMLElement}
135
- * @return {string}
136
- */
137
- get: function() {
138
- return this.innerHTML;
139
- },
140
- /**
141
- * @this {!HTMLElement}
142
- * @param {string}
143
- */
144
- set: function(text) {
145
- this.innerHTML = text;
146
- }
147
- };
148
- var capturedChildNodes = Object.getOwnPropertyDescriptor(window.Node.prototype, 'childNodes') || {
149
- /**
150
- * @this {!Node}
151
- * @return {!NodeList}
152
- */
153
- get: function() {
154
- return this.childNodes;
155
- }
156
- };
157
-
158
- var elementQuerySelectorAll = Element.prototype.querySelectorAll;
159
- var docQuerySelectorAll = Document.prototype.querySelectorAll;
160
- var fragQuerySelectorAll = DocumentFragment.prototype.querySelectorAll;
161
-
162
- var scriptSelector = 'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]';
163
-
164
- function QSA(node, selector) {
165
- // IE 11 throws a SyntaxError with `scriptSelector` if the node has no children due to the `:not([type])` syntax
166
- if (!node.childNodes.length) {
167
- return [];
168
- }
169
- switch (node.nodeType) {
170
- case Node.DOCUMENT_NODE:
171
- return docQuerySelectorAll.call(node, selector);
172
- case Node.DOCUMENT_FRAGMENT_NODE:
173
- return fragQuerySelectorAll.call(node, selector);
174
- default:
175
- return elementQuerySelectorAll.call(node, selector);
176
- }
177
- }
178
-
179
- // returns true if nested templates cannot be cloned (they cannot be on
180
- // some impl's like Safari 8 and Edge)
181
- // OR if cloning a document fragment does not result in a document fragment
182
- var needsCloning = (function() {
183
- if (!needsTemplate) {
184
- var t = document.createElement('template');
185
- var t2 = document.createElement('template');
186
- t2.content.appendChild(document.createElement('div'));
187
- t.content.appendChild(t2);
188
- var clone = t.cloneNode(true);
189
- return (clone.content.childNodes.length === 0 || clone.content.firstChild.content.childNodes.length === 0
190
- || brokenDocFragment);
191
- }
192
- })();
193
-
194
- var TEMPLATE_TAG = 'template';
195
- var PolyfilledHTMLTemplateElement = function() {};
196
-
197
- if (needsTemplate) {
198
-
199
- var contentDoc = document.implementation.createHTMLDocument('template');
200
- var canDecorate = true;
201
-
202
- var templateStyle = document.createElement('style');
203
- templateStyle.textContent = TEMPLATE_TAG + '{display:none;}';
204
-
205
- var head = document.head;
206
- head.insertBefore(templateStyle, head.firstElementChild);
207
-
208
- /**
209
- Provides a minimal shim for the <template> element.
210
- */
211
- PolyfilledHTMLTemplateElement.prototype = Object.create(HTMLElement.prototype);
212
-
213
-
214
- // if elements do not have `innerHTML` on instances, then
215
- // templates can be patched by swizzling their prototypes.
216
- var canProtoPatch =
217
- !(document.createElement('div').hasOwnProperty('innerHTML'));
218
-
219
- /**
220
- The `decorate` method moves element children to the template's `content`.
221
- NOTE: there is no support for dynamically adding elements to templates.
222
- */
223
- PolyfilledHTMLTemplateElement.decorate = function(template) {
224
- // if the template is decorated or not in HTML namespace, return fast
225
- if (template.content ||
226
- template.namespaceURI !== document.documentElement.namespaceURI) {
227
- return;
228
- }
229
- template.content = contentDoc.createDocumentFragment();
230
- var child;
231
- while ((child = template.firstChild)) {
232
- capturedAppendChild.call(template.content, child);
233
- }
234
- // NOTE: prefer prototype patching for performance and
235
- // because on some browsers (IE11), re-defining `innerHTML`
236
- // can result in intermittent errors.
237
- if (canProtoPatch) {
238
- template.__proto__ = PolyfilledHTMLTemplateElement.prototype;
239
- } else {
240
- template.cloneNode = function(deep) {
241
- return PolyfilledHTMLTemplateElement._cloneNode(this, deep);
242
- };
243
- // add innerHTML to template, if possible
244
- // Note: this throws on Safari 7
245
- if (canDecorate) {
246
- try {
247
- defineInnerHTML(template);
248
- defineOuterHTML(template);
249
- } catch (err) {
250
- canDecorate = false;
251
- }
252
- }
253
- }
254
- // bootstrap recursively
255
- PolyfilledHTMLTemplateElement.bootstrap(template.content);
256
- };
257
-
258
- // Taken from https://github.com/jquery/jquery/blob/73d7e6259c63ac45f42c6593da8c2796c6ce9281/src/manipulation/wrapMap.js
259
- var topLevelWrappingMap = {
260
- 'option': ['select'],
261
- 'thead': ['table'],
262
- 'col': ['colgroup', 'table'],
263
- 'tr': ['tbody', 'table'],
264
- 'th': ['tr', 'tbody', 'table'],
265
- 'td': ['tr', 'tbody', 'table']
266
- };
267
-
268
- var getTagName = function(text) {
269
- // Taken from https://github.com/jquery/jquery/blob/73d7e6259c63ac45f42c6593da8c2796c6ce9281/src/manipulation/var/rtagName.js
270
- return ( /<([a-z][^/\0>\x20\t\r\n\f]+)/i.exec(text) || ['', ''])[1].toLowerCase();
271
- };
272
-
273
- var defineInnerHTML = function defineInnerHTML(obj) {
274
- Object.defineProperty(obj, 'innerHTML', {
275
- get: function() {
276
- return getInnerHTML(this);
277
- },
278
- set: function(text) {
279
- // For IE11, wrap the text in the correct (table) context
280
- var wrap = topLevelWrappingMap[getTagName(text)];
281
- if (wrap) {
282
- for (var i = 0; i < wrap.length; i++) {
283
- text = '<' + wrap[i] + '>' + text + '</' + wrap[i] + '>';
284
- }
285
- }
286
- contentDoc.body.innerHTML = text;
287
- PolyfilledHTMLTemplateElement.bootstrap(contentDoc);
288
- while (this.content.firstChild) {
289
- capturedRemoveChild.call(this.content, this.content.firstChild);
290
- }
291
- var body = contentDoc.body;
292
- // If we had wrapped, get back to the original node
293
- if (wrap) {
294
- for (var j = 0; j < wrap.length; j++) {
295
- body = body.lastChild;
296
- }
297
- }
298
- while (body.firstChild) {
299
- capturedAppendChild.call(this.content, body.firstChild);
300
- }
301
- },
302
- configurable: true
303
- });
304
- };
305
-
306
- var defineOuterHTML = function defineOuterHTML(obj) {
307
- Object.defineProperty(obj, 'outerHTML', {
308
- get: function() {
309
- return '<' + TEMPLATE_TAG + '>' + this.innerHTML + '</' + TEMPLATE_TAG + '>';
310
- },
311
- set: function(innerHTML) {
312
- if (this.parentNode) {
313
- contentDoc.body.innerHTML = innerHTML;
314
- var docFrag = this.ownerDocument.createDocumentFragment();
315
- while (contentDoc.body.firstChild) {
316
- capturedAppendChild.call(docFrag, contentDoc.body.firstChild);
317
- }
318
- capturedReplaceChild.call(this.parentNode, docFrag, this);
319
- } else {
320
- throw new Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");
321
- }
322
- },
323
- configurable: true
324
- });
325
- };
326
-
327
- defineInnerHTML(PolyfilledHTMLTemplateElement.prototype);
328
- defineOuterHTML(PolyfilledHTMLTemplateElement.prototype);
329
-
330
- /**
331
- The `bootstrap` method is called automatically and "fixes" all
332
- <template> elements in the document referenced by the `doc` argument.
333
- */
334
- PolyfilledHTMLTemplateElement.bootstrap = function bootstrap(doc) {
335
- var templates = QSA(doc, TEMPLATE_TAG);
336
- for (var i=0, l=templates.length, t; (i<l) && (t=templates[i]); i++) {
337
- PolyfilledHTMLTemplateElement.decorate(t);
338
- }
339
- };
340
-
341
- // auto-bootstrapping for main document
342
- document.addEventListener('DOMContentLoaded', function() {
343
- PolyfilledHTMLTemplateElement.bootstrap(document);
344
- });
345
-
346
- // Patch document.createElement to ensure newly created templates have content
347
- Document.prototype.createElement = function createElement() {
348
- var el = capturedCreateElement.apply(this, arguments);
349
- if (el.localName === 'template') {
350
- PolyfilledHTMLTemplateElement.decorate(el);
351
- }
352
- return el;
353
- };
354
-
355
- DOMParser.prototype.parseFromString = function() {
356
- var el = capturedParseFromString.apply(this, arguments);
357
- PolyfilledHTMLTemplateElement.bootstrap(el);
358
- return el;
359
- };
360
-
361
- Object.defineProperty(HTMLElement.prototype, 'innerHTML', {
362
- get: function() {
363
- return getInnerHTML(this);
364
- },
365
- set: function(text) {
366
- capturedHTMLElementInnerHTML.set.call(this, text);
367
- PolyfilledHTMLTemplateElement.bootstrap(this);
368
- },
369
- configurable: true,
370
- enumerable: true
371
- });
372
-
373
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#escapingString
374
- var escapeAttrRegExp = /[&\u00A0"]/g;
375
- var escapeDataRegExp = /[&\u00A0<>]/g;
376
-
377
- var escapeReplace = function(c) {
378
- switch (c) {
379
- case '&':
380
- return '&amp;';
381
- case '<':
382
- return '&lt;';
383
- case '>':
384
- return '&gt;';
385
- case '"':
386
- return '&quot;';
387
- case '\u00A0':
388
- return '&nbsp;';
389
- }
390
- };
391
-
392
- var escapeAttr = function(s) {
393
- return s.replace(escapeAttrRegExp, escapeReplace);
394
- };
395
-
396
- var escapeData = function(s) {
397
- return s.replace(escapeDataRegExp, escapeReplace);
398
- };
399
-
400
- var makeSet = function(arr) {
401
- var set = {};
402
- for (var i = 0; i < arr.length; i++) {
403
- set[arr[i]] = true;
404
- }
405
- return set;
406
- };
407
-
408
- // http://www.whatwg.org/specs/web-apps/current-work/#void-elements
409
- var voidElements = makeSet([
410
- 'area',
411
- 'base',
412
- 'br',
413
- 'col',
414
- 'command',
415
- 'embed',
416
- 'hr',
417
- 'img',
418
- 'input',
419
- 'keygen',
420
- 'link',
421
- 'meta',
422
- 'param',
423
- 'source',
424
- 'track',
425
- 'wbr'
426
- ]);
427
-
428
- var plaintextParents = makeSet([
429
- 'style',
430
- 'script',
431
- 'xmp',
432
- 'iframe',
433
- 'noembed',
434
- 'noframes',
435
- 'plaintext',
436
- 'noscript'
437
- ]);
438
-
439
- /**
440
- * @param {Node} node
441
- * @param {Node} parentNode
442
- * @param {Function=} callback
443
- */
444
- var getOuterHTML = function(node, parentNode, callback) {
445
- switch (node.nodeType) {
446
- case Node.ELEMENT_NODE: {
447
- var tagName = node.localName;
448
- var s = '<' + tagName;
449
- var attrs = node.attributes;
450
- for (var i = 0, attr; (attr = attrs[i]); i++) {
451
- s += ' ' + attr.name + '="' + escapeAttr(attr.value) + '"';
452
- }
453
- s += '>';
454
- if (voidElements[tagName]) {
455
- return s;
456
- }
457
- return s + getInnerHTML(node, callback) + '</' + tagName + '>';
458
- }
459
- case Node.TEXT_NODE: {
460
- var data = /** @type {Text} */ (node).data;
461
- if (parentNode && plaintextParents[parentNode.localName]) {
462
- return data;
463
- }
464
- return escapeData(data);
465
- }
466
- case Node.COMMENT_NODE: {
467
- return '<!--' + /** @type {Comment} */ (node).data + '-->';
468
- }
469
- default: {
470
- window.console.error(node);
471
- throw new Error('not implemented');
472
- }
473
- }
474
- };
475
-
476
- /**
477
- * @param {Node} node
478
- * @param {Function=} callback
479
- */
480
- var getInnerHTML = function(node, callback) {
481
- if (node.localName === 'template') {
482
- node = /** @type {HTMLTemplateElement} */ (node).content;
483
- }
484
- var s = '';
485
- var c$ = callback ? callback(node) : capturedChildNodes.get.call(node);
486
- for (var i=0, l=c$.length, child; (i<l) && (child=c$[i]); i++) {
487
- s += getOuterHTML(child, node, callback);
488
- }
489
- return s;
490
- };
491
-
492
- }
493
-
494
- // make cloning/importing work!
495
- if (needsTemplate || needsCloning) {
496
-
497
- PolyfilledHTMLTemplateElement._cloneNode = function _cloneNode(template, deep) {
498
- var clone = capturedCloneNode.call(template, false);
499
- // NOTE: decorate doesn't auto-fix children because they are already
500
- // decorated so they need special clone fixup.
501
- if (this.decorate) {
502
- this.decorate(clone);
503
- }
504
- if (deep) {
505
- // NOTE: use native clone node to make sure CE's wrapped
506
- // cloneNode does not cause elements to upgrade.
507
- capturedAppendChild.call(clone.content, capturedCloneNode.call(template.content, true));
508
- // now ensure nested templates are cloned correctly.
509
- fixClonedDom(clone.content, template.content);
510
- }
511
- return clone;
512
- };
513
-
514
- // Given a source and cloned subtree, find <template>'s in the cloned
515
- // subtree and replace them with cloned <template>'s from source.
516
- // We must do this because only the source templates have proper .content.
517
- var fixClonedDom = function fixClonedDom(clone, source) {
518
- // do nothing if cloned node is not an element
519
- if (!source.querySelectorAll) return;
520
- // these two lists should be coincident
521
- var s$ = QSA(source, TEMPLATE_TAG);
522
- if (s$.length === 0) {
523
- return;
524
- }
525
- var t$ = QSA(clone, TEMPLATE_TAG);
526
- for (var i=0, l=t$.length, t, s; i<l; i++) {
527
- s = s$[i];
528
- t = t$[i];
529
- if (PolyfilledHTMLTemplateElement && PolyfilledHTMLTemplateElement.decorate) {
530
- PolyfilledHTMLTemplateElement.decorate(s);
531
- }
532
- capturedReplaceChild.call(t.parentNode, cloneNode.call(s, true), t);
533
- }
534
- };
535
-
536
- // make sure scripts inside of a cloned template are executable
537
- var fixClonedScripts = function fixClonedScripts(fragment) {
538
- var scripts = QSA(fragment, scriptSelector);
539
- for (var ns, s, i = 0; i < scripts.length; i++) {
540
- s = scripts[i];
541
- ns = capturedCreateElement.call(document, 'script');
542
- ns.textContent = s.textContent;
543
- var attrs = s.attributes;
544
- for (var ai = 0, a; ai < attrs.length; ai++) {
545
- a = attrs[ai];
546
- ns.setAttribute(a.name, a.value);
547
- }
548
- capturedReplaceChild.call(s.parentNode, ns, s);
549
- }
550
- };
551
-
552
- // override all cloning to fix the cloned subtree to contain properly
553
- // cloned templates.
554
- var cloneNode = Node.prototype.cloneNode = function cloneNode(deep) {
555
- var dom;
556
- // workaround for Edge bug cloning documentFragments
557
- // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8619646/
558
- if (!needsDocFrag && brokenDocFragment && this instanceof DocumentFragment) {
559
- if (!deep) {
560
- return this.ownerDocument.createDocumentFragment();
561
- } else {
562
- dom = importNode.call(this.ownerDocument, this, true);
563
- }
564
- } else if (this.nodeType === Node.ELEMENT_NODE &&
565
- this.localName === TEMPLATE_TAG &&
566
- this.namespaceURI == document.documentElement.namespaceURI) {
567
- dom = PolyfilledHTMLTemplateElement._cloneNode(this, deep);
568
- } else {
569
- dom = capturedCloneNode.call(this, deep);
570
- }
571
- // template.content is cloned iff `deep`.
572
- if (deep) {
573
- fixClonedDom(dom, this);
574
- }
575
- return dom;
576
- };
577
-
578
- // NOTE: we are cloning instead of importing <template>'s.
579
- // However, the ownerDocument of the cloned template will be correct!
580
- // This is because the native import node creates the right document owned
581
- // subtree and `fixClonedDom` inserts cloned templates into this subtree,
582
- // thus updating the owner doc.
583
- var importNode = Document.prototype.importNode = function importNode(element, deep) {
584
- deep = deep || false;
585
- if (element.localName === TEMPLATE_TAG) {
586
- return PolyfilledHTMLTemplateElement._cloneNode(element, deep);
587
- } else {
588
- var dom = capturedImportNode.call(this, element, deep);
589
- if (deep) {
590
- fixClonedDom(dom, element);
591
- fixClonedScripts(dom);
592
- }
593
- return dom;
594
- }
595
- };
596
- }
597
-
598
- if (needsTemplate) {
599
- window.HTMLTemplateElement = PolyfilledHTMLTemplateElement;
600
- }
601
-
602
- })();
@@ -1 +1 @@
1
- {"aliases":["es6","es2015","default-3.6","default"],"dependencies":["_ESAbstract.CreateMethodProperty","_ESAbstract.CreateIterResultObject","_ESAbstract.GetMethod","_ESAbstract.GetIterator","_ESAbstract.IsCallable","_ESAbstract.IteratorClose","_ESAbstract.IteratorComplete","_ESAbstract.IteratorNext","_ESAbstract.IteratorStep","_ESAbstract.IteratorValue","_ESAbstract.OrdinaryCreateFromConstructor","_ESAbstract.SameValueZero","_ESAbstract.Type","Symbol","Symbol.iterator","Symbol.species","Object.isExtensible"],"notes":["The test suite for this polyfill is derived from work of Andrea Giammarchi which is [published under an MIT licence](https://github.com/WebReflection/es6-collections)"],"docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map","browsers":{"android":"<5.1","bb":"10 - *","chrome":"<49","edge":"<13","firefox":"<36","firefox_mob":"<29","ie":"*","ie_mob":"*","opera":"<25","op_mob":"*","op_mini":"*","safari":"<9.0","ios_saf":"<9.0","samsung_mob":"<5"},"detectSource":"\"Map\"in self&&function(t){try{var n=new t.Map([[1,1],[2,2]])\nreturn 0===t.Map.length&&2===n.size&&\"Symbol\"in t&&\"iterator\"in t.Symbol&&\"function\"==typeof n[t.Symbol.iterator]}catch(t){return!1}}(self)\n","baseDir":"Map","hasTests":true,"isTestable":true,"isPublic":true,"size":7219}
1
+ {"aliases":["es6","es2015","default-3.6","default"],"dependencies":["_ESAbstract.CreateMethodProperty","_ESAbstract.CreateIterResultObject","_ESAbstract.GetMethod","_ESAbstract.GetIterator","_ESAbstract.IsCallable","_ESAbstract.IteratorClose","_ESAbstract.IteratorComplete","_ESAbstract.IteratorNext","_ESAbstract.IteratorStep","_ESAbstract.IteratorValue","_ESAbstract.OrdinaryCreateFromConstructor","_ESAbstract.SameValueZero","_ESAbstract.Type","Symbol","Symbol.iterator","Symbol.species","Symbol.toStringTag","Object.isExtensible"],"notes":["The test suite for this polyfill is derived from work of Andrea Giammarchi which is [published under an MIT licence](https://github.com/WebReflection/es6-collections)"],"docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map","browsers":{"android":"<5.1","bb":"10 - *","chrome":"<49","edge":"<15","firefox":"<51","firefox_mob":"<51","ie":"*","ie_mob":"*","opera":"<36","op_mob":"<36","op_mini":"*","safari":"<10.0","ios_saf":"<10.0","samsung_mob":"<5"},"detectSource":"\"Map\"in self&&function(t){try{var n=new t.Map([[1,1],[2,2]])\nreturn 0===t.Map.length&&2===n.size&&\"Symbol\"in t&&\"iterator\"in t.Symbol&&\"function\"==typeof n[t.Symbol.iterator]&&\"toStringTag\"in t.Symbol&&void 0!==n[t.Symbol.toStringTag]}catch(t){return!1}}(self)\n","baseDir":"Map","hasTests":true,"isTestable":true,"isPublic":true,"size":7438}