// Copyright 2014 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. (function testRestrictedPropertiesStrict() { function* generator() { "use strict"; } assertFalse(generator.hasOwnProperty("arguments")); assertThrows(function() { return generator.arguments; }, TypeError); assertThrows(function() { return generator.arguments = {}; }, TypeError); assertFalse(generator.hasOwnProperty("caller")); assertThrows(function() { return generator.caller; }, TypeError); assertThrows(function() { return generator.caller = {}; }, TypeError); })(); (function testRestrictedPropertiesSloppy() { function* generator() {} assertFalse(generator.hasOwnProperty("arguments")); assertThrows(function() { return generator.arguments; }, TypeError); assertThrows(function() { return generator.arguments = {}; }, TypeError); assertFalse(generator.hasOwnProperty("caller")); assertThrows(function() { return generator.caller; }, TypeError); assertThrows(function() { return generator.caller = {}; }, TypeError); })(); function assertIteratorResult(value, done, result) { assertEquals({value: value, done: done}, result); } (function testIteratorResultStrict() { function* generator() { "use strict"; } assertIteratorResult(undefined, true, generator().next()); })(); (function testIteratorResultSloppy() { function* generator() {} assertIteratorResult(undefined, true, generator().next()); })();