DescriptionImplement new Function.prototype.toString --harmony-function-tostring
For functions declared in source code, the .toString() representation
will be an excerpt of the source code.
* For functions declared with the "function" keyword, the excerpt
starts at the "function" or "async" keyword and ends at the final "}".
The previous behavior would start the excerpt at the "(" of the
parameter list, and prepend a canonical `"function " + name` or
similar, which would discard comments and formatting surrounding the
function's name. Anonymous functions declared as function expressions
no longer get the name "anonymous" in their toString representation.
* For methods, the excerpt starts at the "get", "set", "*" (for
generator methods), or property name, whichever comes first.
Previously, the toString representation for methods would use a
canonical prefix before the "(" of the parameter list. Note that any
"static" keyword is omitted.
* For arrow functions and class declarations, the excerpt is unchanged.
For functions created with the Function, GeneratorFunction, or
AsyncFunction constructors:
* The string separating the parameter text and body text is now
"\n) {\n", where previously it was "\n/*``*/) {\n" or ") {\n".
* At one point, newline normalization was required by the spec here,
but that was removed from the spec, and so this CL does not do it.
Included in this CL is a fix for CreateDynamicFunction parsing. ')'
and '`' characters in the parameter string are no longer disallowed,
and Function("a=function(", "}){") is no longer allowed.
BUG=v8:4958, v8:4230
Review-Url: https://codereview.chromium.org/2156303002
Cr-Commit-Position: refs/heads/master@{#43262}
Committed: https://chromium.googlesource.com/v8/v8/+/d1d4b9ce51d2ef3e9bd760e70642acddac30846f
Patch Set 1 #
Total comments: 2
Patch Set 2 : add test. fix unicode bug #Patch Set 3 : more tests and bug fixes #Patch Set 4 : rebase (still WIP) #Patch Set 5 : add fixes for v8:4230. still needs work. #Patch Set 6 : fix async function constructor #
Total comments: 1
Patch Set 7 : remove newline normalization #Patch Set 8 : rebase #
Total comments: 12
Patch Set 9 : address review comments #Patch Set 10 : rebase #Patch Set 11 : rename scope_position to position #
Total comments: 1
Patch Set 12 : rebase #Patch Set 13 : update test262.status and implement new CreateDynamicFunction() behavior #Patch Set 14 : rebase #
Total comments: 4
Patch Set 15 : add DCHECK for the name anonymous #
Total comments: 1
Patch Set 16 : update comment for removing anonymous identifier #Patch Set 17 : rebase #
Messages
Total messages: 67 (34 generated)
|