;(function(window, undefined) { 'use strict'; /** Use a single load function */ var load = typeof require == 'function' ? require : window.load; /** The `platform` object to check */ var platform = window.platform || load('../vendor/platform.js/platform.js') || window.platform; /** The unit testing framework */ var QUnit = window.QUnit || ( window.setTimeout || (window.addEventListener = window.setTimeout = / /), window.QUnit = load('../vendor/qunit/qunit/qunit' + (platform.name == 'Narwhal' ? '-1.8.0' : '') + '.js') || window.QUnit, load('../vendor/qunit-clib/qunit-clib.js'), (window.addEventListener || 0).test && delete window.addEventListener, window.QUnit ); /** The `lodash` function to test */ var _ = window._ || ( _ = load('../lodash.js') || window._, _._ || _ ); /** Used to pass falsey values to methods */ var falsey = [ , '', 0, false, NaN, null, undefined ]; /** Shortcut used to make object properties immutable */ var freeze = Object.freeze; /** Shortcut used to convert array-like objects to arrays */ var slice = [].slice; /** Used to check problem JScript properties (a.k.a. the [[DontEnum]] bug) */ var shadowed = { 'constructor': 1, 'hasOwnProperty': 2, 'isPrototypeOf': 3, 'propertyIsEnumerable': 4, 'toLocaleString': 5, 'toString': 6, 'valueOf': 7 }; /** Used to check problem JScript properties too */ var shadowedKeys = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; /*--------------------------------------------------------------------------*/ /** * Skips a given number of tests with a passing result. * * @private * @param {Number} [count=1] The number of tests to skip. */ function skipTest(count) { count || (count = 1); while (count--) { ok(true, 'test skipped'); } } /*--------------------------------------------------------------------------*/ // add object from iframe (function() { if (!window.document) { return; } var body = document.body, iframe = document.createElement('iframe'); iframe.frameBorder = iframe.height = iframe.width = 0; body.appendChild(iframe); var idoc = (idoc = iframe.contentDocument || iframe.contentWindow).document || idoc; idoc.write("