// Copyright (C) 2015 André Bargull. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-array.prototype.tolocalestring
description: Array.prototype.toLocaleString called with primitive element in getter
info: |
  22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )

  ...
  10. Else
    a. Let R be ToString(Invoke(firstElement, "toLocaleString")).
    b. ReturnIfAbrupt(R).
  ...
  12.
    ...
    e. Else
      i.  Let R be ToString(Invoke(nextElement, "toLocaleString")).
      ii. ReturnIfAbrupt(R).
es6id: 22.1.3.26
flags: [onlyStrict]
---*/

var listSeparator = ["", ""].toLocaleString();

Object.defineProperty(Boolean.prototype, "toString", {
  get: function() {
    var v = typeof this;
    return function() {
      return v;
    };
  }
});

assert.sameValue([true, false].toLocaleString(), ("boolean" + listSeparator + "boolean"));
