1. 25 Aug, 2017 1 commit
  2. 30 Jun, 2017 1 commit
    • Mathias Bynens's avatar
      [elements] Rename FAST elements kinds · 26c00f4a
      Mathias Bynens authored
      The `FAST_` prefix doesn’t make much sense — they’re all just different cases
      with their own optimizations. Packedness being implicit (e.g. `FAST_ELEMENTS`
      vs. `FAST_HOLEY_ELEMENTS`) is not ideal, either.
      
      This patch renames the FAST elements kinds as follows:
      
      - e.g. FAST_ELEMENTS => PACKED_ELEMENTS
      - e.g. FAST_HOLEY_ELEMENTS => HOLEY_ELEMENTS
      
      The following exceptions are left intact, for lack of a better name:
      
      - FAST_SLOPPY_ARGUMENTS_ELEMENTS
      - SLOW_SLOPPY_ARGUMENTS_ELEMENTS
      - FAST_STRING_WRAPPER_ELEMENTS
      - SLOW_STRING_WRAPPER_ELEMENTS
      
      This makes it easier to reason about elements kinds, and less confusing to
      explain how they’re used.
      
      R=jkummerow@chromium.org, cbruni@chromium.org
      BUG=v8:6548
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ie7c6bee85583c3d84b730f7aebbd70c1efa38af9
      Reviewed-on: https://chromium-review.googlesource.com/556032Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46361}
      26c00f4a
  3. 22 May, 2017 1 commit
  4. 09 Jan, 2017 1 commit
  5. 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
  6. 28 Jul, 2015 1 commit
  7. 27 Jul, 2015 2 commits
  8. 22 Jul, 2015 1 commit
  9. 02 Jul, 2015 1 commit
  10. 16 Jun, 2015 1 commit
  11. 01 Jun, 2015 1 commit
  12. 04 Aug, 2014 1 commit
  13. 18 Jul, 2014 1 commit
  14. 07 Jul, 2014 1 commit
  15. 12 Jun, 2014 2 commits
  16. 11 Jun, 2014 3 commits
  17. 05 Jun, 2014 1 commit
  18. 03 Jun, 2014 1 commit
  19. 22 May, 2014 1 commit
  20. 29 Apr, 2014 1 commit
  21. 03 Apr, 2014 1 commit
  22. 01 Apr, 2014 1 commit
  23. 26 Mar, 2014 1 commit
  24. 25 Mar, 2014 4 commits
  25. 11 Mar, 2014 1 commit
  26. 24 Jan, 2014 1 commit
  27. 16 Jan, 2014 5 commits
  28. 15 Nov, 2013 1 commit
  29. 14 Nov, 2013 1 commit
    • mvstanton@chromium.org's avatar
      Inline zero argument array constructor. · 3cf157b4
      mvstanton@chromium.org authored
      patch from issue 54583003 (dependent code).
      
      Zero arguments - very easy
      
      1 argument - three special cases:
        a) If length is a constant in valid array length range,
           no need to check it at runtime.
        b) respect DoNotInline feedback on the AllocationSite for
           cases that the argument is not a smi or is an integer
           with a length that should create a dictionary.
        c) if kind feedback is non-holey, and length is non-constant,
           we'd have to generate a lot of code to be correct.
           Don't inline this case.
      
      N arguments - one special case:
        a) If a deopt ever occurs because an input argument isn't
           compatible with the elements kind, then set the
           DoNotInline flag.
      
      BUG=
      R=verwaest@chromium.org
      
      Review URL: https://codereview.chromium.org/55933002
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      3cf157b4