1. 23 May, 2017 1 commit
    • bmeurer's avatar
      [turbofan] Add support for inlining accessors into try-blocks. · 9dbafbd5
      bmeurer authored
      Previously the inlining of accessors into try-blocks (i.e. try/catch,
      try/finally, for-of, etc.) was disabled in JSNativeContextSpecialization,
      which prevented a couple of interesting optimizations, i.e. we end up
      with a LOAD_IC in optimized code for this simple example:
      
        class A { get x() { return 1; } }
        function foo(a) {
          try {
            return a.x;
          } catch (e) {
            return 0;
          }
        }
        foo(new A)
      
      This is now fixed and the accessors are properly rewired into the
      handler chain.
      
      BUG=v8:6278,v8:6344,v8:6424
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2902533003
      Cr-Commit-Position: refs/heads/master@{#45485}
      9dbafbd5
  2. 02 May, 2017 1 commit
  3. 15 Feb, 2017 1 commit
  4. 17 Aug, 2012 1 commit
  5. 10 Aug, 2012 1 commit
    • svenpanne@chromium.org's avatar
      Inline simple setter calls. · f9aea9fc
      svenpanne@chromium.org authored
      Currently only simple setter calls are handled (i.e. no calls in count
      operations or compound assignments), and deoptimization in the setter is not
      handled at all. Because of the latter, we temporarily hide this feature behind
      the --inline-accessors flag, just like inlining getters.
      
      We now use an enum everywhere we depend on the handling of a return value,
      passing around several boolean would be more confusing.
      
      Made VisitReturnStatement and the final parts of TryInline more similar, so
      matching them visually is a bit easier now.
      
      Simplified the signature of AddLeaveInlined, the target of the HGoto can simply
      be retrieved from the function state.
      
      Review URL: https://chromiumcodereview.appspot.com/10836133
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      f9aea9fc