diff options
Diffstat (limited to 'js/src/tests/test262/language/statements/function/S13.2.2_A19_T8.js')
-rw-r--r-- | js/src/tests/test262/language/statements/function/S13.2.2_A19_T8.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A19_T8.js b/js/src/tests/test262/language/statements/function/S13.2.2_A19_T8.js new file mode 100644 index 0000000000..577fba297f --- /dev/null +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A19_T8.js @@ -0,0 +1,75 @@ +// 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") { + throw new Test262Error('#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) { + throw new Test262Error('#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") { + throw new Test262Error('#2: __func()==="b". Actual: __func()==='+__func()); +} +// +////////////////////////////////////////////////////////////////////////////// + +with ({a:99,b:"c"}) +{ + ////////////////////////////////////////////////////////////////////////////// + //CHECK#3 + if (__func() !== "b") { + throw new Test262Error('#3: __func()==="b". Actual: __func()==='+__func()); + } + // + ////////////////////////////////////////////////////////////////////////////// +} + +reportCompare(0, 0); |