bug_9575461.js 926 B

12345678910111213141516171819202122232425262728
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. var obj = [1, 2, 3];
  6. var cc_base = [-2, -1, 0];
  7. var isCS = false;
  8. var counter = 0;
  9. Object.defineProperty(obj, Symbol.isConcatSpreadable, {
  10. get : function () {
  11. counter++;
  12. obj[2] = isCS ? "Some String inserted" : 123;
  13. isCS = !isCS;
  14. return isCS;
  15. }
  16. });
  17. var MAY_THROW = function(n, result) {
  18. if (!result) throw new Error(n + ". FAILED");
  19. };
  20. MAY_THROW(0, cc_base.concat(obj).length == 6);
  21. MAY_THROW(1, cc_base.concat(obj).length == 4);
  22. MAY_THROW(2, counter == 2 && !isCS);
  23. print("PASS");