Skip to content

[ESMeta] PRs & Discussions about ESMeta #3486

Open
1 of 1 issue completed
Open
1 of 1 issue completed
@kimjg1119

Description

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

Sub-issues

Metadata

Assignees

No one assigned

    Labels

    editor callto be discussed in the next editor call

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions