1. 21 Apr, 2017 4 commits
  2. 20 Apr, 2017 25 commits
  3. 19 Apr, 2017 11 commits
    • bbudge's avatar
      [WASM SIMD] Implement primitive shuffles. · 5806d862
      bbudge authored
      - Adds unary Reverse shuffles (swizzles): S32x2Reverse, S16x4Reverse,
        S16x2Reverse, S8x8Reverse, S8x4Reverse, S8x2Reverse. Reversals are
        done within the sub-vectors that prefix the opcode name, e.g. S8x2
        reverses the 8 consecutive pairs in an S8x16 vector.
      
      - Adds binary Zip (interleave) left and right half-shuffles to return a
        single vector: S32x4ZipLeft, S32x4ZipRightS16x8ZipLeft, S16x8ZipRight,
        S8x16ZipLeft, S8x16ZipRight.
      
      - Adds binary Unzip (de-interleave) left and right half shuffles to return
        a single vector: S32x4UnzipLeft, S32x4UnzipRight, S16x8UnzipLeft,
        S16x8UnzipRight, S8x16UnzipLeft, S8x16UnzipRight.
      
      - Adds binary Transpose left and right half shuffles to return
        a single vector: S32x4TransposeLeft, S32x4TransposeRight,
        S16x8TransposeLeft, S16xTransposeRight, S8x16TransposeLeft,
        S8x16TransposeRight.
      
      - Adds binary Concat (concatenate) byte shuffle: S8x16Concat #bytes to
        paste two vectors together.
      
      LOG=N
      BUG=v8:6020
      
      Review-Url: https://codereview.chromium.org/2801183002
      Cr-Commit-Position: refs/heads/master@{#44734}
      5806d862
    • kozyatinskiy's avatar
      [inspector] AsyncStackTrace should always have non-zero context group id · c38e8865
      kozyatinskiy authored
      BUG=v8:6189
      R=dgozman@chromium.org
      
      Review-Url: https://codereview.chromium.org/2822073002
      Cr-Commit-Position: refs/heads/master@{#44733}
      c38e8865
    • Adam Klein's avatar
      Remove "calls eval" bit from ParseInfo and PreParseData · 9b512732
      Adam Klein authored
      There's no reason to keep track, for a preparsed function itself,
      whether that function calls eval. All that matters is that the ancestor
      scopes are marked as having an inner scope which calls eval. The function
      will have its "calls eval" bit persisted if/when it's fully parsed.
      
      The only "behavioral" change in this patch is the removal of a DCHECK.
      
      Bug: v8:6092
      Change-Id: I17e396c8a265030fe0ad941707e4a97972e6650b
      Reviewed-on: https://chromium-review.googlesource.com/481223
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44732}
      9b512732
    • Caitlin Potter's avatar
      [parser] avoid complex for-loop desugaring when possible · 267115da
      Caitlin Potter authored
      let/const declarations in "standard" C-style for-loops have
      some complex desugaring to accommodate the case where loop
      loop variables may be captured. This slows down the baseline
      performance of for-loops with let variables.
      
      This change attempts to avoid this desugaring if it's known that
      the loop variable is not captured at any point. A side effect of
      this change is that let/const loop variables, when not captured
      within the loop body, are not necessarily shown in the debugger,
      similar to other stack-allocated vars.
      
      BUG=v8:4762, v8:5460
      R=marja@chromium.org, adamk@chromium.org, yangguo@chromium.org
      
      Change-Id: I8dbe545a12c086f675972bdba60c94998268311a
      Reviewed-on: https://chromium-review.googlesource.com/472247
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44731}
      267115da
    • Adam Klein's avatar
      [cleanup] Remove runtime.js, move the remainder to more logical places · 468ddfa6
      Adam Klein authored
      This patch retires runtime.js:
        - Removes some dead code from runtime.js (ToPositiveInteger, ToIndex),
        - Moves Array.prototype initialization to prologue.js
        - Moves SpeciesConstructor to the only file that calls it (typedarray.js)
        - Renames the remainder to reflect its only inhabitants ({Max,Min}Simple)
      
      Change-Id: If9048a30c4f6b86396bfd647bb637b4175880fc3
      Reviewed-on: https://chromium-review.googlesource.com/478579Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44730}
      468ddfa6
    • neis's avatar
      [modules] Allow resolve-callback to signal failure. · 486cd04f
      neis authored
      When asked for a module that previously failed to compile or
      instantiate, the embedder necessarily has to signal failure.  In this
      case, we expect an exception to be scheduled, which we will rethrow.
      
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2827733002
      Cr-Commit-Position: refs/heads/master@{#44729}
      486cd04f
    • bbudge's avatar
      [ARM] Reserve scratch q-register. · 246a7bdd
      bbudge authored
      - Reserves q15 (d30,d31) as a scratch register for NEON operations.
      - Rewrites CodeGenerator::AssembleSwap to use it.
      
      LOG=N
      BUG=v8:6020
      
      Review-Url: https://codereview.chromium.org/2827743002
      Cr-Commit-Position: refs/heads/master@{#44728}
      246a7bdd
    • bmeurer's avatar
      [turbofan] Constant-fold certain JSOrdinaryHasInstance nodes. · c9c7dd0d
      bmeurer authored
      Move JSOrdinaryHasInstance lowering to JSNativeContextSpecialization,
      which was previously mostly done in JSTypedLowering (for no reason).
      Add new logic to the lowering to constant-fold OrdinaryHasInstance
      checks when the map of the left-hand side and the "prototype" of the
      right-hand side is known. This address the performance issue with the
      (base) class constructors generated by Babel, i.e.:
      
        function _classCallCheck(instance, Constructor) {
          if (!(instance instanceof Constructor)) {
            throw new TypeError("Cannot call a class as a function");
          }
        }
      
        var C = function C() { _classCallCheck(this, C); };
      
      for
      
        class C {}
      
      Also ensure that a known constructor being used inside an instanceof
      get's a proper initial map on-demand.
      
      BUG=v8:6275
      R=mstarzinger@chromium.org
      
      Review-Url: https://codereview.chromium.org/2827013002
      Cr-Commit-Position: refs/heads/master@{#44727}
      c9c7dd0d
    • jkummerow's avatar
      [keyed-store-generic] Update protectors if needed · 34a26e7d
      jkummerow authored
      When adding or overwriting properties of an object, the generic
      keyed store stub must check if that property's name might have
      an associated protector (e.g. the ArraySpeciesProtector) and
      take the slow path if so to ensure that the protector is updated
      as needed.
      
      BUG=v8:6269
      
      Review-Url: https://codereview.chromium.org/2821213004
      Cr-Commit-Position: refs/heads/master@{#44726}
      34a26e7d
    • Michael Starzinger's avatar
      [asm.js] Use STDLIB_MATH_*_LIST macros everywhere. · 0e97280f
      Michael Starzinger authored
      This uses the common macro lists instead of duplicating the list of
      available math functions and values in {AsmJs::IsStdlibValid}.
      
      R=rossberg@chromium.org
      BUG=v8:6127
      
      Change-Id: Ic480d74bb0b5f0f425d1e601e5128fa6f466bea1
      Reviewed-on: https://chromium-review.googlesource.com/481260Reviewed-by: 's avatarAndreas Rossberg <rossberg@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44725}
      0e97280f
    • Marja Hölttä's avatar
      [parser] Skipping inner funcs: minor fixes. · b4c8d383
      Marja Hölttä authored
      1) Function recording conditions need to be consistent (this same condition is used above)
      
      2) byte is not wide enough for storing the backing store size.
      
      Bugs uncovered by the existing tests with the flag on.
      
      BUG=v8:5516
      
      Change-Id: Iec6aff0cf1858afe1083526e4ada9a8eca08f062
      Reviewed-on: https://chromium-review.googlesource.com/481320
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarDaniel Vogelheim <vogelheim@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44724}
      b4c8d383