'use strict';
// 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.flatMap
description: >
    Behavior when thisArg is provided
    Array.prototype.flatMap ( mapperFunction [ , thisArg ] )
flags: [onlyStrict]
includes: [compareArray.js]
features: [Array.prototype.flatMap]
---*/

var a = {};
var actual;

actual = [1].flatMap(function() {
  return [this];
}, "TestString");
assert.compareArray(actual, ["TestString"]);

actual = [1].flatMap(function() {
  return [this];
}, 1);
assert.compareArray(actual, [1]);

actual = [1].flatMap(function() {
  return [this];
}, null);
assert.compareArray(actual, [null]);

actual = [1].flatMap(function() {
  return [this];
}, true);
assert.compareArray(actual, [true]);

actual = [1].flatMap(function() {
  return [this];
}, a);
assert.compareArray(actual, [a]);

actual = [1].flatMap(function() {
  return [this];
}, void 0);
assert.compareArray(actual, [undefined]);


reportCompare(0, 0);
