~ubuntu-branches/ubuntu/saucy/mozjs17/saucy

« back to all changes in this revision

Viewing changes to js/src/tests/js1_7/regress/regress-369666-02.js

  • Committer: Package Import Robot
  • Author(s): Rico Tzschichholz
  • Date: 2013-05-25 12:24:23 UTC
  • Revision ID: package-import@ubuntu.com-20130525122423-zmxucrhtensw90xy
Tags: upstream-17.0.0
ImportĀ upstreamĀ versionĀ 17.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 
2
/* This Source Code Form is subject to the terms of the Mozilla Public
 
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
5
 
 
6
//-----------------------------------------------------------------------------
 
7
var BUGNUMBER = 369666;
 
8
var summary = 'inner function declaration in let-induced outer ' +
 
9
  'function body gets wrong scope.';
 
10
var actual = 'No Crash';
 
11
var expect = 'No Crash';
 
12
 
 
13
 
 
14
//-----------------------------------------------------------------------------
 
15
test();
 
16
//-----------------------------------------------------------------------------
 
17
 
 
18
function test()
 
19
{
 
20
  enterFunc ('test');
 
21
  printBugNumber(BUGNUMBER);
 
22
  printStatus (summary);
 
23
 
 
24
  function foo() {
 
25
    let x = 42
 
26
 
 
27
      function bar() {
 
28
      return x;
 
29
    }
 
30
 
 
31
    return bar;
 
32
  }
 
33
 
 
34
  print(foo()());
 
35
 
 
36
  baz = false;
 
37
 
 
38
  function foo2() {
 
39
    let x = 42
 
40
 
 
41
      function bar() {
 
42
      return x;
 
43
    }
 
44
 
 
45
    function bletch() {
 
46
      return x * x;
 
47
    }
 
48
 
 
49
    try {
 
50
      if (baz)
 
51
        return bar;
 
52
    } finally {
 
53
      print('finally', x);
 
54
    }
 
55
    return bletch;
 
56
  }
 
57
 
 
58
  print(foo2()());
 
59
 
 
60
  reportCompare(expect, actual, summary);
 
61
 
 
62
  exitFunc ('test');
 
63
}