Add DataView support to getTag.

This commit is contained in:
John-David Dalton
2016-03-27 00:20:40 -07:00
parent 50e86c70bd
commit 654976c826

View File

@@ -1426,7 +1426,8 @@
nativeReverse = arrayProto.reverse; nativeReverse = arrayProto.reverse;
/* Built-in method references that are verified to be native. */ /* Built-in method references that are verified to be native. */
var Map = getNative(context, 'Map'), var DataView = getNative(context, 'DataView'),
Map = getNative(context, 'Map'),
Promise = getNative(context, 'Promise'), Promise = getNative(context, 'Promise'),
Set = getNative(context, 'Set'), Set = getNative(context, 'Set'),
WeakMap = getNative(context, 'WeakMap'), WeakMap = getNative(context, 'WeakMap'),
@@ -1442,7 +1443,8 @@
var realNames = {}; var realNames = {};
/** Used to detect maps, sets, and weakmaps. */ /** Used to detect maps, sets, and weakmaps. */
var mapCtorString = Map ? funcToString.call(Map) : '', var dataViewCtorString = DataView ? funcToString.call(DataView) : '',
mapCtorString = Map ? funcToString.call(Map) : '',
promiseCtorString = Promise ? funcToString.call(Promise) : '', promiseCtorString = Promise ? funcToString.call(Promise) : '',
setCtorString = Set ? funcToString.call(Set) : '', setCtorString = Set ? funcToString.call(Set) : '',
weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : ''; weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : '';
@@ -5245,8 +5247,10 @@
return objectToString.call(value); return objectToString.call(value);
} }
// Fallback for IE 11 or maps, sets, and weakmaps and Node.js 5 for promises. // Fallback for data views, maps, sets, and weak maps in IE 11,
if ((Map && getTag(new Map) != mapTag) || // for data views in Edge, and promises in Node.js.
if ((DataView && getTag(new DataView(new ArrayBuffer)) != dataViewTag) ||
(Map && getTag(new Map) != mapTag) ||
(Promise && getTag(Promise.resolve()) != promiseTag) || (Promise && getTag(Promise.resolve()) != promiseTag) ||
(Set && getTag(new Set) != setTag) || (Set && getTag(new Set) != setTag) ||
(WeakMap && getTag(new WeakMap) != weakMapTag) (WeakMap && getTag(new WeakMap) != weakMapTag)
@@ -5258,6 +5262,7 @@
if (ctorString) { if (ctorString) {
switch (ctorString) { switch (ctorString) {
case dataViewCtorString: return dataViewTag;
case mapCtorString: return mapTag; case mapCtorString: return mapTag;
case promiseCtorString: return promiseTag; case promiseCtorString: return promiseTag;
case setCtorString: return setTag; case setCtorString: return setTag;