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,