function assert(cond) { if (!cond) throw new Error("broke assertion"); } noInline(assert); function shouldThrowInvalidConstAssignment(f) { var threw = false; try { f(); } catch(e) { //print(e); if (e.name.indexOf("TypeError") !== -1 && e.message.indexOf("readonly") !== -1) threw = true; } assert(threw); } noInline(shouldThrowInvalidConstAssignment); function baz(){} noInline(baz); function foo() { for (const item of [1,2,3]) { item = 20; } } for (var i = 0; i < 1000; i++) shouldThrowInvalidConstAssignment(foo);