blob: e8610220fc3cec9d7178c00a81a918cec05640e4 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00005(function testRestrictedPropertiesStrict() {
6 function* generator() { "use strict"; }
7 assertFalse(generator.hasOwnProperty("arguments"));
8 assertThrows(function() { return generator.arguments; }, TypeError);
9 assertThrows(function() { return generator.arguments = {}; }, TypeError);
10
11 assertFalse(generator.hasOwnProperty("caller"));
12 assertThrows(function() { return generator.caller; }, TypeError);
13 assertThrows(function() { return generator.caller = {}; }, TypeError);
14})();
15
16
17(function testRestrictedPropertiesSloppy() {
18 function* generator() {}
19 assertFalse(generator.hasOwnProperty("arguments"));
20 assertThrows(function() { return generator.arguments; }, TypeError);
21 assertThrows(function() { return generator.arguments = {}; }, TypeError);
22
23 assertFalse(generator.hasOwnProperty("caller"));
24 assertThrows(function() { return generator.caller; }, TypeError);
25 assertThrows(function() { return generator.caller = {}; }, TypeError);
26})();
27
Ben Murdochb8a8cc12014-11-26 15:28:44 +000028function assertIteratorResult(value, done, result) {
29 assertEquals({value: value, done: done}, result);
30}
31
Ben Murdochb8a8cc12014-11-26 15:28:44 +000032
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000033(function testIteratorResultStrict() {
34 function* generator() { "use strict"; }
35 assertIteratorResult(undefined, true, generator().next());
36})();
Ben Murdochb8a8cc12014-11-26 15:28:44 +000037
Ben Murdochb8a8cc12014-11-26 15:28:44 +000038
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000039(function testIteratorResultSloppy() {
40 function* generator() {}
41 assertIteratorResult(undefined, true, generator().next());
42})();