1. 27 Apr, 2017 1 commit
    • cbruni's avatar
      [runtime] Ensure slow properties for simple {__proto__:null} literals. · 3f73fecb
      cbruni authored
      With this CL we reduce the difference between directly using a null prototype
      in a literal or using Object.create(null).
      - The EmitFastCloneShallowObject builtin now supports cloning slow
        object boilerplates.
      - Unified behavior to find the matching Map and instantiating it for
        Object.create(null) and literals with a null prototype.
      - Cleanup of literal type parameter of CompileTimeValue, now in sync with
        ObjectLiteral flags.
      
      Review-Url: https://codereview.chromium.org/2445333002
      Cr-Commit-Position: refs/heads/master@{#44941}
      3f73fecb
  2. 26 Apr, 2017 3 commits
  3. 25 Apr, 2017 6 commits
  4. 24 Apr, 2017 6 commits
  5. 21 Apr, 2017 3 commits
  6. 20 Apr, 2017 3 commits
  7. 19 Apr, 2017 1 commit
  8. 18 Apr, 2017 4 commits
  9. 13 Apr, 2017 3 commits
  10. 12 Apr, 2017 3 commits
    • kozyatinskiy's avatar
      [inspector] cache stack frame for call sites · 81bb72c1
      kozyatinskiy authored
      Usually program doesn't contain a lot of different stack frames in collected stack trace.
      
      BUG=v8:6189
      R=yangguo@chromium.orr
      TBR=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2788413004
      Cr-Commit-Position: refs/heads/master@{#44622}
      81bb72c1
    • jgruber's avatar
      [string] Add a fast path to String.p.replace · f4ba786d
      jgruber authored
      This adds a fast path to skip runtime calls to GetSubstitution when
      the replacer string does not contain a '$' char.
      
      Extended background:
      
      String.prototype.replace is (roughly) structured as follows:
      
      * Check if {searchValue} has a @@replace Symbol, and delegate to that if
        so. We currently implement efficient fast paths when {searchValue} is
        a String or a fast RegExp.
      * A specialized fast path for single-char {searchValue}, "long" subject
        string, and String {replaceValue} that do not contain '$' chars (yes,
        this fast path is very specialized).
      * Check for the location of the first match using StringIndexOf, and
        exit early if no match is found.
      * Finally build the return value, which is 'prefix + replacement +
        suffix', where replacement is either the result of calling {replaceValue}
        (if it is callable), or GetSubstitution(ToString({replaceValue}))
        otherwise.
      
      There's several spots that could be improved.
      
      StringIndexOf currently calls into C++ runtime for all but the simple
      1-byte, 1-char {searchValue} case. We need to finally add support for
      remaining cases.
      
      The runtime call to GetSubstitution can be skipped if the replacer
      string does not contain any '$' syntax. This CL handles that case.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2813843002
      Cr-Commit-Position: refs/heads/master@{#44606}
      f4ba786d
    • bmeurer's avatar
      [turbofan] Properly represent the float64 hole. · 8c0c5e81
      bmeurer authored
      The hole NaN should also have proper Type::Hole, and not silently hide
      in the Type::Number. This way we can remove all the special casing for
      the hole NaN, and we also finally get the CheckNumber right.
      
      This also allows us to remove some ducktape from the Deoptimizer, as for
      escape analyzed FixedDoubleArrays we always pass the hole value now to
      represent the actual holes.
      
      Also-By: jarin@chromium.org
      BUG=chromium:684208,chromium:709753,v8:5267
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2814013003
      Cr-Commit-Position: refs/heads/master@{#44603}
      8c0c5e81
  11. 10 Apr, 2017 2 commits
  12. 07 Apr, 2017 1 commit
  13. 06 Apr, 2017 2 commits
  14. 05 Apr, 2017 1 commit
  15. 04 Apr, 2017 1 commit
    • kschimpf's avatar
      Collect array buffer allocation sizes for UMA in megabytes. · 510abe73
      kschimpf authored
      After discussion with Chrome reviewers for UMA, it was decided that we
      would report array buffer allocation sizes in megabytes (not the log).
      
      They also wanted to wait until there is proof that small array buffer
      allocations would flood the histogram. Hence, all allocation sizes are
      sampled.
      
      There were several ways we could have added the notion of megabyte
      samples to V8 code. None of them are a great fit.  This code simply
      provides a local function within the code that needs it.
      
      Other possible solutions but rejected were:
      
      a) Use a subclass of histogram to collect data at the megabyte level.
         It has it's own Add() method that converts the size from bytes to
         megabytes, and then call the generic add method AddSample(). This
         solution appears to follow the conventions of subclasses of class
         Histogram.
      
      b) Use Chrome macros - Rejected because it involves changing the
         counter representation of V8.
      
      c) Add a method AddMegabyteSample() to base class Histogram. Rejected
         because it may get confusing if a lot of different measures are
         added the the base class of histograms.
      
      d) Make method AddSample() virtual and override in the derived
         class. Rejected in that sampling is supposed to be fast, and adding
         a virtual call may be breaking that contract.
      
      d) Do not add a derived class. Rather just do the conversions at the
         call sites. Rejected because this duplicates code, and also makes
         it hard to change assumptions on how to calculate.
      
      For Chromes UMA changes see:
      
      CL: https://codereview.chromium.org/2795463002
      
      BUG=chromium:704922
      R=bbudge@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2795763002
      Cr-Commit-Position: refs/heads/master@{#44388}
      510abe73