1. 23 Feb, 2016 27 commits
  2. 22 Feb, 2016 13 commits
    • littledan's avatar
      Remove the Proxy enumerate trap · 579c0107
      littledan authored
      In ES2016, the Proxy enumerate trap is removed. This patch changes
      for-in iteration on Proxies to use the ownKeys trap. Due to the clean
      organization of that code, the patch basically consists of deletions.
      
      R=adamk
      LOG=Y
      BUG=v8:4768
      
      Review URL: https://codereview.chromium.org/1717893002
      
      Cr-Commit-Position: refs/heads/master@{#34200}
      579c0107
    • littledan's avatar
      Optimize @@species based on a global 'protector' cell · 7033ae51
      littledan authored
      This patch makes ArraySpeciesCreate fast in V8 by avoiding two property reads
      when the following conditions are met:
      - No Array instance has had its __proto__ reset
      - No Array instance has had a constructor property defined
      - Array.prototype has not had its constructor changed
      - Array[Symbol.species] has not been reset
      
      For subclasses of Array, or for conditions where one of these assumptions is
      violated, the full lookup of species is done according to the ArraySpeciesCreate
      algorithm. Although this is a "performance cliff", it does not come up in the
      expected typical use case of @@species (Array subclassing), so it is hoped that
      this can form a good start. Array subclasses will incur the slowness of looking
      up @@species, but their use won't slow down invocations of, for example,
      Array.prototype.slice on Array base class instances.
      
      Possible future optimizations:
      - For the fallback case where the assumptions don't hold, optimize the two
        property lookups.
      - For Array.prototype.slice and Array.prototype.splice, even if the full lookup
        of @@species needs to take place, we still could take the rest of the C++
        fastpath. However, to do this correctly requires changing the calling convention
        from C++ to JS to pass the @@species out, so it is not attempted in this patch.
      
      With this patch, microbenchmarks of Array.prototype.slice do not suffer a
      noticeable performance regression, unlike their previous 2.5x penalty.
      
      TBR=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1689733002
      
      Cr-Commit-Position: refs/heads/master@{#34199}
      7033ae51
    • mbrandy's avatar
      PPC: [interpreter, debugger] support debug breaks via bytecode array copy · d15d2cf2
      mbrandy authored
      Port e032a98d
      
      R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1721673003
      
      Cr-Commit-Position: refs/heads/master@{#34198}
      d15d2cf2
    • mbrandy's avatar
      PPC: Cleanup CRegister definition. · aadd792d
      mbrandy authored
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1716293002
      
      Cr-Commit-Position: refs/heads/master@{#34197}
      aadd792d
    • littledan's avatar
      Remove Reflect.enumerate · 0b53b7d3
      littledan authored
      The Proxy enumerate trap and Reflect.enumerate are removed from the
      ES2016 draft specification. This patch removes the Reflect.enumerate
      function, and a follow-on patch will be responsible for the Proxy
      trap changes.
      
      R=adamk
      LOG=Y
      BUG=v8:4768
      
      Review URL: https://codereview.chromium.org/1721453002
      
      Cr-Commit-Position: refs/heads/master@{#34196}
      0b53b7d3
    • littledan's avatar
      Remove code optimizing for TypedArrays being @@isConcatSpreadable · a686f4f9
      littledan authored
      In theory, a user could define the Symbol.isConcatSpreadable property
      somewhere in the TypedArray class hierarchy. Array.prototype.concat
      optimizes for this case and has templated code for fast concat over
      TypedArrays. However, the default environment doesn't have this
      property set (it would probably not be web-compatible) and there isn't
      clear demand for this optimization. This patch removes that
      special-case code.
      
      R=adamk
      
      Review URL: https://codereview.chromium.org/1720533003
      
      Cr-Commit-Position: refs/heads/master@{#34195}
      a686f4f9
    • mbrandy's avatar
      [wasm] Fix linkage for PPC. · edff6e91
      mbrandy authored
      Floating point param and return registers should be within the
      compiler's allocatable set.
      
      TEST=cctest/test-run-wasm-js/Run_Float64Add_jswrapped
      R=titzer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1714223002
      
      Cr-Commit-Position: refs/heads/master@{#34194}
      edff6e91
    • machenbach's avatar
      [coverage] Use optimized builds for coverage data. · ea0530af
      machenbach authored
      Local testing suggests that optimized builds add more speed
      without trading off tool usability. We get the following
      differences (A: non-optimized build, B: optimized):
      
      Sometimes: Lines instrumented in A (covered and uncovered) are not instrumented in B.
      Rarely: Lines instrumented and covered in A are instrumented, but not covered in B.
      
      The latter might simply be caused by timing differences in
      the two builds.
      
      BUG=chromium:568949
      LOG=n
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1719923002
      
      Cr-Commit-Position: refs/heads/master@{#34193}
      ea0530af
    • ulan's avatar
      Fix AllocationSite body descriptor to include all pointer slots. · 72f884a1
      ulan authored
      Currently AllocationSite skips the weak_next pointer in IterateBody and IsValidSlot.
      
      This is not correct because the weak_next is a valid slot in AllocationSite.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1719903002
      
      Cr-Commit-Position: refs/heads/master@{#34192}
      72f884a1
    • mstarzinger's avatar
      [turbofan] Pick remembered set action for write barrier. · 119a23e1
      mstarzinger authored
      This picks the record-write stub depending on the correct remembered set
      action parameter. For values known to be maps we can guarantee that they
      never reside in new-space, hence store buffer recording can be skipped.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1716163003
      
      Cr-Commit-Position: refs/heads/master@{#34191}
      119a23e1
    • yangguo's avatar
      [interpreter, debugger] support debug breaks via bytecode array copy · e032a98d
      yangguo authored
      R=mstarzinger@chromium.org, rmcilroy@chromium.org
      BUG=v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1703453002
      
      Cr-Commit-Position: refs/heads/master@{#34190}
      e032a98d
    • mstarzinger's avatar
      [fullcodegen] Lift restriction on --debug-code flag. · 0427abf3
      mstarzinger authored
      This removes a restriction from full-codegen that limited the usability
      of the --debug-code flag to only no-snap configurations. The reasoning
      for the restriction would still hold, if we ever put full-codegen code
      into the snapshot, which we don't. Also there already are several places
      in full-codegen that queried the FLAG_debug_code directly, a more
      reliable mechanism will be needed if we snapshot full code.
      
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1722593002
      
      Cr-Commit-Position: refs/heads/master@{#34189}
      0427abf3
    • ulan's avatar
      Activate memory reducer for small heaps in background tabs. · b238864d
      ulan authored
      BUG=chromium:587574
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1705183003
      
      Cr-Commit-Position: refs/heads/master@{#34188}
      b238864d