tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Array.from_forwards-length-for-array-likes.js (1110B)


      1 // Copyright (c) 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 /*---
      5 esid: sec-array.from
      6 description: >
      7  If this is a constructor, and items doesn't have an @@iterator,
      8  returns a new instance of this
      9 info: |
     10  22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
     11 
     12  4. Let usingIterator be GetMethod(items, @@iterator).
     13  ...
     14  6. If usingIterator is not undefined, then
     15  ...
     16  12. If IsConstructor(C) is true, then
     17    a. Let A be Construct(C, «len»).
     18  13. Else,
     19    a. Let A be ArrayCreate(len).
     20  ...
     21  19. Return A.
     22 ---*/
     23 
     24 var result;
     25 
     26 function MyCollection() {
     27  this.args = arguments;
     28 }
     29 
     30 result = Array.from.call(MyCollection, {
     31  length: 42
     32 });
     33 
     34 assert.sameValue(result.args.length, 1, 'The value of result.args.length is expected to be 1');
     35 assert.sameValue(result.args[0], 42, 'The value of result.args[0] is expected to be 42');
     36 assert(
     37  result instanceof MyCollection,
     38  'The result of evaluating (result instanceof MyCollection) is expected to be true'
     39 );
     40 
     41 reportCompare(0, 0);