7.3.15 TestIntegrityLevel ( O, level )

抽象操作 TestIntegrityLevel 用于确定对象的自身属性集是否是固定的。 此抽象操作执行以下步骤:

  1. 断言: Type(O) 为 Object 类型。
  2. 断言:level "sealed" "frozen"。
  3. 使 status 变为 ? IsExtensible(O)。
  4. 如果 statustrue,则返回 false。
  5. 注意如果对象是可扩展的,则不会检查其属性。
  6. 使 keys 变为 ? O.[[OwnPropertyKeys]]()。
  7. 对每个元素 kkeys 重复,

a. 使 currentDesc 变为 ? O.[[GetOwnProperty]](k)。

b. 如果 currentDesc 不是 undefined,那么

i. 如果 currentDesc.[[Configurable]] 为 true,则返回 false

ii. 如果 level"frozen" 并且 IsDataDescriptor(currentDesc) 为 true, 那么

  1. 如果 currentDesc.[[Writable]] 为 true,返回 false

  2. 返回 true

results matching ""

    No results matching ""