| // Copyright (C) 2018 Shilpi Jain and Michael Ficarra. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| esid: sec-array.prototype.flatten |
| description: > |
| if the argument is a string or object, the depthNum is 0 |
| includes: [compareArray.js] |
| features: [Array.prototype.flatten] |
| ---*/ |
| |
| var a = [1, [2]]; |
| var expected = a; |
| |
| // non integral string depthNum is converted to 0 |
| var depthNum = 'TestString'; |
| var actual = a.flatten(depthNum); |
| assert(compareArray(actual, expected), 'non integral string depthNum'); |
| |
| // object type depthNum is converted to 0 |
| var depthNum = {}; |
| var actual = a.flatten(depthNum); |
| assert(compareArray(actual, expected), 'object type depthNum'); |
| |
| // negative infinity depthNum is converted to 0 |
| var depthNum = Number.NEGATIVE_INFINITY; |
| var actual = a.flatten(depthNum); |
| assert(compareArray(actual, expected), 'negative infinity depthNum'); |
| |
| // positive zero depthNum is converted to 0 |
| var depthNum = +0; |
| var actual = a.flatten(depthNum); |
| assert(compareArray(actual, expected), 'positive zero depthNum'); |
| |
| // negative zero depthNum is converted to 0 |
| var depthNum = -0; |
| var actual = a.flatten(depthNum); |
| assert(compareArray(actual, expected), 'negative zero depthNum'); |
| |
| // integral string depthNum is converted to an integer |
| var depthNum = '1'; |
| var actual = a.flatten(depthNum); |
| var expected = [1, 2] |
| assert(compareArray(actual, expected), 'integral string depthNum'); |