Closed hyp3rflow closed 1 year ago
This PR includes:
The result of this PR:
iter: 70,202 → 70,098 (-104) analyzed-nodes: 16,307/20,020 (81.45%) → 16,313/20,020 (81.48%)
diff of analyze/types:
def <BUILTIN>:INTRINSICS.BigInt.prototype.valueOf(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Unknown --> def <BUILTIN>:INTRINSICS.BigInt.prototype.valueOf(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[BigInt | Undefined] | Abrupt[throw] +-> def <BUILTIN>:INTRINSICS.BigInt.prototype.valueOf(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[BigInt] | Abrupt[throw] -------------------------------------------------------------------------------- def <BUILTIN>:INTRINSICS.Function.prototype.toString(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Unknown --> def <BUILTIN>:INTRINSICS.Function.prototype.toString(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[String | Absent] | Abrupt[throw] +-> def <BUILTIN>:INTRINSICS.Function.prototype.toString(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[String] | Abrupt[throw] -------------------------------------------------------------------------------- def <BUILTIN>:INTRINSICS.get DataView.prototype.buffer(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Unknown --> def <BUILTIN>:INTRINSICS.get DataView.prototype.buffer(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[ArrayBufferObject | Undefined] | Abrupt[throw] +-> def <BUILTIN>:INTRINSICS.get DataView.prototype.buffer(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[ArrayBufferObject] | Abrupt[throw] -------------------------------------------------------------------------------- def <BUILTIN>:INTRINSICS.get TypedArray.prototype.buffer(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Unknown --> def <BUILTIN>:INTRINSICS.get TypedArray.prototype.buffer(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[ArrayBufferObject | Undefined] | Abrupt[throw] +-> def <BUILTIN>:INTRINSICS.get TypedArray.prototype.buffer(this: ESValue, ArgumentsList: List[ESValue], NewTarget: Object | Undefined): Normal[ArrayBufferObject] | Abrupt[throw] -------------------------------------------------------------------------------- def IsArray(argument: Unknown): Normal[Boolean] | Abrupt --> def IsArray(argument?: ESValue): Normal[Boolean] | Abrupt[throw] +-> def IsArray(argument: ESValue): Normal[Boolean] | Abrupt[throw] -------------------------------------------------------------------------------- def thisBigIntValue(value: Unknown): Unknown --> def thisBigIntValue(value: ESValue): Abrupt[throw] | BigInt | Absent +-> def thisBigIntValue(value: ESValue): Abrupt[throw] | BigInt --------------------------------------------------------------------------------
Due to the pruning involving the field existence check, many values that previously contained Absent or Undefined have been refined.
This PR includes:
The result of this PR:
diff of analyze/types:
Due to the pruning involving the field existence check, many values that previously contained Absent or Undefined have been refined.