跳到主要内容

不支持使用被处理的对象作为 WeakMap 的键

该文件并没有显式的在该包被引用。

信息

ES 14 ( ECMAScript 2023 ) 之前,WeakMap 的键只能是「可扩展对象」(即未被 Object.freeze()Object.seal() 处理的对象),否则会抛出 TypeError

备注

该文件内容同样出现在 ReactFiber 中

export let hasBadMapPolyfill: boolean;

if (__DEV__) {
hasBadMapPolyfill = false;
try {
const frozenObject = Object.freeze({});
new Map([[frozenObject, null]]);
new Set([frozenObject]);
} catch (e) {
// TODO: Consider warning about bad polyfills
// 待办:考虑警告不良的 polyfill
hasBadMapPolyfill = true;
}
}