tor-browser

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

iterator-as-proxy.js (851B)


      1 // Copyright (C) 2013 the V8 project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 es6id: 13.6.4.13
      5 description: >
      6    Iterators that are implemented as proxies should behave identically to
      7    non-proxy versions.
      8 features: [Proxy, Symbol.iterator]
      9 ---*/
     10 
     11 var iterable = {};
     12 var nextResult = { value: 23, done: false };
     13 var lastResult = { value: null, done: true };
     14 var i;
     15 
     16 var iterator = {
     17  next: function() {
     18    var result = nextResult;
     19    nextResult = lastResult;
     20    return result;
     21  }
     22 };
     23 var proxiedIterator = new Proxy(iterator, {
     24  get: function(target, name) {
     25    return target[name];
     26  }
     27 });
     28 iterable[Symbol.iterator] = function() { return proxiedIterator; };
     29 
     30 i = 0;
     31 for (var x of iterable) {
     32  assert.sameValue(x, 23);
     33  i++;
     34 }
     35 
     36 assert.sameValue(i, 1);
     37 
     38 reportCompare(0, 0);