1'use strict';
2// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten
3var $export = require('./_export');
4var flattenIntoArray = require('./_flatten-into-array');
5var toObject = require('./_to-object');
6var toLength = require('./_to-length');
7var toInteger = require('./_to-integer');
8var arraySpeciesCreate = require('./_array-species-create');
9
10$export($export.P, 'Array', {
11  flatten: function flatten(/* depthArg = 1 */) {
12    var depthArg = arguments[0];
13    var O = toObject(this);
14    var sourceLen = toLength(O.length);
15    var A = arraySpeciesCreate(O, 0);
16    flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
17    return A;
18  }
19});
20
21require('./_add-to-unscopables')('flatten');
22