1. 18 Feb, 2017 4 commits
  2. 17 Feb, 2017 31 commits
  3. 16 Feb, 2017 5 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