1. 03 Feb, 2016 2 commits
  2. 02 Feb, 2016 2 commits
  3. 01 Feb, 2016 1 commit
    • littledan's avatar
      Add UseCounters for some nonstandard JavaScript features · 11e8c03f
      littledan authored
      This patch adds a UseCounter for each of the following:
      - Allowing duplicate sloppy-mode block-scoped function declarations
        in the exact same scope
      - for-in loops with an initializer
      
      The patch also refactors some of the declaration code to clean it up and
      enable the first counter, and adds additional unit tests to nail down
      the semantics of edge cases of sloppy-mode block-scoped function declarations.
      
      BUG=v8:4693,chromium:579395
      LOG=N
      R=adamk
      
      Review URL: https://codereview.chromium.org/1633743003
      
      Cr-Commit-Position: refs/heads/master@{#33650}
      11e8c03f
  4. 29 Jan, 2016 1 commit
    • xaxxon's avatar
      Make handle ctors explicit · b6c9b703
      xaxxon authored
      Without this change, the v8::Local<> constructor will be picked up by the
      compiler as an option for an implicit cast for any pointer type.  This leads
      to bad error messages when accidentally passing an erroneous pointer type to
      a function wanting a Local<> (complains about a pointer assignment in Local<>'s
      constructor as opposed to a bad type for the parameter of the function being
      called) and also causes ambiguity errors where none should exist when calling
      overloaded functions (for example a function taking either a std::string or a
      v8::Local<v8::Script> cannot be called with a const char * because the compiler
      sees both types as being constructable with a const char *).
      
      R=jochen@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1647833005
      
      Cr-Commit-Position: refs/heads/master@{#33602}
      b6c9b703
  5. 27 Jan, 2016 2 commits
  6. 26 Jan, 2016 1 commit
  7. 22 Jan, 2016 2 commits
  8. 21 Jan, 2016 4 commits
    • ofrobots's avatar
      Revert of [profiler] Implement POC Sampling Heap Profiler (patchset #12... · 77df8659
      ofrobots authored
      Revert of [profiler] Implement POC Sampling Heap Profiler (patchset #12 id:220001 of https://codereview.chromium.org/1555553002/ )
      
      Reason for revert:
      The random nature of the tests caused the following buildbot to fail: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20gcc%204.8/builds/4724/steps/Check/logs/stdio
      
      Original issue's description:
      > [profiler] Implement POC Sampling Heap Profiler
      >
      > This implements a proof-of-concept sampling based heap profiler inspired by
      > tcmalloc's heap profiler [1] and Go's mprof/memprofile [2].
      >
      > The basic idea is the sample allocations using a randomized Poisson process. At
      > any point in time we can cheaply request the set of live sample objects that
      > should be a representative sample of heap. Samples include stack-traces from the
      > allocation sites, making this an effective tool for memory leak debugging.
      >
      > Unlike AllocationTracking, this is intended to be cheap and usable online in
      > production.
      >
      > The proof-of-concept is only sampling new-space allocations at this point.
      > Support for sampling paged space and native allocations is anticipated in the
      > future.
      >
      > [1] http://goog-perftools.sourceforge.net/doc/heap_profiler.html
      > [2] http://blog.golang.org/profiling-go-programs
      >
      > Committed: https://crrev.com/e5a9947811db9c9e23557dbad27f8b8a349b3262
      > Cr-Commit-Position: refs/heads/master@{#33448}
      
      TBR=jochen@chromium.org,alph@chromium.org,hpayer@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1615173002
      
      Cr-Commit-Position: refs/heads/master@{#33449}
      77df8659
    • ofrobots's avatar
      [profiler] Implement POC Sampling Heap Profiler · e5a99478
      ofrobots authored
      This implements a proof-of-concept sampling based heap profiler inspired by
      tcmalloc's heap profiler [1] and Go's mprof/memprofile [2].
      
      The basic idea is the sample allocations using a randomized Poisson process. At
      any point in time we can cheaply request the set of live sample objects that
      should be a representative sample of heap. Samples include stack-traces from the
      allocation sites, making this an effective tool for memory leak debugging.
      
      Unlike AllocationTracking, this is intended to be cheap and usable online in
      production.
      
      The proof-of-concept is only sampling new-space allocations at this point.
      Support for sampling paged space and native allocations is anticipated in the
      future.
      
      [1] http://goog-perftools.sourceforge.net/doc/heap_profiler.html
      [2] http://blog.golang.org/profiling-go-programs
      
      Review URL: https://codereview.chromium.org/1555553002
      
      Cr-Commit-Position: refs/heads/master@{#33448}
      e5a99478
    • machenbach's avatar
      Revert of Array length reduction should throw in strict mode if it can't... · 575e90c1
      machenbach authored
      Revert of Array length reduction should throw in strict mode if it can't delete an element. (patchset #7 id:220001 of https://codereview.chromium.org/1587073003/ )
      
      Reason for revert:
      [Sheriff] Breaks layout tests. Please fix upstream.
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/4077
      
      Original issue's description:
      > Array length reduction should throw in strict mode if it can't delete an element.
      >
      > When accessor getter callback is called the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, since according to ES6 there's no difference between strict and non-strict property loads. For the setter case the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true if the property is set in strict context.
      >
      > Interceptors follow same idea: for getter, enumerator and query callbacks the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, and for setter and deleter callback the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true in strict context.
      >
      > This CL also cleans up the CallApiGetterStub and removes bogus asserts from [arm] Push(reg1, reg2, ..., regN) that prevented from pushing a set of registers containing duplicates.
      >
      > BUG=v8:4267
      > LOG=Y
      >
      > Committed: https://crrev.com/1d3e837fcbbd9d9fd5e72dfe85dfd47c025f3c9f
      > Cr-Commit-Position: refs/heads/master@{#33438}
      
      TBR=verwaest@chromium.org,ishell@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4267
      
      Review URL: https://codereview.chromium.org/1611313003
      
      Cr-Commit-Position: refs/heads/master@{#33444}
      575e90c1
    • ishell's avatar
      Array length reduction should throw in strict mode if it can't delete an element. · 1d3e837f
      ishell authored
      When accessor getter callback is called the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, since according to ES6 there's no difference between strict and non-strict property loads. For the setter case the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true if the property is set in strict context.
      
      Interceptors follow same idea: for getter, enumerator and query callbacks the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, and for setter and deleter callback the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true in strict context.
      
      This CL also cleans up the CallApiGetterStub and removes bogus asserts from [arm] Push(reg1, reg2, ..., regN) that prevented from pushing a set of registers containing duplicates.
      
      BUG=v8:4267
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1587073003
      
      Cr-Commit-Position: refs/heads/master@{#33438}
      1d3e837f
  9. 18 Jan, 2016 1 commit
  10. 15 Jan, 2016 2 commits
  11. 12 Jan, 2016 1 commit
    • hajimehoshi's avatar
      Add Add ExternalStringResourceBase::IsCompressible · 150887a1
      hajimehoshi authored
      This CL introduces ExternalStringResourceBase::IsCompressible.
      
      This CL is a preparation for CompressibleString, which can
      be compressed for memory reduction in Blink. We've found that
      JavaScript strings account for a relatively large part of Blink
      memory usage, and we are now trying to replace JavaScript String/
      AtomicString with CompressibleString.
      
      When a string is compressed, the original char data is deleted
      and V8 pointer cache becomes invalid. This CL introduces
      isCompressible  property and if an external string's isCompressble
      return true, this is stored short_external_*_map instead of
      external_*_map so that V8 always requires the char pointer whenever
      V8 needs the string data.
      
      BUG=chromium:574317
      LOG=n
      
      Review URL: https://codereview.chromium.org/1490193002
      
      Cr-Commit-Position: refs/heads/master@{#33224}
      150887a1
  12. 07 Jan, 2016 1 commit
  13. 22 Dec, 2015 4 commits
    • cbruni's avatar
      [proxies] Expose proxies in the API · 88b58591
      cbruni authored
      Add API-accessors for [[ProxyTarget]], [[ProxyHandler]]. Additionally
      create new proxies and revoke proxies via the API.
      
      BUG=v8:1543
      LOG=n
      
      Review URL: https://codereview.chromium.org/1542943002
      
      Cr-Commit-Position: refs/heads/master@{#33013}
      88b58591
    • littledan's avatar
      Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3... · 424ef009
      littledan authored
      Reland of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ )
      
      Unexpectedly, websites depend on doing feature testing with
      RegExp.prototype.sticky and browser testing with RegExp.prototype.toString().
      ES2015 newly throws exceptions for both of these. In order to enable shipping
      new ES2015 semantics, this patch puts in narrow workarounds for those two
      cases, keeping their old behavior. UseCounters are added for how often
      those particular cases come up, so we can see if it can be deprecated.
      
      This reland replaces problematic legacy const usage with var, to
      avoid issues with nosnap builds.
      
      R=yangguo
      CC=bmeurer
      BUG=v8:4637,v8:4617
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1545633002
      
      Cr-Commit-Position: refs/heads/master@{#33002}
      424ef009
    • bmeurer's avatar
      Revert of Add web compat workarounds for ES2015 RegExp semantics (patchset #3... · 08a1d1a2
      bmeurer authored
      Revert of Add web compat workarounds for ES2015 RegExp semantics (patchset #3 id:40001 of https://codereview.chromium.org/1543723002/ )
      
      Reason for revert:
      Breaks nosnap: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/5883
      
      Original issue's description:
      > Add web compat workarounds for ES2015 RegExp semantics
      >
      > Unexpectedly, websites depend on doing feature testing with
      > RegExp.prototype.sticky and browser testing with RegExp.prototype.toString().
      > ES2015 newly throws exceptions for both of these. In order to enable shipping
      > new ES2015 semantics, this patch puts in narrow workarounds for those two
      > cases, keeping their old behavior. UseCounters are added for how often
      > those particular cases come up, so we can see if it can be deprecated.
      >
      > R=yangguo
      > BUG=v8:4637,v8:4617
      > LOG=Y
      > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      >
      > Committed: https://crrev.com/98f819c3e0c92d54a306cdacadda73cf96d21b52
      > Cr-Commit-Position: refs/heads/master@{#32997}
      
      TBR=yangguo@google.com,yangguo@chromium.org,littledan@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4637,v8:4617
      
      Review URL: https://codereview.chromium.org/1546493003
      
      Cr-Commit-Position: refs/heads/master@{#32999}
      08a1d1a2
    • littledan's avatar
      Add web compat workarounds for ES2015 RegExp semantics · 98f819c3
      littledan authored
      Unexpectedly, websites depend on doing feature testing with
      RegExp.prototype.sticky and browser testing with RegExp.prototype.toString().
      ES2015 newly throws exceptions for both of these. In order to enable shipping
      new ES2015 semantics, this patch puts in narrow workarounds for those two
      cases, keeping their old behavior. UseCounters are added for how often
      those particular cases come up, so we can see if it can be deprecated.
      
      R=yangguo
      BUG=v8:4637,v8:4617
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1543723002
      
      Cr-Commit-Position: refs/heads/master@{#32997}
      98f819c3
  14. 20 Dec, 2015 1 commit
  15. 17 Dec, 2015 1 commit
  16. 16 Dec, 2015 1 commit
    • akodat's avatar
      Add Isolate::DiscardThreadSpecificMetadata method to embedder API. · aeb8073c
      akodat authored
      If many threads use the same Isolate (or many Isolates) and then
      terminate, their PerIsolateThreadData objects are never cleaned
      up, resulting in a slow memory leak and, worse, the
      PerIsolateThreadData chain getting larger and larger, adversely
      affecting performance.
      
      In this situation, embedders will now be encouraged to apply
      DiscardThreadSpecificMetadata against any Isolate a thread is
      done with, especially if the thread is about to terminate.
      
      Note that it is harmless to run DiscardThreadSpecificMetadata
      against an Isolate for which a thread has no thread data and
      per-Isolate thread data can be reestablished if a thread starts
      using an Isolate again after running DiscardThreadSpecificMetadata
      against it.
      
      It is, however, an embedder error to run
      DiscardThreadSpecificMetadata against an Isolate in thread with a
      Locker for the Isolate in the stack or against an Entered Isolate.
      
      This change cannot cause any change in behavior in existing apps
      as the only added coded can only be reached via the new
      DiscardThreadSpecificMetadata method.
      
      R=Jakob, jochen
      BUG=
      
      Review URL: https://codereview.chromium.org/1522703002
      
      Cr-Commit-Position: refs/heads/master@{#32909}
      aeb8073c
  17. 11 Dec, 2015 2 commits
  18. 10 Dec, 2015 5 commits
  19. 08 Dec, 2015 2 commits
  20. 07 Dec, 2015 1 commit
  21. 04 Dec, 2015 2 commits
  22. 03 Dec, 2015 1 commit