1. 08 Sep, 2015 1 commit
    • mstarzinger's avatar
      Use baseline code to compute message locations. · 819b40aa
      mstarzinger authored
      This switches Isolate::ComputeLocation to use baseline code when
      computing message locations. This unifies locations between optimized
      and non-optimized code by always going through the FrameSummary for
      location computation.
      
      R=bmeurer@chromium.org
      TEST=message/regress/regress-4266
      BUG=v8:4266
      LOG=n
      
      Review URL: https://codereview.chromium.org/1331603002
      
      Cr-Commit-Position: refs/heads/master@{#30635}
      819b40aa
  2. 02 Sep, 2015 1 commit
  3. 01 Sep, 2015 1 commit
  4. 31 Aug, 2015 1 commit
  5. 28 Aug, 2015 3 commits
    • littledan's avatar
      Propagate switch statement value for 'eval' · 6773e296
      littledan authored
      This patch changes the switch scope desugaring to create blocks which
      propagate their 'return value' for eval.
      
      BUG=v8:4399
      R=adamk
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1309303006
      
      Cr-Commit-Position: refs/heads/master@{#30454}
      6773e296
    • littledan's avatar
      Ensure hole checks take place in switch statement scopes · d6fb6de7
      littledan authored
      Switch statements introduce their own scope for cases, but this scope
      is not necessarily executed in order, as the following function shows:
      
        switch (x) {
          case 1:
            let y = 1;
          case 2:
            y = 2;
          case 3:
            print(y);
        }
      
      If x = 2 or x = 3, the code should throw a ReferenceError. However,
      FullCodeGen's hole check elimination used the simple algorithm of
      assuming that if the initializer was in the same scope, then it was
      reached before the use, and therefore the hole check could be
      eliminated.
      
      This patch adds an extra bit to scopes, to track if they may
      nonlinearly. The parser marks the scope that switch introduces as
      nonlinear. FullCodeGen does not eliminate the hole check from
      a scope which is nonlinear. This patch refactors FullCodeGen to
      put the hole check elimination in one place, rather than in each
      backend.
      
      BUG=v8:3926
      LOG=Y
      R=adamk
      
      Review URL: https://codereview.chromium.org/1312613003
      
      Cr-Commit-Position: refs/heads/master@{#30453}
      d6fb6de7
    • Benedikt Meurer's avatar
      [test] Properly disable test that doesn't work in GC stress. · 03541141
      Benedikt Meurer authored
      The magic "print(i)" work-around was no longer work-arounding correctly,
      so we do the right thing instead now.
      
      TBR=jkummerow@chromium.org
      
      Review URL: https://codereview.chromium.org/1306843004 .
      
      Cr-Commit-Position: refs/heads/master@{#30436}
      03541141
  6. 26 Aug, 2015 2 commits
  7. 25 Aug, 2015 1 commit
    • bmeurer's avatar
      Correctify instanceof and make it optimizable. · 5d875a57
      bmeurer authored
      The previous hack with HInstanceOfKnownGlobal was not only slower,
      but also very brittle and required a lot of weird hacks to support it. And
      what's even more important it wasn't even correct (because a map check
      on the lhs is never enough for instanceof).
      
      The new implementation provides a sane runtime implementation
      for InstanceOf plus a fast case in the InstanceOfStub, combined with
      a proper specialization in the case of a known global in CrankShaft,
      which does only the prototype chain walk (coupled with a code
      dependency on the known global).
      
      As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf
      implementation.
      
      BUG=v8:4376
      LOG=y
      
      Review URL: https://codereview.chromium.org/1304633002
      
      Cr-Commit-Position: refs/heads/master@{#30342}
      5d875a57
  8. 24 Aug, 2015 3 commits
  9. 22 Aug, 2015 2 commits
    • littledan's avatar
      Revert of Add a separate scope for switch (patchset #7 id:120001 of... · 31b80180
      littledan authored
      Revert of Add a separate scope for switch (patchset #7 id:120001 of https://codereview.chromium.org/1293283002/ )
      
      Reason for revert:
      Breaks cctest/test-cpu-profiler/SourceLocation on nosnap
      
      Original issue's description:
      > Add a separate scope for switch
      >
      > The ES2015 specification for switch statements 13.12.11 specifies that
      > they get their own lexical scope. This patch introduces such a scope
      > through a complex desugaring in terms of blocks, done so that Crankshaft
      > does not have to be updated to support multiple constructs providing
      > scopes.
      >
      > BUG=v8:4377
      > LOG=Y
      > R=adamk
      >
      > Committed: https://crrev.com/9edbc1f21eb1050cabbe3b8bc9aebf89ada7ebd7
      > Cr-Commit-Position: refs/heads/master@{#30314}
      
      TBR=adamk@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4377
      
      Review URL: https://codereview.chromium.org/1309043004
      
      Cr-Commit-Position: refs/heads/master@{#30316}
      31b80180
    • littledan's avatar
      Fix function scoping issue · 9c79e69e
      littledan authored
      The parser has special behavior with respect to the bindings
      of inner functions in sloppy mode which are not at the top
      level of scopes. This behavior should be turned off when the
      --harmony-sloppy-function flag is set, as lexical scoping
      rules are used instead. Previously, the incorrect flag
      --harmony-sloppy was used, resulting in a crashing bug.
      
      BUG=chromium:520029
      LOG=Y
      R=adamk
      
      Review URL: https://codereview.chromium.org/1303033003
      
      Cr-Commit-Position: refs/heads/master@{#30315}
      9c79e69e
  10. 21 Aug, 2015 1 commit
    • littledan's avatar
      Add a separate scope for switch · 9edbc1f2
      littledan authored
      The ES2015 specification for switch statements 13.12.11 specifies that
      they get their own lexical scope. This patch introduces such a scope
      through a complex desugaring in terms of blocks, done so that Crankshaft
      does not have to be updated to support multiple constructs providing
      scopes.
      
      BUG=v8:4377
      LOG=Y
      R=adamk
      
      Review URL: https://codereview.chromium.org/1293283002
      
      Cr-Commit-Position: refs/heads/master@{#30314}
      9edbc1f2
  11. 20 Aug, 2015 1 commit
  12. 19 Aug, 2015 3 commits
  13. 18 Aug, 2015 1 commit
  14. 11 Aug, 2015 3 commits
  15. 06 Aug, 2015 2 commits
  16. 05 Aug, 2015 1 commit
  17. 04 Aug, 2015 2 commits
    • adamk's avatar
      Add a --harmony-object-observe runtime flag (on by default) · 2e4efcfa
      adamk authored
      To avoid tanking context startup performance, only the actual installation of the
      JS-exposed API is flag-guarded. The remainder of the implementation still
      resides in the snapshot.
      
      Review URL: https://codereview.chromium.org/1257063003
      
      Cr-Commit-Position: refs/heads/master@{#30017}
      2e4efcfa
    • mstarzinger's avatar
      Introduce safe interface to "copy and grow" FixedArray. · bcad9b54
      mstarzinger authored
      This introduces a CopyFixedArrayAndGrow method on Factory that takes
      the "grow amount" instead of the "new size" as an argument. The new
      interface is safer because it allows for mutations by the GC that
      potentially trim the source array.
      
      This also fixes a bug in SharedFunctionInfo::AddToOptimizedCodeMap
      where the aformentioned scenario led to unused entries within the
      optimized code map.
      
      Note that FixedArray::CopySize is hereby deprecated because it is
      considered unsafe and should no longer be used.
      
      R=hpayer@chromium.org
      TEST=mjsunit/regress/regress-crbug-513507
      BUG=chromium:513507
      LOG=n
      
      Review URL: https://codereview.chromium.org/1255173006
      
      Cr-Commit-Position: refs/heads/master@{#30012}
      bcad9b54
  18. 03 Aug, 2015 2 commits
  19. 31 Jul, 2015 1 commit
  20. 30 Jul, 2015 2 commits
  21. 28 Jul, 2015 1 commit
  22. 27 Jul, 2015 2 commits
  23. 24 Jul, 2015 1 commit
  24. 23 Jul, 2015 1 commit
    • danno's avatar
      Unify "runtime-style" IC functions with Runtime intrinsics · bc8041dc
      danno authored
      Previous to this CL, ICs used a slightly different code idiom
      to get to C++ code from generated code than runtime intrinsics,
      using an IC_Utility class that in essence provided exactly
      the same functionality as Runtime::FunctionForId, but in its
      own quirky way.
      
      This CL unifies the two mechanisms, folding IC_Utility
      away by making all IC entry points in C++ code, e.g. IC
      miss handlers, full-fledged runtime intrinsics. This makes
      it possible to eliminate a bunch of ad-hoc declarations and
      adapters that the IC system had to needlessly re-invent.
      
      As a bonus and the original reason for this yak-shave:
      IC-related C++ runtime functions are now callable from
      TurboFan.
      
      Review URL: https://codereview.chromium.org/1248303002
      
      Cr-Commit-Position: refs/heads/master@{#29811}
      bc8041dc
  25. 20 Jul, 2015 1 commit