• bmeurer's avatar
    [builtins] Unify the String constructor. · a3d6f6cc
    bmeurer authored
    Implement the String constructor completely as native builtin,
    avoiding the need to do gymnastics in JavaScript builtin to
    properly detect the no argument case (which is different from
    the undefined argument case) and also allowing to just
    tailcall through to ToString or SymbolDescriptiveString for
    the common case. Also the JavaScript builtin was misleading
    since the case for construct call was unused, but could be
    triggered in a wrong way once we support tail calls from
    constructor functions.
    
    This refactoring allows us to properly implement subclassing
    for String builtins, once we have the correct initial_map on
    derived classes (it's merely a matter of using NewTarget
    instead of the target register now).
    
    This introduces a new %SymbolDescriptiveString runtime
    entry, which is also used by Symbol.toString() now.
    
    R=mstarzinger@chromium.org
    
    Review URL: https://codereview.chromium.org/1344893002
    
    Cr-Commit-Position: refs/heads/master@{#30759}
    a3d6f6cc
runtime-symbol.cc 2.01 KB