• jwolfe's avatar
    Implement new Function.prototype.toString --harmony-function-tostring · d1d4b9ce
    jwolfe authored
    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}
    d1d4b9ce
Name
Last commit
Last update
..
runtime-array.cc Loading commit data...
runtime-atomics.cc Loading commit data...
runtime-classes.cc Loading commit data...
runtime-collections.cc Loading commit data...
runtime-compiler.cc Loading commit data...
runtime-date.cc Loading commit data...
runtime-debug.cc Loading commit data...
runtime-error.cc Loading commit data...
runtime-forin.cc Loading commit data...
runtime-function.cc Loading commit data...
runtime-futex.cc Loading commit data...
runtime-generator.cc Loading commit data...
runtime-i18n.cc Loading commit data...
runtime-internal.cc Loading commit data...
runtime-interpreter.cc Loading commit data...
runtime-literals.cc Loading commit data...
runtime-liveedit.cc Loading commit data...
runtime-maths.cc Loading commit data...
runtime-module.cc Loading commit data...
runtime-numbers.cc Loading commit data...
runtime-object.cc Loading commit data...
runtime-operators.cc Loading commit data...
runtime-promise.cc Loading commit data...
runtime-proxy.cc Loading commit data...
runtime-regexp.cc Loading commit data...
runtime-scopes.cc Loading commit data...
runtime-strings.cc Loading commit data...
runtime-symbol.cc Loading commit data...
runtime-test.cc Loading commit data...
runtime-typedarray.cc Loading commit data...
runtime-utils.h Loading commit data...
runtime-wasm.cc Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...