summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/eval-code/indirect/realm.js
blob: 120e65d05813264d96a7275d2b439eceb595265a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 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-performeval
es6id: 18.2.1.1
description: >
  Uses the global variable envrionment of the running execution context
info: |
  [...]
  12. Let ctx be the running execution context. If direct is true, ctx will be
      the execution context that performed the direct eval. If direct is false,
      ctx will be the execution context for the invocation of the eval
      function.
  13. If direct is true, then
      [...]
  14. Else,
      a. Let lexEnv be NewDeclarativeEnvironment(evalRealm.[[GlobalEnv]]).
      b. Let varEnv be evalRealm.[[GlobalEnv]].
  [...]
  17. Let evalCxt be a new ECMAScript code execution context.
  [...]
  21. Set the evalCxt's VariableEnvironment to varEnv.
  [...]
  24. Let result be EvalDeclarationInstantiation(body, varEnv, lexEnv,
      strictEval).
features: [cross-realm]
---*/

var other = $262.createRealm().global;
var otherEval = other.eval;

otherEval('var x = 23;');
assert.sameValue(typeof x, 'undefined');
assert.sameValue(other.x, 23);

reportCompare(0, 0);