// Iterating over the argument to Map can throw. The exception is propagated.

load(libdir + "asserts.js");

function data2() {
    yield [{}, "XR22/Z"];
    yield [{}, "23D-BN"];
    throw "oops";
}

var it = data2();
assertThrowsValue(function () { new Map(it); }, "oops");