@@ -33,6 +33,10 @@ var Array = global.Array;
33
33
var Date = global . Date ;
34
34
var Error = global . Error ;
35
35
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 ) ;
36
40
var PerformanceMark = global . PerformanceMark ;
37
41
// dependency: web.dom-exception.constructor
38
42
var DOMException = getBuiltIn ( 'DOMException' ) ;
@@ -150,11 +154,6 @@ var cloneBuffer = function (value, map, $type) {
150
154
// SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original
151
155
else clone = value ;
152
156
} 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' ) ;
158
157
// detached buffers throws in `DataView` and `.slice`
159
158
try {
160
159
if ( isCallable ( value . slice ) && ! value . resizable ) {
@@ -167,7 +166,7 @@ var cloneBuffer = function (value, map, $type) {
167
166
source = new DataView ( value ) ;
168
167
target = new DataView ( clone ) ;
169
168
for ( i = 0 ; i < length ; i ++ ) {
170
- target . setUint8 ( i , source . getUint8 ( i ) ) ;
169
+ setUint8 ( target , i , getUint8 ( source , i ) ) ;
171
170
}
172
171
}
173
172
} catch ( error ) {
0 commit comments