1. 21 Feb, 2017 3 commits
  2. 20 Feb, 2017 6 commits
  3. 19 Feb, 2017 1 commit
  4. 18 Feb, 2017 2 commits
    • vabr's avatar
      Fix typeof optimization for undetectable · 6302753e
      vabr authored
      Currently, typeof o, where o is an undetectable
      callable object (such as document.all), returns 'function' if
      optimised. It should, however, return 'undefined'.
      
      This CL excludes undetectable objects from the optimization
      resulting in type 'function' and renames the related code to
      reflect that.
      
      BUG=v8:5972
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2697063002
      Cr-Commit-Position: refs/heads/master@{#43298}
      6302753e
    • mtrofin's avatar
      [wasm] Embedder can control what buffers wasm compilation works on. · d9bc0ffb
      mtrofin authored
      Two controls, one for instantiation and one for compilation. They allow
      the embedder (e.g. Chrome) check properties of the parameters of those
      two operations, and decide if they are allowed to continue.
      
      For example, Chrome may now decline compilation of certain size buffers,
      in synchronous cases; same for instantiation (where the buffer size
      refers to the size of the buffer containing wasm wire bytes)
      
      BUG=v8:5981
      
      Review-Url: https://codereview.chromium.org/2699843003
      Cr-Commit-Position: refs/heads/master@{#43295}
      d9bc0ffb
  5. 17 Feb, 2017 3 commits
  6. 16 Feb, 2017 10 commits
    • 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
    • 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
    • mvstanton's avatar
      This is a workaround for the fact that %SetCode can "lose" the script for a js... · ae8f2820
      mvstanton authored
      This is a workaround for the fact that %SetCode can "lose" the script for a js native. If the js native is re-initialized (for a Realm or something), then the source SharedFunctionInfo won't have a script anymore. Nonetheless, we may want to optimize the function. If we've compiled bytecode, then we can compile optimized code without a script.
      
      Here, we carve out a special exception for this case, so that we can turn on the --mark-shared-functions-for-tier-up.
      
      BUG=v8:5946
      R=leszeks@chromium.org
      
      Review-Url: https://codereview.chromium.org/2684033007
      Cr-Original-Commit-Position: refs/heads/master@{#43240}
      Committed: https://chromium.googlesource.com/v8/v8/+/4123a3dd790495c40cf839990318a85c146e057d
      Review-Url: https://codereview.chromium.org/2684033007
      Cr-Commit-Position: refs/heads/master@{#43252}
      ae8f2820
    • rossberg's avatar
      [wasm] Inspect right control frames for unreachable flag · e2b83fbb
      rossberg authored
      We were looking at the unreachable flag or stack_depth of the target frame
      instead of the current one in a couple of places (most notably BreakTo).
      This change fixes these bugs and makes us pass the latest spec tests for
      br_table validation. Also need to ensure that br_table targets have consistent
      types, which is not implied if the stack is polymorphic.
      
      R=titzer@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2696813002
      Cr-Commit-Position: refs/heads/master@{#43250}
      e2b83fbb
    • Andreas Haas's avatar
      [turbofan] For Word32Shl optimizations only consider the last 5 bits of the shift · 5f1661aa
      Andreas Haas authored
      One optimization in the machine-operator-reducer did not consider that
      that word32 shift left instructions only consider the last 5 bits of
      the shift input.
      
      The issue only occurs for WebAssembly because in JavaScript we always
      add a "& 0xf" on the shift value to the TurboFan graph.
      
      For additional background: The JavaScript and WebAssembly spec both
      say that only the last 5 bits of the shift value are used in the
      word32-shift-left operation. This means that an "x << 0x29", in the
      code is actually executed as "x << 0x09". Therefore the changes in
      this CL are okay because they mask the last 5 bit of the shift value.
      
      BUG=chromium:689450
      
      Change-Id: Id92f298ed6d7f1714b109b3f4fbcecd5ac6d30f7
      Reviewed-on: https://chromium-review.googlesource.com/439312Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43245}
      5f1661aa
    • machenbach's avatar
      Revert of Allow a ParseInfo without a script for %SetCode users (patchset #5... · 4d942ac7
      machenbach authored
      Revert of Allow a ParseInfo without a script for %SetCode users (patchset #5 id:220001 of https://codereview.chromium.org/2684033007/ )
      
      Reason for revert:
      Please remove the file in status file too. Breaks presubmit:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20presubmit/builds/14754
      
      Or lets call it post-submit :(
      
      Original issue's description:
      > This is a workaround for the fact that %SetCode can "lose" the script for a js native. If the js native is re-initialized (for a Realm or something), then the source SharedFunctionInfo won't have a script anymore. Nonetheless, we may want to optimize the function. If we've compiled bytecode, then we can compile optimized code without a script.
      >
      > Here, we carve out a special exception for this case, so that we can turn on the --mark-shared-functions-for-tier-up.
      >
      > BUG=v8:5946
      > R=leszeks@chromium.org
      >
      > Review-Url: https://codereview.chromium.org/2684033007
      > Cr-Commit-Position: refs/heads/master@{#43240}
      > Committed: https://chromium.googlesource.com/v8/v8/+/4123a3dd790495c40cf839990318a85c146e057d
      
      TBR=leszeks@chromium.org,mstarzinger@chromium.org,marja@chromium.org,mvstanton@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5946
      
      Review-Url: https://codereview.chromium.org/2703553002
      Cr-Commit-Position: refs/heads/master@{#43242}
      4d942ac7
    • mvstanton's avatar
      This is a workaround for the fact that %SetCode can "lose" the script for a js... · 4123a3dd
      mvstanton authored
      This is a workaround for the fact that %SetCode can "lose" the script for a js native. If the js native is re-initialized (for a Realm or something), then the source SharedFunctionInfo won't have a script anymore. Nonetheless, we may want to optimize the function. If we've compiled bytecode, then we can compile optimized code without a script.
      
      Here, we carve out a special exception for this case, so that we can turn on the --mark-shared-functions-for-tier-up.
      
      BUG=v8:5946
      R=leszeks@chromium.org
      
      Review-Url: https://codereview.chromium.org/2684033007
      Cr-Commit-Position: refs/heads/master@{#43240}
      4123a3dd
    • littledan's avatar
      [builtins] Apply ES2016 conditional default timezone semantics · d31c5410
      littledan authored
      ES2016 changed the default timezone of dates to be conditional on
      whether a time is included. The semantics were a compromise approach
      based on web compatibility feedback from V8, but until now, we have been
      shipping ES5.1 default timezone semantics. This patch implements the
      new semantics, following ChakraCore and SpiderMonkey (though JSC
      implements V8's previous semantics).
      
      BUG=chromium:589858
      
      Review-Url: https://codereview.chromium.org/2648603002
      Cr-Commit-Position: refs/heads/master@{#43239}
      d31c5410
    • jgruber's avatar
      [regexp] Correct lastIndex behavior in RegExp.prototype[@@replace] · c0fe56e6
      jgruber authored
      @@replace has a pretty complex implementation, taking different paths
      for various situations (e.g.: global/nonglobal regexp, functional/string
      replace argument, etc.). Each of these paths must implement similar
      logic for calling into the RegExpBuiltinExec spec operation, and many
      paths get this subtly wrong.
      
      This CL fixes a couple of issues related to the way @@replace handles lastIndex:
      * All paths now respect lastIndex when calling into exec (some used to assume 0).
      * lastIndex is now advanced after a successful match for sticky regexps.
      * lastIndex is now only reset to 0 on failure for sticky regexps.
      
      BUG=v8:5361
      
      Review-Url: https://codereview.chromium.org/2685183003
      Cr-Commit-Position: refs/heads/master@{#43234}
      c0fe56e6
    • yangguo's avatar
      [debugger] implement inspector-facing API for code coverage. · c39123dd
      yangguo authored
      The inspector uses V8's API handles and should not access
      V8 internals. This change makes sure it can use the coverage
      data in an encapsulated way.
      
      R=jgruber@chromium.org, kozyatinskiy@chromium.org
      BUG=v8:5808
      
      Review-Url: https://codereview.chromium.org/2696163002
      Cr-Commit-Position: refs/heads/master@{#43231}
      c39123dd
  7. 15 Feb, 2017 5 commits
  8. 14 Feb, 2017 8 commits
  9. 13 Feb, 2017 2 commits