• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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
5(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
28function assertIteratorResult(value, done, result) {
29  assertEquals({value: value, done: done}, result);
30}
31
32
33(function testIteratorResultStrict() {
34  function* generator() { "use strict"; }
35  assertIteratorResult(undefined, true, generator().next());
36})();
37
38
39(function testIteratorResultSloppy() {
40  function* generator() {}
41  assertIteratorResult(undefined, true, generator().next());
42})();
43