• vabr's avatar
    Fix TypeError message for Reflect.construct · b478e9c1
    vabr authored
    If the Reflect.construct receives an argument expected to be a constructor,
    and the argument is not a constructor, V8 currently declares that
    Reflect.construct is not a function. It should instead say that the offending
    argument is not a constructor.
    
    This is the case for all ports of builtins
    (Builtins::Generate_ReflectConstruct). All of them make an
    attempt to at least pass the right argument to the TypeError parametrised
    message, calling out the offending Reflect.construct argument. However,
    Runtime::kThrowCalledNonCallable extracts the callsite from those arguments,
    discarding the precise information.
    
    This CL adds Runtime::kNotConstructor, which reports the arguments passed
    to it, and the CL also modifies the ports of builtins to make use of
    Runtime::kNotConstructor
    
    BUG=v8:5671
    
    Review-Url: https://codereview.chromium.org/2688393003
    Cr-Commit-Position: refs/heads/master@{#43182}
    b478e9c1
reflect-construct.js 13 KB