ESMeta has been upgraded to version v0.5.0, adding support for advanced type analysis. However, it still produces some false alarms, primarily due to missing assertions, among other factors.
NOTE: v0.5.0 is merged in #3487!
As we agreed, too many algorithms are listed in esmeta-ignore.json. We aim to find solutions to these alarms, discuss some more challenging cases, and organize issues/PRs to keep track. This might lead to a higher volume of PRs, so I apologize in advance if it seems spammy.
Please reply to this issue if you have a problem or question with ESMeta alarms or an upgrade;
We will keep updating this doc on which alarms remain and which can be resolved with a fix.
Resolved PR
| #PR |
Name |
| #2924 |
Fixed return types of algorithms returning empty |
| #3485 |
Editorial: Add an assertion for PrivateEnvironment cannot be null |
| #3499 |
Editorial: Move getting the TA type inside the RMW function |
| #3445 |
Editorial: GlobalObject cannot be undefined in the GetGlobalObject |
| #3466 |
Editorial: Narrowing an assertion in SuperCall: super Arguments |
| #3483 |
Editorial: Add an Assertion for Built-in Function Object |
| #3484 |
Editorial: GetModuleNamespace cannot return empty |
| #3488 |
Editorial: Handle non-direct binding cases in ResolveExports |
| #3494 |
Editorial: use suspended-start instead of undefined in AsyncGeneratorState |
| #3495 |
Editorial: Allocate-and-use in MakeMatchIndicesIndexPairArray for refinement |
| #3496 |
Editorial: ProxyTarget is always a function object in GetFunctionRealm |
Cannot resolve now
We are actively working to resolve the issues; however, some cases are particularly challenging and require more time. To keep readers informed, we have compiled a list of errors that cannot be resolved at this moment.
Planning to resolve In Future update
We hope the alarms below will be resolved in several weeks.
Details
[ParamTypeMismatch] Call[7014] argument assignment to second parameter _byteIndex_ when Call[7014] function call from TypedArrayGetElement (step 6, 7:21-123) to GetValueFromBuffer
- expected: NonNegInt
- actual : Int
[ParamTypeMismatch] Call[7036] argument assignment to second parameter _byteIndex_ when Call[7036] function call from TypedArraySetElement (step 3.e, 9:24-136) to SetValueInBuffer
- expected: NonNegInt
- actual : Int
[ParamTypeMismatch] Call[31197] argument assignment to first parameter _O_ when Call[31197] function call from DoWait (step 20.c, 28:26-87) to CreateDataPropertyOrThrow
- expected: Record[Object]
- actual : Record[Object] | Undefined
[ParamTypeMismatch] Call[31199] argument assignment to first parameter _O_ when Call[31199] function call from DoWait (step 20.d, 29:26-93) to CreateDataPropertyOrThrow
- expected: Record[Object]
- actual : Record[Object] | Undefined
[ParamTypeMismatch] Call[31208] argument assignment to first parameter _O_ when Call[31208] function call from DoWait (step 21.c, 34:26-87) to CreateDataPropertyOrThrow
- expected: Record[Object]
- actual : Record[Object] | Undefined
[ParamTypeMismatch] Call[31210] argument assignment to first parameter _O_ when Call[31210] function call from DoWait (step 21.d, 35:26-93) to CreateDataPropertyOrThrow
- expected: Record[Object]
- actual : Record[Object] | Undefined
[ParamTypeMismatch] Call[34361] argument assignment to first parameter _generator_ when Call[34361] function call from AsyncGeneratorYield (step 9, 10:22-101) to AsyncGeneratorCompleteStep
- expected: Record[AsyncGenerator]
- actual : Record[AsyncGenerator | Generator]
[ParamTypeMismatch] Call[18152] argument assignment to first parameter _O_ when Call[18152] function call from InstallErrorCause (step 1.a, 3:33-58) to Get
- expected: Record[Object]
- actual : ESValue
Others
Unfortunately, we do not have an idea of how to resolve the errors below right now.
Details
[ReturnTypeMismatch] Block[6066] return statement in Record[ECMAScriptFunctionObject].Call (step 9, 14:12-36)
- expected: Normal[ESValue] | Throw
- actual : Break | Continue | Throw
[ReturnTypeMismatch] Block[6168] return statement in Record[ECMAScriptFunctionObject].Construct (step 11.a, 22:14-38)
- expected: Normal[Record[Object]] | Throw
- actual : Break | Continue | Throw
[ReturnTypeMismatch] Block[6977] return statement in TypedArrayLength (step 9, 10:14-74)
- expected: NonNegInt
- actual : Int
[BinaryOpTypeMismatch] Branch[28227] binary operation (<) in CompareTypedArrayElements (step 6, 10:17-26)
- left : Number | BigInt
- right : Number | BigInt
[BinaryOpTypeMismatch] Branch[28230] binary operation (<) in CompareTypedArrayElements (step 7, 11:17-26)
- left : Number | BigInt
- right : Number | BigInt
[ReturnTypeMismatch] Block[30561] return statement in GetViewByteLength (step 8, 9:14-49)
- expected: NonNegInt
- actual : Int
[BinaryOpTypeMismatch] Branch[31192] binary operation (==) in DoWait (step 20, 25:17-26)
- left : Number[Int] | BigInt
- right : Number | BigInt
[ParamTypeMismatch] Call[31601] argument assignment to first parameter _block_ when Call[31601] function call from INTRINSICS.Atomics.notify (step 7, 11:24-67) to GetWaiterList
- expected: Record[SharedDataBlock]
- actual : Record[DataBlock | SharedDataBlock] | Null
[ReturnTypeMismatch] Block[32987] return statement in AsyncFromSyncIteratorContinuation (step 3, 4:14-64)
- expected: Record[Promise]
- actual : Throw
[ReturnTypeMismatch] Block[32998] return statement in AsyncFromSyncIteratorContinuation (step 5, 6:14-65)
- expected: Record[Promise]
- actual : Throw
[ReturnTypeMismatch] Block[33009] return statement in AsyncFromSyncIteratorContinuation (step 7, 8:14-72)
- expected: Record[Promise]
- actual : Throw
[ReturnTypeMismatch] Block[15976] return statement in Record[SourceTextModuleRecord].ExecuteModule (step 9.f.i, 17:20-38)
- expected: Normal[Enum[~unused~]] | Throw
- actual : Break | Continue | Return | Throw
ESMeta has been upgraded to version v0.5.0, adding support for advanced type analysis. However, it still produces some false alarms, primarily due to missing assertions, among other factors.
NOTE: v0.5.0 is merged in #3487!
As we agreed, too many algorithms are listed in esmeta-ignore.json. We aim to find solutions to these alarms, discuss some more challenging cases, and organize issues/PRs to keep track. This might lead to a higher volume of PRs, so I apologize in advance if it seems spammy.
Please reply to this issue if you have a problem or question with ESMeta alarms or an upgrade;
We will keep updating this doc on which alarms remain and which can be resolved with a fix.
Resolved PR
Cannot resolve now
We are actively working to resolve the issues; however, some cases are particularly challenging and require more time. To keep readers informed, we have compiled a list of errors that cannot be resolved at this moment.
Planning to resolve In Future update
We hope the alarms below will be resolved in several weeks.
Details
Others
Unfortunately, we do not have an idea of how to resolve the errors below right now.
Details