| 'use strict'; |
| var $ = require('../internals/export'); |
| var flattenIntoArray = require('../internals/flatten-into-array'); |
| var toObject = require('../internals/to-object'); |
| var lengthOfArrayLike = require('../internals/length-of-array-like'); |
| var toIntegerOrInfinity = require('../internals/to-integer-or-infinity'); |
| var arraySpeciesCreate = require('../internals/array-species-create'); |
|
|
| |
| |
| $({ target: 'Array', proto: true }, { |
| flat: function flat() { |
| var depthArg = arguments.length ? arguments[0] : undefined; |
| var O = toObject(this); |
| var sourceLen = lengthOfArrayLike(O); |
| var depthNum = depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg); |
| var A = arraySpeciesCreate(O, 0); |
| flattenIntoArray(A, O, O, sourceLen, 0, depthNum); |
| return A; |
| } |
| }); |
|
|