// Copyright 2009 the Sputnik authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- info: Function's scope chain is started when it is declared es5id: 13.2.2_A19_T8 description: Function is declared multiply times flags: [noStrict] ---*/ ////////////////////////////////////////////////////////////////////////////// //CHECK#0 if (typeof __func !== "undefined") { $ERROR('#0: typeof __func === "undefined". Actual: typeof __func ==='+typeof __func); } // ////////////////////////////////////////////////////////////////////////////// var a = 1, b = "a"; var __obj = {a:2}; with (__obj) { while(1){ var __func = function() { return a; }; break; } } delete __obj; ////////////////////////////////////////////////////////////////////////////// //CHECK#1 if (__func() !== 2) { $ERROR('#1: __func() === 2. Actual: __func() ==='+__func()); } // ////////////////////////////////////////////////////////////////////////////// var __obj = {a:3,b:"b"}; with (__obj) { var __func = function() { return b; } } delete __obj; ////////////////////////////////////////////////////////////////////////////// //CHECK#2 if (__func()!=="b") { $ERROR('#2: __func()==="b". Actual: __func()==='+__func()); } // ////////////////////////////////////////////////////////////////////////////// with ({a:99,b:"c"}) { ////////////////////////////////////////////////////////////////////////////// //CHECK#3 if (__func() !== "b") { $ERROR('#3: __func()==="b". Actual: __func()==='+__func()); } // ////////////////////////////////////////////////////////////////////////////// }