| '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'); | 
|   | 
| // `Array.prototype.flat` method | 
| // https://tc39.es/ecma262/#sec-array.prototype.flat | 
| $({ target: 'Array', proto: true }, { | 
|   flat: function flat(/* depthArg = 1 */) { | 
|     var depthArg = arguments.length ? arguments[0] : undefined; | 
|     var O = toObject(this); | 
|     var sourceLen = lengthOfArrayLike(O); | 
|     var A = arraySpeciesCreate(O, 0); | 
|     A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); | 
|     return A; | 
|   } | 
| }); |