test262/test/language/module-code/eval-this.js

46 lines
1.1 KiB
JavaScript

// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Module Environment Records provide a this binding, and the value is
`undefined`.
esid: sec-moduleevaluation
info: |
[...]
16. Let result be the result of evaluating module.[[ECMAScriptCode]].
[...]
12.2.2 The this Keyword
12.2.2.1 Runtime Semantics: Evaluation
PrimaryExpression : this
1. Return ? ResolveThisBinding( ).
8.3.4 ResolveThisBinding ( )
1. Let envRec be GetThisEnvironment( ).
2. Return ? envRec.GetThisBinding().
8.3.3 GetThisEnvironment ( )
1. Let lex be the running execution context's LexicalEnvironment.
2. Repeat
a. Let envRec be lex's EnvironmentRecord.
b. Let exists be envRec.HasThisBinding().
c. If exists is true, return envRec.
d. Let outer be the value of lex's outer environment reference.
e. Let lex be outer.
8.1.1.5.3 HasThisBinding ()
1. Return true.
8.1.1.5.4 GetThisBinding ()
1. Return undefined.
flags: [module]
---*/
assert.sameValue(this, undefined);