| Index: test/webkit/cached-call-uninitialized-arguments.js
|
| diff --git a/test/webkit/concat-while-having-a-bad-time.js b/test/webkit/cached-call-uninitialized-arguments.js
|
| similarity index 56%
|
| copy from test/webkit/concat-while-having-a-bad-time.js
|
| copy to test/webkit/cached-call-uninitialized-arguments.js
|
| index dfda1e08a0b36194b787a44ee12a9693acd8aeaf..de3f098800776a4d3ea0493b4db7876824f0d1e4 100644
|
| --- a/test/webkit/concat-while-having-a-bad-time.js
|
| +++ b/test/webkit/cached-call-uninitialized-arguments.js
|
| @@ -22,10 +22,45 @@
|
| // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| description(
|
| -"Tests the behavior of Array.prototype.concat while the array is having a bad time due to one of the elements we are concatenating."
|
| +"This test checks that uninitialized parameters for cached call functions correctly defaults to undefined."
|
| +
|
| );
|
|
|
| -Object.defineProperty(Array.prototype, 0, { writable: false });
|
| -shouldBe("[42].concat()", "[42]");
|
| +function doForEach(arr) {
|
| + function callback(element, index, array, arg4, arg5, arg6) {
|
| +
|
| + function shouldBeUndefined(_a) {
|
| + var exception;
|
| + var _av;
|
| + try {
|
| + _av = eval(_a);
|
| + } catch (e) {
|
| + exception = e;
|
| + }
|
| +
|
| + if (exception)
|
| + testFailed(_a + " should be undefined. Threw exception " + exception);
|
| + else if (typeof _av == "undefined")
|
| + testPassed(_a + " is undefined.");
|
| + else
|
| + testFailed(_a + " should be undefined. Was " + _av);
|
| + }
|
| +
|
| + shouldBeUndefined("arg4");
|
| + shouldBeUndefined("arg5");
|
| + shouldBeUndefined("arg6");
|
| + }
|
| +
|
| + arr.forEach(callback);
|
| +}
|
|
|
| +function callAfterRecursingForDepth(depth, func, arr) {
|
| + if (depth > 0) {
|
| + callAfterRecursingForDepth(depth - 1, func, arr);
|
| + } else {
|
| + func(arr);
|
| + }
|
| +}
|
|
|
| +var arr = [1];
|
| +callAfterRecursingForDepth(20, doForEach, arr);
|
|
|