js/src/jit-test/tests/for-of/semantics-11.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // for-of on a proxy causes a predictable sequence of trap calls.
     3 load(libdir + "iteration.js");
     5 var s = '';
     7 var i = 0;
     8 var next_fn = Proxy.createFunction({}, function () {
     9     s += "n";
    10     if (i == 3)
    11         return { value: undefined, done: true };
    12     return { value: i++, done: false };
    13 });
    15 var it = Proxy.create({
    16     get: function (receiver, name) {
    17         if (name == 'toSource') {
    18             s += '?';
    19             return function () 'it';
    20         }
    21         assertEq(name, "next");
    22         s += "N";
    23         return next_fn;
    24     }
    25 });
    27 var iterator_fn = Proxy.createFunction({}, function () {
    28     s += 'i';
    29     return it;
    30 });
    32 var obj = Proxy.create({
    33     get: function (receiver, name) {
    34         assertEq(name, std_iterator);
    35         s += "I";
    36         return iterator_fn;
    37     }
    38 });
    40 for (var v of obj)
    41     s += v;
    43 assertEq(s, 'IiNn0Nn1Nn2Nn');

mercurial