Skip to content

Commit 64fba83

Browse files
committed
consider ArrayBuffer and DataView as existent in web.structured-clone
1 parent 4f1960f commit 64fba83

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

packages/core-js/modules/web.structured-clone.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ var Array = global.Array;
3333
var Date = global.Date;
3434
var Error = global.Error;
3535
var TypeError = global.TypeError;
36+
var ArrayBuffer = global.ArrayBuffer;
37+
var DataView = global.DataView;
38+
var getUint8 = uncurryThis(DataView.prototype.getUint8);
39+
var setUint8 = uncurryThis(DataView.prototype.setUint8);
3640
var PerformanceMark = global.PerformanceMark;
3741
// dependency: web.dom-exception.constructor
3842
var DOMException = getBuiltIn('DOMException');
@@ -150,11 +154,6 @@ var cloneBuffer = function (value, map, $type) {
150154
// SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original
151155
else clone = value;
152156
} else {
153-
var DataView = global.DataView;
154-
155-
// `ArrayBuffer#slice` is not available in IE10
156-
// `ArrayBuffer#slice` and `DataView` are not available in old FF
157-
if (!DataView && !isCallable(value.slice)) throwUnpolyfillable('ArrayBuffer');
158157
// detached buffers throws in `DataView` and `.slice`
159158
try {
160159
if (isCallable(value.slice) && !value.resizable) {
@@ -167,7 +166,7 @@ var cloneBuffer = function (value, map, $type) {
167166
source = new DataView(value);
168167
target = new DataView(clone);
169168
for (i = 0; i < length; i++) {
170-
target.setUint8(i, source.getUint8(i));
169+
setUint8(target, i, getUint8(source, i));
171170
}
172171
}
173172
} catch (error) {

0 commit comments

Comments
 (0)