summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/NumberFormat/constructor-locales-hasproperty.js
blob: 93784924ae3c9b78c4752119730e1f8d2da46af2 (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
37
38
39
40
41
// Copyright (C) 2018 Ujjwal Sharma. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
esid: sec-initializenumberformat
description: >
  Tests that HasProperty(O, Pk) is properly called within the constructor for
  Intl.NumberFormat
info: |
  9.2.1 CanonicalizeLocaleList ( locales )

  7.b. Let kPresent be ? HasProperty(O, Pk).
---*/

const locales = {
  length: 8,
  1: 'en-US',
  3: 'de-DE',
  5: 'en-IN',
  7: 'en-GB'
};

const actualLookups = [];

const handlers = {
  has(obj, prop) {
    actualLookups.push(prop);
    return Reflect.has(...arguments);
  }
};

const proxyLocales = new Proxy(locales, handlers);

const nf = new Intl.NumberFormat(proxyLocales);

assert.sameValue(actualLookups.length, locales.length);
for (let index in actualLookups) {
  assert.sameValue(actualLookups[index], String(index));
}

reportCompare(0, 0);