DescriptionFix TypeError message for Reflect.construct
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}
Committed: https://chromium.googlesource.com/v8/v8/+/b478e9c11c3b01e4b34607182bab4774334f0e4d
Patch Set 1 #Patch Set 2 : Fix ARM #Patch Set 3 : Fix the rest #
Total comments: 2
Patch Set 4 : NotConstructor -> ThrowNotConstructor #Patch Set 5 : Fix order in runtime-internal.cc #
Messages
Total messages: 24 (17 generated)
|