1. 17 Feb, 2017 29 commits
  2. 16 Feb, 2017 11 commits
    • dcheng's avatar
      Make instance checks understand remote contexts. · 692cccce
      dcheng authored
      https://crrev.com/2500363002 updated FunctionTemplate::HasInstance to
      follow the hidden prototype chain of a global proxy to the global
      object. However, remote contexts don't have a global object to check;
      instead, teach the instance check knows about the conventions of
      global proxy setup and have it also check the constructor's prototype.
      
      Similarly, also teach Object::FindInstanceInPrototypeChain about the
      unusual conventions for remote contexts.
      
      BUG=527190
      
      Review-Url: https://codereview.chromium.org/2698683003
      Cr-Commit-Position: refs/heads/master@{#43263}
      692cccce
    • 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
    • jkummerow's avatar
      [stubs] KeyedStoreGeneric: overwrite existing fast properties directly · 0393b11d
      jkummerow authored
      Without relying on the stub cache.
      
      Review-Url: https://codereview.chromium.org/2696993002
      Cr-Commit-Position: refs/heads/master@{#43261}
      0393b11d
    • Daniel Clifford's avatar
      [ignition] Optimize reloading of registers before Dispatch · bd21c2bd
      Daniel Clifford authored
      Before this patch, the registers needed for bytecode dispatch in interpreter
      handlers were inconsistently stored in the interpreter frame and/or kept in
      values that remained live across calls.
      
      After this patch, these registers are explicitly reloaded after calls, making it
      possible to elide the spills of those registers before the call in many cases.
      
      Some highlights from the CL:
      
      * Added methods to the CSA and InterpreterAssembler to efficiently store and
        load Smis values and Smi interpreter registers on x64 without explicit
        tagging/untagging.
      
      * Created Variables for all of the interpreter-internal values that need to be
        reloaded before bytecode dispatch at the end of an interpreter handler.
      
      * The bytecode offset can be written out early in a handler by marking it
        has having a call along it's critical path. By moving this early in a
        handler, it becomes possible to use memory operands for pushes used to
        marshall parameters when making calls.
      
      Change-Id: Icf8d7798789f88a4489e06a7092616bbbb881577
      Reviewed-on: https://chromium-review.googlesource.com/442566
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43260}
      bd21c2bd
    • adamk's avatar
      [parser cleanup] Simplify statement parsing logic · ad2a30a9
      adamk authored
      This changes most callers of ParseScopedStatement to call a new, simpler form
      of ParseStatement, which takes only |labels| and |ok|. This allows us to remove
      the |legacy| attribute from ParseScopedStatement.
      
      The only remaining caller of ParseScopedStatement is ParseIfStatement.
      
      This patch is a strict refactoring, and should change no behavior.
      
      R=littledan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2699793002
      Cr-Commit-Position: refs/heads/master@{#43259}
      ad2a30a9
    • vabr's avatar
      Raise SyntaxError on let [ starting an ExpressionStatement · 94bf354a
      vabr authored
      ES2017 forbids the sequence of tokens "let [" in in expression statements [1].
      
      This CL makes ParserBase report those instances as SyntaxError. It also adds a
      customised error message for that, because the standard "Unexpected token" is
      not applicable: "let" itself is not forbidden in those context, only the
      sequence of "let [".
      
      [1] https://tc39.github.io/ecma262/#sec-expression-statement
      
      BUG=v8:5686
      
      Review-Url: https://codereview.chromium.org/2694003002
      Cr-Commit-Position: refs/heads/master@{#43258}
      94bf354a
    • Michael Achenbach's avatar
      [test] Implement results processor for perf runner. · b593f1a5
      Michael Achenbach authored
      This adds the possibility to specify a python script for post-processing stdout.
      
      This also adds some system tests for testing the new feature.
      
      NOTRY=true
      
      Change-Id: I0383afb3e23513629508feeb639ed2dfce56b54a
      Reviewed-on: https://chromium-review.googlesource.com/443449Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43257}
      b593f1a5
    • Michael Starzinger's avatar
      [turbofan] Improve checkpoint elision during graph building. · 9c068209
      Michael Starzinger authored
      This improves the filter deciding whether a checkpoint needs to be
      created. We now keep track of whether a node having an observable
      side-effect has been created, allowing to elide checkpoint that are
      provably effect-dominated by another checkpoint already.
      
      By now the initial graphs contain an increasing amount of nodes marked
      with {Operator::kNoWrite}, making this optimization worthwhile.
      
      R=jarin@chromium.org
      
      Change-Id: Ie7ffb67e1ab081ef7aa3017675afbe5f9e7601ab
      Reviewed-on: https://chromium-review.googlesource.com/443466Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43256}
      9c068209
    • Michael Achenbach's avatar
      [test] Upgrade gcmole plugin · 7eb022c8
      Michael Achenbach authored
      This upgrades to a precompiled plugin version including:
      https://chromium.googlesource.com/v8/v8/+/4b0edcf7
      
      BUG=v8:5970
      TBR=clemensh@chromium.org,mstarzinger@chromium.org
      
      Change-Id: I28ecdd568e4bc075533b3d14b7946a4a7ce5f9e0
      Reviewed-on: https://chromium-review.googlesource.com/443648
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43255}
      7eb022c8
    • gsathya's avatar
      [mjsunit] Exit on hitting unreachable code instead of throwing · 7ee77b9b
      gsathya authored
      Errors are swallowed by promises, so just exit with stack trace.
      
      Review-Url: https://codereview.chromium.org/2693383004
      Cr-Commit-Position: refs/heads/master@{#43254}
      7ee77b9b
    • littledan's avatar
      [intl] Fall back on an invalid default locale to "und" · 3059138b
      littledan authored
      The default locale can be changed in some environments with environment
      variables. These environment variables used to allow the system to get
      into an invalid state, where the default locale was unsupported. This
      patch detects that case and falls back to "und" as the default locale
      if there is an Intl service which does not support the locale that ICU
      reports as the default. It also has a slight cleanup of surrounding code.
      
      I haven't gone through the work to set up an automated test, as triggering
      the case requires setting environment variables, which our tests don't tend
      to do, but I tested interactively as follows:
      
      dehrenberg@dehrenberg:~/v8/v8$ LC_ALL="tlh-FR" rlwrap out/Release/d8
      V8 version 5.7.0 (candidate)
      d8> new Intl.NumberFormat("foo").resolvedOptions().locale
      "und"
      d8> new Intl.NumberFormat().resolvedOptions().locale
      "und"
      d8>
      
      dehrenberg@dehrenberg:~/v8/v8$ LC_ALL="de" rlwrap out/Release/d8
      V8 version 5.7.0 (candidate)
      d8> new Intl.NumberFormat().resolvedOptions().locale
      "de"
      d8> new Intl.NumberFormat("foo").resolvedOptions().locale
      "de"
      d8>
      
      BUG=v8:4216
      
      Review-Url: https://codereview.chromium.org/2646593002
      Cr-Commit-Position: refs/heads/master@{#43253}
      3059138b