2011-09-07 08:35:18 +02:00
|
|
|
// Copyright 2009 the Sputnik authors. All rights reserved.
|
|
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
|
2014-07-22 01:09:02 +02:00
|
|
|
/*---
|
|
|
|
info: >
|
|
|
|
Using arguments object within a "with" Expression that is nested in a
|
|
|
|
function is admitted
|
2014-07-25 00:41:42 +02:00
|
|
|
es5id: 13.2.2_A18_T2
|
2014-07-22 01:09:02 +02:00
|
|
|
description: "Object is declared with \"__obj={callee:\"a\"}\""
|
2015-03-23 17:34:52 +01:00
|
|
|
flags: [noStrict]
|
2014-07-22 01:09:02 +02:00
|
|
|
---*/
|
2011-09-07 08:35:18 +02:00
|
|
|
|
|
|
|
this.callee = 0;
|
|
|
|
var b;
|
|
|
|
|
|
|
|
__obj={callee:"a"};
|
|
|
|
|
|
|
|
function f(){
|
|
|
|
with (arguments){
|
|
|
|
callee=1;
|
|
|
|
b=true;
|
|
|
|
return arguments;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
result=f(__obj);
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//CHECK#1
|
|
|
|
if (callee !== 0) {
|
|
|
|
$ERROR('#1: callee === 0. Actual: callee ==='+callee);
|
|
|
|
}
|
|
|
|
//
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//CHECK#2
|
|
|
|
if (__obj.callee !== "a") {
|
|
|
|
$ERROR('#2: __obj.callee === "a". Actual: __obj.callee ==='+__obj.callee);
|
|
|
|
}
|
|
|
|
//
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//CHECK#3
|
|
|
|
if (result.callee !== 1) {
|
|
|
|
$ERROR('#3: result.callee === 1. Actual: result.callee ==='+result.callee);
|
|
|
|
}
|
|
|
|
//
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//CHECK#4
|
|
|
|
if (!(this.b)) {
|
|
|
|
$ERROR('#4: this.b === true. Actual: this.b ==='+this.b);
|
|
|
|
}
|
|
|
|
//
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|