mirror of https://github.com/tc39/test262.git
36 lines
930 B
JavaScript
36 lines
930 B
JavaScript
// Copyright (C) 2016 the V8 project authors. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
/*---
|
|
esid: sec-function-calls-runtime-semantics-evaluation
|
|
es6id: 12.3.4.1
|
|
description: Correct retrieval of environment's "with" base object
|
|
info: |
|
|
4. If Type(ref) is Reference, then
|
|
a. If IsPropertyReference(ref) is true, then
|
|
[...]
|
|
b. Else the base of ref is an Environment Record,
|
|
i. Let refEnv be GetBase(ref).
|
|
ii. Let thisValue be refEnv.WithBaseObject().
|
|
[...]
|
|
8. Return ? EvaluateDirectCall(func, thisValue, Arguments, tailCall).
|
|
flags: [noStrict]
|
|
---*/
|
|
|
|
var viaMember, viaCall;
|
|
var obj = {
|
|
method: function() {
|
|
viaCall = this;
|
|
},
|
|
get attribute() {
|
|
viaMember = this;
|
|
}
|
|
};
|
|
|
|
with (obj) {
|
|
method();
|
|
attribute;
|
|
}
|
|
|
|
assert.sameValue(viaCall, obj, 'via CallExpression');
|
|
assert.sameValue(viaMember, obj, 'via MemberExpression');
|