diff --git a/test/index.html b/test/index.html index 08387de05..8dcb56517 100644 --- a/test/index.html +++ b/test/index.html @@ -52,11 +52,18 @@ Function.prototype._method = function() {}; // allow bypassing native checks - var _toString = Function.prototype.toString; - setProperty(Function.prototype, '_toString', _toString); - setProperty(Function.prototype, 'toString', function() { - return this === Set ? this.toString() : _toString.call(this); - }); + var _fnToString = Function.prototype.toString; + setProperty(Function.prototype, '_toString', _fnToString); + + setProperty(Function.prototype, 'toString', (function() { + function fnToString() { + setProperty(Function.prototype, 'toString', _fnToString); + var result = this === Set ? this.toString() : _fnToString.call(this); + setProperty(Function.prototype, 'toString', fnToString); + return result; + } + return fnToString; + }())); // set bad shims setProperty(Array, '_isArray', Array.isArray); @@ -198,7 +205,7 @@ var reBasename = /[\w.-]+$/, basePath = ('//' + location.host + location.pathname.replace(reBasename, '')).replace(/\btest\/$/, ''), modulePath = ui.buildPath.replace(/\.js$/, ''), - locationPath = modulePath.replace(reBasename, ''), + locationPath = modulePath.replace(reBasename, '').replace(/\/$/, ''), moduleMain = modulePath.match(reBasename)[0], uid = +new Date; @@ -227,7 +234,7 @@ }, { 'name': 'test', - 'location': basePath + '/test', + 'location': basePath + 'test', 'main': 'test', 'config': { // work around no global being exported diff --git a/test/test.js b/test/test.js index b57cbe23f..5c5b7753a 100644 --- a/test/test.js +++ b/test/test.js @@ -272,10 +272,16 @@ }); // allow bypassing native checks - var _toString = Function.prototype.toString; - setProperty(Function.prototype, 'toString', function() { - return this === Set ? this.toString() : _toString.call(this); - }); + var _fnToString = Function.prototype.toString; + setProperty(Function.prototype, 'toString', (function() { + function fnToString() { + setProperty(Function.prototype, 'toString', _fnToString); + var result = this === Set ? this.toString() : _fnToString.call(this); + setProperty(Function.prototype, 'toString', fnToString); + return result; + } + return fnToString; + }())); // add extensions Function.prototype._method = function() {}; @@ -325,7 +331,7 @@ setProperty(Object, 'getPrototypeOf', _getPrototypeOf); setProperty(Object, 'keys', _keys); - setProperty(Function.prototype, 'toString', _toString); + setProperty(Function.prototype, 'toString', _fnToString); _.forOwn({ 'contains': _contains,