1. 23 Jul, 2018 1 commit
  2. 23 Jun, 2018 1 commit
  3. 19 Jun, 2018 1 commit
  4. 11 Jun, 2018 1 commit
  5. 02 May, 2018 1 commit
  6. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  7. 09 Apr, 2018 1 commit
  8. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  9. 05 Apr, 2018 1 commit
    • Peter Marshall's avatar
      Reland "[runtime] Remove the construct_stub field of the SFI" · b158bfdc
      Peter Marshall authored
      This is a reland of 63ecddc8
      
      Original change's description:
      > [runtime] Remove the construct_stub field of the SFI
      >
      > Don't dispatch based on the construct_stub field anymore. Rather than
      > read it out and jump to the construct stub, we can switch on the
      > builtin_id.
      >
      > Builtins will always have builtin_id as a Smi, so this signals we need
      > to jump to JSBuiltinsConstructStub. The only exception is for uncompiled
      > functions, which will have kCompileLazy as the builtin_id, but need to
      > jump to the generic stub instead.
      >
      > API function calls will have a FunctionTemplateInfo in the SFI
      > function_data field, and need to go to the builtins stub as well.
      >
      > The final case is everything else, which should go to the generic stub.
      >
      > Bug: v8:7503
      > Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482
      > Reviewed-on: https://chromium-review.googlesource.com/980941
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52345}
      
      TBR=bmeurer@chromium.org
      
      Bug: v8:7503
      Change-Id: Ie46bfb0af173ad7ac8cbdfeed1865e60f3f413f7
      Reviewed-on: https://chromium-review.googlesource.com/997712Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52389}
      b158bfdc
  10. 04 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[runtime] Remove the construct_stub field of the SFI" · f49a1a67
      Michael Achenbach authored
      This reverts commit 63ecddc8.
      
      Reason for revert:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20internal%20snapshot/builds/14773
      
      Original change's description:
      > [runtime] Remove the construct_stub field of the SFI
      > 
      > Don't dispatch based on the construct_stub field anymore. Rather than
      > read it out and jump to the construct stub, we can switch on the
      > builtin_id.
      > 
      > Builtins will always have builtin_id as a Smi, so this signals we need
      > to jump to JSBuiltinsConstructStub. The only exception is for uncompiled
      > functions, which will have kCompileLazy as the builtin_id, but need to
      > jump to the generic stub instead.
      > 
      > API function calls will have a FunctionTemplateInfo in the SFI
      > function_data field, and need to go to the builtins stub as well.
      > 
      > The final case is everything else, which should go to the generic stub.
      > 
      > Bug: v8:7503
      > Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482
      > Reviewed-on: https://chromium-review.googlesource.com/980941
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52345}
      
      TBR=petermarshall@chromium.org,leszeks@chromium.org,bmeurer@chromium.org
      
      Change-Id: I2031913ab5a12018ad932f920792aa1f6faa5e22
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7503
      Reviewed-on: https://chromium-review.googlesource.com/995293Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52346}
      f49a1a67
    • Peter Marshall's avatar
      [runtime] Remove the construct_stub field of the SFI · 63ecddc8
      Peter Marshall authored
      Don't dispatch based on the construct_stub field anymore. Rather than
      read it out and jump to the construct stub, we can switch on the
      builtin_id.
      
      Builtins will always have builtin_id as a Smi, so this signals we need
      to jump to JSBuiltinsConstructStub. The only exception is for uncompiled
      functions, which will have kCompileLazy as the builtin_id, but need to
      jump to the generic stub instead.
      
      API function calls will have a FunctionTemplateInfo in the SFI
      function_data field, and need to go to the builtins stub as well.
      
      The final case is everything else, which should go to the generic stub.
      
      Bug: v8:7503
      Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482
      Reviewed-on: https://chromium-review.googlesource.com/980941Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52345}
      63ecddc8
  11. 21 Nov, 2017 1 commit
  12. 08 Nov, 2017 1 commit
    • jgruber's avatar
      [factory] Simplify JSFunction creation · 72230246
      jgruber authored
      There's three common situations in which we need to create JSFunction
      objects.  1) from the compiler, 2) from tests, and 3) everything else
      (mostly during bootstrapping).
      
      This is an attempt to simplify case 3), which previously relied on
      several Factory::NewFunction overloads where it was not clear how the
      semantics of each overload differed.
      
      This CL removes all but one overload, and packs arguments into a new
      NewFunctionArgs helper class.
      
      It also removes the hacks around
      SFI::set_lazy_deserialization_builtin_id by explicitly passing
      builtin_id into Factory::NewSharedFunctionInfo.
      
      Drive-by-fix: Properly set is_constructor hint in
      SimpleCreateSharedFunctionInfo.
      
      Bug: v8:6624
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ica94d95e72e443055db5e7ff9e8cdf4115201ef1
      Reviewed-on: https://chromium-review.googlesource.com/757094
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49224}
      72230246
  13. 07 Nov, 2017 2 commits
  14. 26 Oct, 2017 1 commit
    • Igor Sheludko's avatar
      [cleanup] Prepare V8-internal AccessorInfo objects for sharing. · b4fdce5a
      Igor Sheludko authored
      Rename |property_attributes| to |initial_property_attributes| and ensure
      that it is used as a storage of values only for AccessorInfos installed in
      API Templates (i.e. ObjectTemplate and FunctionTemplate).
      When an AccessorInfo is installed directly into an existing JS object
      (via JSObject::SetAccessor) or into a DescriptorArray (when certain V8
      objects' shapes are configured) it is not necessary to thread attributes
      being set through the AccessorInfo instance.
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ibe61026f08c42549756f694129a286635ffe5769
      Reviewed-on: https://chromium-review.googlesource.com/730425
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48978}
      b4fdce5a
  15. 25 Oct, 2017 3 commits
  16. 18 Oct, 2017 1 commit
  17. 13 Oct, 2017 1 commit
  18. 28 Sep, 2017 1 commit
  19. 30 Aug, 2017 1 commit
    • Benedikt Meurer's avatar
      [cleanup] Unify enum cache handling. · 562663d5
      Benedikt Meurer authored
      Introduce a proper empty_descriptor_array, which has the proper layout
      (length is 2 and the two fields are set properly). Also add a special
      EnumCache class and a matching empty_enum_cache. The contract now is
      that we only need to check the EnumLength on the map to know whether we
      are allowed to use the enum cache. This greatly simplifies the handling
      of the enum cache (and also the descriptor arrays), especially for the
      future work on optimizing keyed access via the enum cache indices.
      
      Bug: v8:6702
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I5ef517a3041163cd65ef003f691139ea52233e83
      Reviewed-on: https://chromium-review.googlesource.com/641030
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47697}
      562663d5
  20. 29 Aug, 2017 1 commit
  21. 14 Aug, 2017 1 commit
  22. 11 Aug, 2017 1 commit
  23. 23 Jan, 2017 1 commit
  24. 09 Jan, 2017 1 commit
  25. 03 Jan, 2017 1 commit
  26. 21 Dec, 2016 1 commit
  27. 14 Nov, 2016 1 commit
  28. 26 Oct, 2016 1 commit
    • neis's avatar
      [runtime] Let native setters have a return value. · f33a4078
      neis authored
      Native setters (see AccessorInfo in accessors.h) didn't have the ability
      to return a result value. As a consequence of this, for instance, Reflect.set
      on the length property of arrays had the wrong behavior:
      
      var y = [];
      Object.defineProperty(y, 0, {value: 42, configurable: false})
      Reflect.set(y, 'length', 0)
      
      The Reflect.set call used to return true. Now it returns false as
      required by the spec.
      
      BUG=v8:5401
      
      Review-Url: https://codereview.chromium.org/2397603003
      Cr-Commit-Position: refs/heads/master@{#40579}
      f33a4078
  29. 07 Sep, 2016 1 commit
  30. 06 Sep, 2016 1 commit
    • mlippautz's avatar
      Move kMaxRegularHeapObjectSize into globals · 059b5643
      mlippautz authored
      This way we avoid the cyclic dependency between objects.h and heap.h and still
      have one definition. Add a static assert that this size is indeed smaller than
      the payload of a page.
      
      Follow ups can finally remove the dependency on spaces.h for all heap.h users.
      
      R=ulan@chromium.org,bmeurer@chromium.org,vogelheim@chromium.og
      
      Review-Url: https://codereview.chromium.org/2311203002
      Cr-Commit-Position: refs/heads/master@{#39206}
      059b5643
  31. 14 Jun, 2016 1 commit
  32. 13 Jun, 2016 2 commits
  33. 20 May, 2016 1 commit
    • mlippautz's avatar
      [heap] Harden heap-related cctests · fdd9f6b9
      mlippautz authored
      - Move usable functions into proper heap-utils.h/.cc files and remove
        utils-inl.h file
      - Fix assumptions accross the board relying on certain behavior that is not
        invariant
      
      This is a requirement for modifying page size.
      
      BUG=chromium:581412
      LOG=N
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/1999753002
      Cr-Commit-Position: refs/heads/master@{#36410}
      fdd9f6b9
  34. 19 May, 2016 1 commit