Fix ArrayBuffer#slice test mock.

This commit is contained in:
John-David Dalton
2014-07-21 22:13:27 -07:00
parent e84d79ccf3
commit 13669313d4
2 changed files with 17 additions and 21 deletions

View File

@@ -50,16 +50,16 @@
// allow bypassing native checks
setProperty(Function.prototype, 'toString', (function() {
function wrapper() {
setProperty(Function.prototype, 'toString', fnToString);
var result = (this === window.ArrayBuffer || this === window.Set)
? this.toString()
: fnToString.call(this);
setProperty(Function.prototype, 'toString', wrapper);
setProperty(funcProto, 'toString', fnToString);
var result = hasOwnProperty.call(this, 'toString') ? this.toString() : fnToString.call(this);
setProperty(funcProto, 'toString', wrapper);
return result;
}
var fnToString = Function.prototype.toString;
setProperty(Function.prototype, '_toString', fnToString);
var funcProto = Function.prototype,
fnToString = funcProto.toString,
hasOwnProperty = Object.prototype.hasOwnProperty;
setProperty(funcProto, '_toString', fnToString);
return wrapper;
}()));
@@ -95,10 +95,11 @@
}
return hasOwnProperty.call(this, key);
}
var hasOwnProperty = Object.prototype.hasOwnProperty,
propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
var objectProto = Object.prototype,
hasOwnProperty = objectProto.hasOwnProperty,
propertyIsEnumerable = objectProto.propertyIsEnumerable;
setProperty(Object.prototype, '_hasOwnProperty', hasOwnProperty);
setProperty(objectProto, '_hasOwnProperty', hasOwnProperty);
return wrapper;
}()));
@@ -113,7 +114,7 @@
setProperty(window, '_ArrayBuffer', window.ArrayBuffer);
if (window.ArrayBuffer && window.Uint8Array && !new ArrayBuffer(0).slice) {
ArrayBuffer = (function() {
ArrayBuffer = (function(_ArrayBuffer) {
function constant(value) {
return function() {
return value;
@@ -122,7 +123,7 @@
function ArrayBuffer(byteLength) {
var buffer = new _ArrayBuffer(byteLength);
buffer.slice = function() {
var newBuffer = new _ArrayBuffer(byteLength),
var newBuffer = new _ArrayBuffer(this.byteLength),
view = new Uint8Array(newBuffer);
view.set(new Uint8Array(this));
@@ -138,7 +139,7 @@
setProperty(ArrayBuffer, 'toString', bufferToString);
return ArrayBuffer;
}());
}(_ArrayBuffer));
}
setProperty(window, '_Float64Array', window.Float64Array);
if (window._ArrayBuffer == window.ArrayBuffer && window._Float64Array) {
@@ -202,8 +203,6 @@
if (window._ArrayBuffer) {
ArrayBuffer = _ArrayBuffer;
} else {
setProperty(window, 'ArrayBuffer', undefined);
}
setProperty(window, '_ArrayBuffer', undefined);

View File

@@ -341,10 +341,7 @@
var _fnToString = funcProto.toString;
setProperty(funcProto, 'toString', function wrapper() {
setProperty(funcProto, 'toString', _fnToString);
var result = (this === root.ArrayBuffer || this === root.Set)
? this.toString()
: _fnToString.call(this);
var result = _.has(this, 'toString') ? this.toString() : _fnToString.call(this);
setProperty(funcProto, 'toString', wrapper);
return result;
});
@@ -391,7 +388,7 @@
function ArrayBuffer(byteLength) {
var buffer = new _ArrayBuffer(byteLength);
buffer.slice = function() {
var newBuffer = new _ArrayBuffer(byteLength),
var newBuffer = new _ArrayBuffer(this.byteLength),
view = new Uint8Array(newBuffer);
view.set(new Uint8Array(this));