1. 28 May, 2015 3 commits
  2. 27 May, 2015 23 commits
  3. 26 May, 2015 14 commits
    • arv's avatar
      [es6] Support super.property in eval and arrow functions · 44e98103
      arv authored
      When we enter a method that needs access to the [[HomeObject]]
      we allocate a local variable `.home_object` and assign it the
      value from the [[HomeObject]] private symbol. Something along
      the lines of:
      
        method() {
          var .home_object = %ThisFunction()[home_object_symbol];
          ...
        }
      
      BUG=v8:3867, v8:4031
      LOG=N
      
      Review URL: https://codereview.chromium.org/1135243004
      
      Cr-Commit-Position: refs/heads/master@{#28644}
      44e98103
    • machenbach's avatar
      [test] Verbose test runner output on windows. · 2dda8c3d
      machenbach authored
      TBR=jkummerow@chromium.org
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1156133006
      
      Cr-Commit-Position: refs/heads/master@{#28643}
      2dda8c3d
    • adamk's avatar
      Add {Map,Set}::FromArray to the API · cb07b8ef
      adamk authored
      These are similar to the Map/Set constructors when called with an array,
      except that they are guaranteed to be side-effect free if called with
      a packed array.
      
      This will be useful in implementing structured clone which, as
      specified in HTML, speaks in terms of the internal [[MapData]]
      and [[SetData]] slots without going through the exposed iteration
      ES semantics.
      
      BUG=v8:3340
      LOG=y
      
      Review URL: https://codereview.chromium.org/1155893003
      
      Cr-Commit-Position: refs/heads/master@{#28642}
      cb07b8ef
    • mike's avatar
      [es6] Define generator prototype as writable prop · f7b59122
      mike authored
      The April 14 2015 final draft of the ES6 specification states that the
      `prototype` property of generator function instances should be writable.
      
      BUG=v8:4140, v8:4140
      LOG=N
      R=arv@chromium.org
      
      Review URL: https://codereview.chromium.org/1153633003
      
      Cr-Commit-Position: refs/heads/master@{#28641}
      f7b59122
    • adamk's avatar
      Add {Map,Set}::AsArray to the API · a8d9c58b
      adamk authored
      These return arrays representing the current contents of the given
      Map/Set. They are similar to what would be returned by the JS code:
      
        Array.from(collection)
      
      except that they are guaranteed side-effect free.
      
      This will be useful in implementing structured clone which, as
      specified in HTML, speaks in terms of the internal [[MapData]]
      and [[SetData]] slots without going through the exposed iteration
      ES semantics.
      
      BUG=v8:3340
      LOG=y
      
      Review URL: https://codereview.chromium.org/1148383007
      
      Cr-Commit-Position: refs/heads/master@{#28640}
      a8d9c58b
    • ben's avatar
      Use CLOCK_REALTIME_COARSE when available. · 28cea2b7
      ben authored
      On systems that have CLOCK_REALTIME_COARSE with good enough resolution,
      we can avoid making a system call to get the current time; it's serviced
      from the vDSO.
      
      This is v2 of the patch.  v1 can be found at [0] but was reverted in [1]
      because of Chromium sandbox restrictions.  The necessary changes have
      been applied upstream in [2].
      
      [0] https://codereview.chromium.org/1125003002
      [1] https://codereview.chromium.org/1130083003
      [2] https://codereview.chromium.org/1133653002
      
      BUG=
      LOG=N
      
      Review URL: https://codereview.chromium.org/1151283005
      
      Cr-Commit-Position: refs/heads/master@{#28639}
      28cea2b7
    • hpayer's avatar
      Fix overflow in allocation throughput calculation. · 3e9c664b
      hpayer authored
      BUG=chromium:492021
      LOG=n
      
      Review URL: https://codereview.chromium.org/1148953009
      
      Cr-Commit-Position: refs/heads/master@{#28638}
      3e9c664b
    • adamk's avatar
      Add basic API support for Map & Set · 395fa8ba
      adamk authored
      Only supports constructing new objects and returning size.
      Followup patch will need to add ability to retrieve and
      set contents in order to support structured clone.
      
      Also removes a bunch of outdated "experimental" markers from v8.h.
      
      BUG=v8:3340
      LOG=y
      
      Review URL: https://codereview.chromium.org/1157453002
      
      Cr-Commit-Position: refs/heads/master@{#28637}
      395fa8ba
    • mbrandy's avatar
      PPC: Vector ICs: Introduce Store and KeyedStore IC code stubs. · a6676cfe
      mbrandy authored
      Port a86384f1
      
      Original commit message:
      Also introduce new interface descriptors for the trampoline and full
      versions of those stubs.
      
      Currently, the stubs aren't functional.
      
      R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1159483003
      
      Cr-Commit-Position: refs/heads/master@{#28636}
      a6676cfe
    • ulan's avatar
      Fix windows builder after fe9a16b6. · 1999221f
      ulan authored
      TBR=hpayer@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1161623003
      
      Cr-Commit-Position: refs/heads/master@{#28635}
      1999221f
    • mbrandy's avatar
      PPC: Move hash code from hidden string to a private symbol · e75bc715
      mbrandy authored
      Port eca5b5d7
      
      Original commit message:
      * Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
      * In the long run we should do all hidden properties this way and get rid of the
      hidden magic 0-length string with the zero hash code.  The advantages include
      less complexity and being able to do things from JS in a natural way.
      * Initially, the performance of weak set regressed, because it's a little harder
      to do the lookup in C++.  Instead of heroics in C++ to make things faster I
      moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
      * This also changes hash codes of Smis so that they are always Smis.
      
      Performance figures are in the comments to the code review.  Summary: Most of js-perf-test/Collections is neutral.  Set and Map with object keys are 40-50% better.  WeakMap is -5% and WeakSet is +9%.  After the measurements, I fixed global proxies, which cost 1% on most tests and 5% on the weak ones :-(.
      
      In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this.  Instead of checking for the property, then doing a new lookup to insert it, we could do one lookup and handle the addition immediately).  With the current benchmarks above this buys us nothing, but if we go back to doing more lookups in C++ instead of in stubs and JS then it's a win.
      
      In a similar vein we could give the magic zero hash code to the hash code
      symbol.  Then when we look up the hash code we would sometimes see the table
      with all the hidden properties.  This dual use of the field for either the hash
      code or the table with all hidden properties and the hash code is rather ugly,
      and this CL gets rid of it.  I'd be loath to bring it back.  On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.
      
      One worry is that the benchmark results above are more monomorphic than real
      world code, so may be overstating the performance benefits of moving to JS.  I
      think this is part of a general issue we have with handling polymorphic code in
      JS and any solutions there will benefit this solution, which boils down to
      regular property access. Any improvement there will lift all boats.
      
      R=erikcorry@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1157123002
      
      Cr-Commit-Position: refs/heads/master@{#28634}
      e75bc715
    • mbrandy's avatar
      PPC: Move work to omit unnecessary ObjectLiteral stores to the numbering pass. · 4d892dc8
      mbrandy authored
      Port 32de6778
      
      Original commit message:
      The reason is that this information will be needed to compute the number of
      vector ic slots done at numbering time.
      
      R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1153113002
      
      Cr-Commit-Position: refs/heads/master@{#28633}
      4d892dc8
    • ulan's avatar
      Fix test-heap/OldSpaceAllocationCounter. · fe9a16b6
      ulan authored
      TBR=hpayer@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1156113003
      
      Cr-Commit-Position: refs/heads/master@{#28632}
      fe9a16b6
    • machenbach's avatar
      [test] Sync in *san configurations from chromium. · 543bcf4d
      machenbach authored
      This configures *san in v8 just like in chromium's
      common.gypi. I also addresses compilation problems with ICU
      and usage of instrumented libc++.
      
      TBR=svenpanne@chromium.org
      
      Review URL: https://codereview.chromium.org/1146863006
      
      Cr-Commit-Position: refs/heads/master@{#28631}
      543bcf4d