1. 10 Jul, 2017 1 commit
  2. 08 Jul, 2017 1 commit
    • Caitlin Potter's avatar
      [builtins] port Promise.race to CSA · bba473db
      Caitlin Potter authored
      - Implements the Promise.race algorithm using CodeStubAssembler.
      - Delete src/js/promise.js, which is no longer needed.
      - Migrate Promise constructor from slow to fast object in bootstrapper
        (per v8:5902)
      
      Increases size of snapshot_blob.bin on an x64.release build by 1.27kb.
      
      BUG=v8:5343
      R=gsathya@chromium.org, cbruni@chromium.org
      
      Change-Id: I751e7389bd6ba410109640fcd7960b6021540f2f
      Reviewed-on: https://chromium-review.googlesource.com/535041
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46489}
      bba473db
  3. 07 Jul, 2017 1 commit
    • Andreas Haas's avatar
      [arm] Pass float immediates to vmov as uint32_t · 08688b39
      Andreas Haas authored
      This CL changes for floats what https://chromium-review.googlesource.com/c/558964/
      changed for doubles.
      
      Original message:
      On x86, signalling NaNs get converted to quiet NaNs when they get push
      on the stack and popped again. This happens in the code generation for
      arm, specifically for the vmov instruction with the immediate parameter.
      This CL replaces the vmov function in assembler-arm to take the
      immediate as a uint64_t instead of a double, to guarantee that the bit
      pattern does not change even if the parameter is a signalling NaN.
      
      New in this CL:
      Although src/double.h existed already, src/float.h did not exist yet.
      I created the file in this CL, and moved the classes Float32 and
      Float64 there, which already existed in src/deoptimizer.h.
      
      R=titzer@chromium.org, martyn.capewell@arm.com, v8-arm-ports@googlegroups.com
      
      BUG=v8:6564
      
      Change-Id: I6a3f1f154af9c8cd4bb8e7e856235d3eee5e9edd
      Reviewed-on: https://chromium-review.googlesource.com/561009
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMartyn Capewell <martyn.capewell@arm.com>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46473}
      08688b39
  4. 06 Jul, 2017 2 commits
  5. 30 Jun, 2017 2 commits
  6. 27 Jun, 2017 1 commit
  7. 26 Jun, 2017 4 commits
  8. 23 Jun, 2017 3 commits
  9. 22 Jun, 2017 3 commits
  10. 20 Jun, 2017 3 commits
  11. 19 Jun, 2017 3 commits
  12. 16 Jun, 2017 2 commits
  13. 15 Jun, 2017 1 commit
    • Adam Klein's avatar
      Revert "[builtins] Move most WeakMap/WeakSet code from JS to C++ builtins" · 431abca0
      Adam Klein authored
      This reverts commit 8196e102.
      
      Reason for revert: Performance regression due to hashcode lookup.
      
      Original change's description:
      > [builtins] Move most WeakMap/WeakSet code from JS to C++ builtins
      > 
      > They were already implemented mostly in C++ (only error/negative
      > cases were handled in script), so this is mostly just a cleanup.
      > Only the constructors remain in script after this CL.
      > 
      > Bug: v8:6354
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I5b3579337a8e33dc30d49c2da5cfd42baec697bb
      > Reviewed-on: https://chromium-review.googlesource.com/531670
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      > Commit-Queue: Adam Klein <adamk@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#45924}
      
      TBR=adamk@chromium.org,cbruni@chromium.org,gsathya@chromium.org
      Bug: v8:6354, chromium:733238
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      
      Change-Id: Ia5a741b9587886298f3ca057f6a6adeba556b8e0
      Reviewed-on: https://chromium-review.googlesource.com/537207Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45966}
      431abca0
  14. 14 Jun, 2017 1 commit
    • jshin's avatar
      Use ICU for ID_START, ID_CONTINUE and WhiteSpace check · 4aeb94a4
      jshin authored
      Use ICU to check ID_Start, ID_Continue and WhiteSpace even for BMP
      when V8_INTL_SUPPORT is on (which is default).
      
      Change LineTerminator::Is() to check 4 code points from
      ES#sec-line-terminators instead of using tables and Lookup function.
      
      Remove Lowercase::Is(). It's not used anywhere.
      
      Update webkit/{ToNumber,parseFloat}.js to have the correct expectation
      for U+180E and the corresponding expected files. This is a follow-up to
      an earlier change ( https://codereview.chromium.org/2720953003 ).
      
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg,v8_mac_dbg;master.tryserver.chromium.android:android_arm64_dbg_recipe
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      BUG=v8:5370,v8:5155
      TEST=unittests --gtest_filter=CharP*
      TEST=webkit: ToNumber, parseFloat
      TEST=test262: built-ins/Number/S9.3*, built-ins/parse{Int,Float}/S15*
      TEST=test262: language/white-space/mong*
      TEST=test262: built-ins/String/prototype/trim/u180e
      TEST=mjsunit: whitespaces
      
      Review-Url: https://codereview.chromium.org/2331303002
      Cr-Commit-Position: refs/heads/master@{#45957}
      4aeb94a4
  15. 13 Jun, 2017 4 commits
  16. 12 Jun, 2017 3 commits
  17. 11 Jun, 2017 1 commit
  18. 09 Jun, 2017 1 commit
    • Clemens Hammacher's avatar
      [base] Introduce base::Optional, cloned from chromium · 58ca2115
      Clemens Hammacher authored
      base::Optional is a replacement for std::optional, until we switch to
      C++17 and can use std::optional directly.
      The implementation is copied from chromium's base::Optional, but put in
      the {v8::base} namespace instead of just {base}. Also, the
      specialization of std::hash for base::Optional is omitted, since it's
      disallowed in the style guide.
      
      A first use in the AsmJsParser is introduced, if that one sticks, I
      will refactor more uses of std::unique_ptr to use base::Optional
      instead, avoiding the heap allocation.
      
      R=mstarzinger@chromium.org
      BUG=v8:6474
      
      Change-Id: I019599d4bf9ff0105bf592dfb96d6050feba18ae
      Reviewed-on: https://chromium-review.googlesource.com/528884
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45810}
      58ca2115
  19. 08 Jun, 2017 1 commit
    • bmeurer's avatar
      [builtins] Start refactoring the Apply builtin. · af76779a
      bmeurer authored
      This splits the monolithic Apply builtin into several smaller builtins,
      namely CallVargargs and ConstructVarargs, which accept a length and a
      FixedArray of elements and deal with the actual stack manipulation, and
      CallWithArrayLike / ConstructWithArrayLike that deal with getting the
      elements from the receiver (for Function.prototype.apply, Reflect.apply
      and Reflect.construct), which can now be written using the CSA.
      
      The idea is that these builtins can be reused by TurboFan directly in
      the future when we optimize apply better, and that we can also reuse the
      core logic in the handling of spread calls/constructs.
      
      R=petermarshall@chromium.org
      BUG=v8:4587,v8:5269
      
      Review-Url: https://codereview.chromium.org/2930623002
      Cr-Commit-Position: refs/heads/master@{#45794}
      af76779a
  20. 07 Jun, 2017 2 commits
    • Andreas Haas's avatar
      [wasm] Extract module compilation code into module-compiler.cc · c7892d35
      Andreas Haas authored
      This CL extracts the classes CompilationHelper, InstantiationHelper,
      and AsyncCompileJob from wasm-module.cc and puts them into
      module-compiler.{h|cc}. This is necessary to introduce a
      WasmCompilationManager which is known to the isolate and manages the
      lifetime of all AsyncCompileJobs.
      
      In addition to the mechanical changes of copying the code and splitting
      class declaration from instantiation, I did the following changes:
      
      * I renamed the CompilationHelper to ModuleCompiler.
      * A finalizer function is passed to the InstantiationHelper as a
        parameter.
      * Adjusted UpdateDispatchTable in wasm-module.cc to make it available in
        wasm-module.h, also with the internal signature.
      * Duplicate the ResolvePromise/RejectPromise helper functions.
      
      I did not rename InstantiationHelper because I could not come up with a
      good name, and it could benefit from a small special refactoring anyways.
      
      BUG=v8:6436
      R=clemensh@chromium.org, mtrofin@chromium.org
      
      Change-Id: I4abe854c36dfc995b34c9d7b3e7ec0f4f0aa562e
      Reviewed-on: https://chromium-review.googlesource.com/525572
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45773}
      c7892d35
    • Ross McIlroy's avatar
      [TurboFan] Add support for generic lowering of StringConcat bytecode. · fdfb8c9e
      Ross McIlroy authored
      Adds support for lowering of ToPrimitiveToString and StringConcat bytecodes
      to the corresponding builtins. As part of this, moves the interpreter
      implementation of these operations into the appropriate builtin generators
      and add builtin support for them.
      
      Also adds TailCallRuntimeN operator to code-assembler which enables tail calling
      a runtime function when the arguments have already been pushed onto the stack.
      
      BUG=v8:6243
      
      Change-Id: Id5c851bc42e4ff490d9a23a8990ae331c7eac73e
      Reviewed-on: https://chromium-review.googlesource.com/515362
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45756}
      fdfb8c9e