Source code

Revision control

Copy as Markdown

Other Tools

// Copyright (c) 2012 Ecma International. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
info: |
local vars must not be visible outside with block
local functions must not be visible outside with block
local function expresssions should not be visible outside with block
local vars must shadow outer vars
local functions must shadow outer functions
local function expresssions must shadow outer function expressions
eval should use the appended object to the scope chain
es5id: 12.14-7
description: catch introduces scope - scope removed when exiting catch block
---*/
var o = {foo: 1};
var catchAccessed = false;
try {
throw o;
}
catch (expObj) {
catchAccessed = (expObj.foo == 1);
}
assert(catchAccessed, '(expObj.foo == 1)');
catchAccessed = false;
try {
expObj;
}
catch (e) {
catchAccessed = e instanceof ReferenceError
}
assert(catchAccessed, 'e instanceof ReferenceError');
reportCompare(0, 0);