| // 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()); |
| })(); |