• jameslahm's avatar
    [interpreter] Optimize strict equal boolean · 62632c08
    jameslahm authored
    For strict equal boolean literal like "a===true"
    or "a===false", we could generate TestReferenceEqual
    rather than TestStrictEqual. And in `execution_result()->IsTest()`
    case, we could directly emit JumpIfTrue/JumpIfFalse.
    
    E.g.
    ```
    a === true
    ```
    Generated Bytecode From:
    ```
    LdaGlobal
    Star1
    LdaTrue
    TestEqualStrict
    ```
    To:
    ```
    LdaGlobal
    Star1
    LdaTrue
    TestReferenceEqual
    ```
    
    E.g.
    ```
    if (a === true)
    ```
    Generated Bytecode From:
    ```
    LdaGlobal
    Star1
    LdaTrue
    TestEqualStrict
    JumpIfFalse
    ```
    To
    ```
    LdaGlobal
    JumpIfTrue
    Jump
    ```
    
    
    Bug: v8:6403
    Change-Id: Ieaca147acd2d523ac0d2466e7861afb2d29a1310
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568923Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: 王澳 <wangao.james@bytedance.com>
    Cr-Commit-Position: refs/heads/main@{#79935}
    62632c08
Name
Last commit
Last update
..
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
ast-function-literal-id-reindexer.cc Loading commit data...
ast-function-literal-id-reindexer.h Loading commit data...
ast-source-ranges.h Loading commit data...
ast-traversal-visitor.h Loading commit data...
ast-value-factory.cc Loading commit data...
ast-value-factory.h Loading commit data...
ast.cc Loading commit data...
ast.h Loading commit data...
modules.cc Loading commit data...
modules.h Loading commit data...
prettyprinter.cc Loading commit data...
prettyprinter.h Loading commit data...
scopes.cc Loading commit data...
scopes.h Loading commit data...
source-range-ast-visitor.cc Loading commit data...
source-range-ast-visitor.h Loading commit data...
variables.cc Loading commit data...
variables.h Loading commit data...