summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/annexB/language/statements/if/emulated-undefined.js
blob: 46f73419f8357d02e4adefdbb5a3e36d34e83db8 (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
// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-if-statement-runtime-semantics-evaluation
description: >
  ToBoolean returns `false` for [[IsHTMLDDA]] object; first Statement is not evaluated.
info: |
  IfStatement : if ( Expression ) Statement else Statement

  1. Let exprRef be the result of evaluating Expression.
  2. Let exprValue be ! ToBoolean(? GetValue(exprRef)).
  3. If exprValue is true, then
    [...]
  4. Else,
    a. Let stmtCompletion be the result of evaluating the second Statement.

  The [[IsHTMLDDA]] Internal Slot / Changes to ToBoolean

  1. If argument has an [[IsHTMLDDA]] internal slot, return false.
  2. Return true.
features: [IsHTMLDDA]
---*/

var result = false;
if ($262.IsHTMLDDA) {
  throw new Test262Error("unreachable");
} else {
  result = true;
}

assert(result);

reportCompare(0, 0);