Show More
Commit Description:
merge
Commit Description:
merge
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/modules/web.dom.iterable.js
| 58 lines
| 1.8 KiB
| application/javascript
| JavascriptLexer
|
r789 | var $iterators = require('./es6.array.iterator'); | |||
var getKeys = require('./_object-keys'); | ||||
var redefine = require('./_redefine'); | ||||
var global = require('./_global'); | ||||
var hide = require('./_hide'); | ||||
var Iterators = require('./_iterators'); | ||||
var wks = require('./_wks'); | ||||
var ITERATOR = wks('iterator'); | ||||
var TO_STRING_TAG = wks('toStringTag'); | ||||
var ArrayValues = Iterators.Array; | ||||
var DOMIterables = { | ||||
CSSRuleList: true, // TODO: Not spec compliant, should be false. | ||||
CSSStyleDeclaration: false, | ||||
CSSValueList: false, | ||||
ClientRectList: false, | ||||
DOMRectList: false, | ||||
DOMStringList: false, | ||||
DOMTokenList: true, | ||||
DataTransferItemList: false, | ||||
FileList: false, | ||||
HTMLAllCollection: false, | ||||
HTMLCollection: false, | ||||
HTMLFormElement: false, | ||||
HTMLSelectElement: false, | ||||
MediaList: true, // TODO: Not spec compliant, should be false. | ||||
MimeTypeArray: false, | ||||
NamedNodeMap: false, | ||||
NodeList: true, | ||||
PaintRequestList: false, | ||||
Plugin: false, | ||||
PluginArray: false, | ||||
SVGLengthList: false, | ||||
SVGNumberList: false, | ||||
SVGPathSegList: false, | ||||
SVGPointList: false, | ||||
SVGStringList: false, | ||||
SVGTransformList: false, | ||||
SourceBufferList: false, | ||||
StyleSheetList: true, // TODO: Not spec compliant, should be false. | ||||
TextTrackCueList: false, | ||||
TextTrackList: false, | ||||
TouchList: false | ||||
}; | ||||
for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { | ||||
var NAME = collections[i]; | ||||
var explicit = DOMIterables[NAME]; | ||||
var Collection = global[NAME]; | ||||
var proto = Collection && Collection.prototype; | ||||
var key; | ||||
if (proto) { | ||||
if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); | ||||
if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); | ||||
Iterators[NAME] = ArrayValues; | ||||
if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); | ||||
} | ||||
} | ||||