1. 28 Feb, 2018 1 commit
  2. 23 Jun, 2017 1 commit
  3. 18 Jan, 2017 1 commit
    • cbruni's avatar
      [keys] Make for-in great again. · 6c7d51c2
      cbruni authored
      This CL fixes the check for empty elements in keys.cc. Previously we would
      accidentally bail out of the fast path because the check would always fail.
      As a consequence for-in loops that would initialize the enum-cache of an object
      with own-only fast properties would never be optimized properly.
      
      Review-Url: https://codereview.chromium.org/2638323002
      Cr-Commit-Position: refs/heads/master@{#42454}
      6c7d51c2
  4. 01 Aug, 2016 1 commit
    • cbruni's avatar
      [keys] Trigger [[getOwnPropertyDescriptor]] trap on proxies for Object.keys · f4f06c50
      cbruni authored
      This CL fixes a long-standing bug with Object.keys where the enumerability
      check was omitted if the [ownKeys] trap is not present. The only distinction the
      KeyAccumulator needs is whether it collects keys for for-in (is_for_in_) or not.
      ForInFilter performs a separate step to filter out non-enumerable keys later-on
      while in all the other use-cases we have to filter keys.
      
      BUG=v8:1543, v8:5250
      
      Review-Url: https://codereview.chromium.org/2176113009
      Cr-Commit-Position: refs/heads/master@{#38199}
      f4f06c50
  5. 21 Jul, 2016 1 commit
  6. 28 Jun, 2016 1 commit
  7. 27 Jun, 2016 1 commit
  8. 07 Jun, 2016 1 commit
  9. 30 May, 2016 1 commit
    • cbruni's avatar
      [api] Add more parameters to Object::GetPropertyNames · 63efe9e4
      cbruni authored
      Expose more or less the full functionality of the KeyAccumulator in the API:
      - use the PropertyFilter introduced for GetOwnPropertyNames
      - use KeyCollectionLimit for OWN_ONLY or INLCUDE_PROTOS
      - use IndexFilter to eithe SKIP_INDICES or INCLUDE_INDICES
      
      Rewire Object::GetOwnPropertyNames to use GetPropertyNames.
      
      BUG=chromium:148757
      
      Review-Url: https://codereview.chromium.org/2002203002
      Cr-Commit-Position: refs/heads/master@{#36595}
      63efe9e4
  10. 25 May, 2016 1 commit
  11. 24 May, 2016 2 commits
  12. 18 May, 2016 1 commit
  13. 10 May, 2016 1 commit
  14. 06 May, 2016 1 commit
  15. 03 May, 2016 1 commit
  16. 23 Mar, 2016 1 commit
    • cbruni's avatar
      [proxies] use [[GetPrototypeOf]] trap in for-in key accumulation · 2efc1381
      cbruni authored
      With the recent spec change removing the [[Enumerate]] internal method, we now
      have to walk the complete prototype chain. This implies that we call the
      [[GetPrototypeOf]] trap on proxies.
      
      As a secondary change we now trigger the [[GetOwnProperty]] trap for the for-in
      filter step to see whether the properties are still enumerable. Before we did this
      in the key-accumulation phase. This way we slightly reduce the number of traps
      invoked. Whilst this is not ideal, it comes closer to the Spec's example
      implementation.
      
      BUG=v8:1543, v8:4768
      LOG=n
      
      Review URL: https://codereview.chromium.org/1748923003
      
      Cr-Commit-Position: refs/heads/master@{#35017}
      2efc1381
  17. 07 Mar, 2016 5 commits
  18. 04 Feb, 2016 1 commit
  19. 29 Jan, 2016 1 commit
    • jkummerow's avatar
      Introduce {FAST,SLOW}_STRING_WRAPPER_ELEMENTS · f4872f74
      jkummerow authored
      String wrappers (new String("foo")) are special objects: their string
      characters are accessed like elements, and they also have an elements
      backing store. This used to require a bunch of explicit checks like:
      
      if (obj->IsJSValue() && JSValue::cast(obj)->value()->IsString()) {
        /* Handle string characters */
      }
      // Handle regular elements (for string wrappers and other objects)
      obj->GetElementsAccessor()->Whatever(...);
      
      This CL introduces new ElementsKinds for string wrapper objects (one for
      fast elements, one for dictionary elements), which allow folding the
      special-casing into new StringWrapperElementsAccessors.
      
      No observable change in behavior is intended.
      
      Review URL: https://codereview.chromium.org/1612323003
      
      Cr-Commit-Position: refs/heads/master@{#33616}
      f4872f74
  20. 22 Jan, 2016 2 commits
    • cbruni's avatar
      Revert of [runtime] Do not use the enum-cache for non-prototype objects.... · 1c523a44
      cbruni authored
      Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #1 id:1 of https://codereview.chromium.org/1612413003/ )
      
      Reason for revert:
      let me quickly revert the revert, wut?
      Goal: my CL should not be in the tree!
      
      Original issue's description:
      > Reland of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #1 id:1 of https://codereview.chromium.org/1619803003/ )
      >
      > Reason for revert:
      > the deopt issues have been taken care of by benedikt
      >
      > Original issue's description:
      > > Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #10 id:180001 of https://codereview.chromium.org/1608523002/ )
      > >
      > > Reason for revert:
      > > tanks for-in significantly
      > >
      > > Original issue's description:
      > > > [runtime] Do not use the enum-cache for keys retrieval.
      > > >
      > > > Currently we fail to properly handle shadowed properties. If the
      > > > receiver defines a non-enumerable property that reappears on the
      > > > prototype as enumerable it incorrectly shows up in [[Enumerate]].
      > > > By extending the KeyAccumulator to track non-enumerable properties
      > > > we can now properly filter them out when seeing them further up in
      > > > the prototype-chain.
      > > >
      > > > BUG=v8:705
      > > > LOG=y
      > > >
      > > > Committed: https://crrev.com/ed24dfe80d1da0827b8571839ee52c03ad09c9c7
      > > > Cr-Commit-Position: refs/heads/master@{#33405}
      > >
      > > TBR=jkummerow@chromium.org,bmeurer@chromium.org
      > > # Not skipping CQ checks because original CL landed more than 1 days ago.
      > > BUG=v8:705
      > > LOG=n
      > >
      > > Committed: https://crrev.com/6e0573c6fff1c3041bab106d1197ab1b64aa9a6a
      > > Cr-Commit-Position: refs/heads/master@{#33443}
      >
      > TBR=jkummerow@chromium.org,bmeurer@chromium.org
      > # Skipping CQ checks because original CL landed less than 1 days ago.
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=v8:705
      >
      > Committed: https://crrev.com/5569e270eda517b5ea74e3a7676b3230cbe2f7a9
      > Cr-Commit-Position: refs/heads/master@{#33458}
      
      TBR=jkummerow@chromium.org,bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:705
      
      Review URL: https://codereview.chromium.org/1614313003
      
      Cr-Commit-Position: refs/heads/master@{#33459}
      1c523a44
    • cbruni's avatar
      Reland of [runtime] Do not use the enum-cache for non-prototype objects.... · 5569e270
      cbruni authored
      Reland of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #1 id:1 of https://codereview.chromium.org/1619803003/ )
      
      Reason for revert:
      the deopt issues have been taken care of by benedikt
      
      Original issue's description:
      > Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #10 id:180001 of https://codereview.chromium.org/1608523002/ )
      >
      > Reason for revert:
      > tanks for-in significantly
      >
      > Original issue's description:
      > > [runtime] Do not use the enum-cache for keys retrieval.
      > >
      > > Currently we fail to properly handle shadowed properties. If the
      > > receiver defines a non-enumerable property that reappears on the
      > > prototype as enumerable it incorrectly shows up in [[Enumerate]].
      > > By extending the KeyAccumulator to track non-enumerable properties
      > > we can now properly filter them out when seeing them further up in
      > > the prototype-chain.
      > >
      > > BUG=v8:705
      > > LOG=y
      > >
      > > Committed: https://crrev.com/ed24dfe80d1da0827b8571839ee52c03ad09c9c7
      > > Cr-Commit-Position: refs/heads/master@{#33405}
      >
      > TBR=jkummerow@chromium.org,bmeurer@chromium.org
      > # Not skipping CQ checks because original CL landed more than 1 days ago.
      > BUG=v8:705
      > LOG=n
      >
      > Committed: https://crrev.com/6e0573c6fff1c3041bab106d1197ab1b64aa9a6a
      > Cr-Commit-Position: refs/heads/master@{#33443}
      
      TBR=jkummerow@chromium.org,bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:705
      
      Review URL: https://codereview.chromium.org/1612413003
      
      Cr-Commit-Position: refs/heads/master@{#33458}
      5569e270
  21. 21 Jan, 2016 1 commit
    • cbruni's avatar
      Revert of [runtime] Do not use the enum-cache for non-prototype objects.... · 6e0573c6
      cbruni authored
      Revert of [runtime] Do not use the enum-cache for non-prototype objects. (patchset #10 id:180001 of https://codereview.chromium.org/1608523002/ )
      
      Reason for revert:
      tanks for-in significantly
      
      Original issue's description:
      > [runtime] Do not use the enum-cache for keys retrieval.
      >
      > Currently we fail to properly handle shadowed properties. If the
      > receiver defines a non-enumerable property that reappears on the
      > prototype as enumerable it incorrectly shows up in [[Enumerate]].
      > By extending the KeyAccumulator to track non-enumerable properties
      > we can now properly filter them out when seeing them further up in
      > the prototype-chain.
      >
      > BUG=v8:705
      > LOG=y
      >
      > Committed: https://crrev.com/ed24dfe80d1da0827b8571839ee52c03ad09c9c7
      > Cr-Commit-Position: refs/heads/master@{#33405}
      
      TBR=jkummerow@chromium.org,bmeurer@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=v8:705
      LOG=n
      
      Review URL: https://codereview.chromium.org/1619803003
      
      Cr-Commit-Position: refs/heads/master@{#33443}
      6e0573c6
  22. 20 Jan, 2016 1 commit
    • cbruni's avatar
      [runtime] Do not use the enum-cache for keys retrieval. · ed24dfe8
      cbruni authored
      Currently we fail to properly handle shadowed properties. If the
      receiver defines a non-enumerable property that reappears on the
      prototype as enumerable it incorrectly shows up in [[Enumerate]].
      By extending the KeyAccumulator to track non-enumerable properties
      we can now properly filter them out when seeing them further up in
      the prototype-chain.
      
      BUG=v8:705
      LOG=y
      
      Review URL: https://codereview.chromium.org/1608523002
      
      Cr-Commit-Position: refs/heads/master@{#33405}
      ed24dfe8
  23. 09 Dec, 2015 1 commit
  24. 02 Dec, 2015 2 commits
  25. 28 Nov, 2015 3 commits
  26. 18 Nov, 2015 1 commit
  27. 04 Nov, 2015 1 commit