main
js 82 lines 1.63 KB
Raw
1 /**
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 *
7 * @flow
8 */
9
10 import * as React from 'react';
11
12 const base = Object.create(Object.prototype, {
13 enumerableStringBase: {
14 value: 1,
15 writable: true,
16 enumerable: true,
17 configurable: true,
18 },
19 // $FlowFixMe[invalid-computed-prop]
20 [Symbol('enumerableSymbolBase')]: {
21 value: 1,
22 writable: true,
23 enumerable: true,
24 configurable: true,
25 },
26 nonEnumerableStringBase: {
27 value: 1,
28 writable: true,
29 enumerable: false,
30 configurable: true,
31 },
32 // $FlowFixMe[invalid-computed-prop]
33 [Symbol('nonEnumerableSymbolBase')]: {
34 value: 1,
35 writable: true,
36 enumerable: false,
37 configurable: true,
38 },
39 });
40
41 const data = Object.create(base, {
42 enumerableString: {
43 value: 2,
44 writable: true,
45 enumerable: true,
46 configurable: true,
47 },
48 nonEnumerableString: {
49 value: 3,
50 writable: true,
51 enumerable: false,
52 configurable: true,
53 },
54 [123]: {
55 value: 3,
56 writable: true,
57 enumerable: true,
58 configurable: true,
59 },
60 // $FlowFixMe[invalid-computed-prop]
61 [Symbol('nonEnumerableSymbol')]: {
62 value: 2,
63 writable: true,
64 enumerable: false,
65 configurable: true,
66 },
67 // $FlowFixMe[invalid-computed-prop]
68 [Symbol('enumerableSymbol')]: {
69 value: 3,
70 writable: true,
71 enumerable: true,
72 configurable: true,
73 },
74 });
75
76 export default function SymbolKeys(): React.Node {
77 return <ChildComponent data={data} />;
78 }
79
80 function ChildComponent(props: any) {
81 return null;
82 }