1. 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
  2. 02 Sep, 2016 1 commit
    • franzih's avatar
      [api] Add interceptor for defineProperty(). · 7c401bd8
      franzih authored
      With the Indexed/GenericNamedPropertyDefinerCallback it is possible to intercept Object.defineProperty() calls.
      
      Requests that call JSReceiver::OrdinaryDefineOwnProperty() internally, also trigger the interceptor. This includes Object.freeze(), Object.preventExtensions(), and Object.seal().
      
      As without this patch, the query interceptor triggers on
      defineProperty, unless the definer callback
      intercepts the request.
      
      As without this patch, the query interceptor triggers on defineProperty, unless the definer callback intercepts the request.
      
      BUG=
      
      Committed: https://crrev.com/b9d985975cf3bab0ded0cec9fafd3799f9bde29a
      Review-Url: https://codereview.chromium.org/2272383002
      Cr-Original-Commit-Position: refs/heads/master@{#39094}
      Cr-Commit-Position: refs/heads/master@{#39122}
      7c401bd8
  3. 01 Sep, 2016 2 commits
    • jkummerow's avatar
      Revert of [api] Add interceptor for defineProperty(). (patchset #9 id:160001... · 9fe4efe5
      jkummerow authored
      Revert of [api] Add interceptor for defineProperty(). (patchset #9 id:160001 of https://codereview.chromium.org/2272383002/ )
      
      Reason for revert:
      Breaks cctest/test-api-interceptors/QueryInterceptor on the waterfall
      
      Original issue's description:
      > [api] Add interceptor for defineProperty().
      >
      > With the Indexed/GenericNamedPropertyDefinerCallback it is possible to intercept Object.defineProperty() calls.
      >
      > Requests that call JSReceiver::OrdinaryDefineOwnProperty() internally, also trigger the interceptor. This includes Object.freeze(), Object.preventExtensions(), and Object.seal().
      >
      > BUG=
      >
      > Committed: https://crrev.com/b9d985975cf3bab0ded0cec9fafd3799f9bde29a
      > Cr-Commit-Position: refs/heads/master@{#39094}
      
      TBR=jochen@chromium.org,franzih@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review-Url: https://codereview.chromium.org/2303533004
      Cr-Commit-Position: refs/heads/master@{#39095}
      9fe4efe5
    • franzih's avatar
      [api] Add interceptor for defineProperty(). · b9d98597
      franzih authored
      With the Indexed/GenericNamedPropertyDefinerCallback it is possible to intercept Object.defineProperty() calls.
      
      Requests that call JSReceiver::OrdinaryDefineOwnProperty() internally, also trigger the interceptor. This includes Object.freeze(), Object.preventExtensions(), and Object.seal().
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2272383002
      Cr-Commit-Position: refs/heads/master@{#39094}
      b9d98597
  4. 07 Jun, 2016 1 commit
  5. 06 Jun, 2016 1 commit
  6. 13 May, 2016 1 commit
    • cbruni's avatar
      [counters] Annotate v8 with more runtime call counters. · 407d9fce
      cbruni authored
      By fully annotating the API with runtime counters we can properly measure
      how much time we spend in total in v8. When --runtime-call-stats is specified
      we now disable the fast-paths for callbacks to properly measure them.
      As a drive-by-fix this CL unifies the LOG messages in api.cc.
      Additionally we added missing timers to gain better resolution in the parser
      and callbacks.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1923893002
      Cr-Commit-Position: refs/heads/master@{#36248}
      407d9fce
  7. 27 Apr, 2016 1 commit
  8. 10 Mar, 2016 2 commits
  9. 09 Mar, 2016 1 commit
  10. 08 Mar, 2016 1 commit
  11. 23 Feb, 2016 1 commit
    • cbruni's avatar
      [counters] Making runtime counters reentrant. · 5e468666
      cbruni authored
      So far counters did not work when they were reentrant and thus would lead to
      wrong bookkeeping of the counter stack. Using a separate stack-allocated linked
      list to track the timer stack solves this issue. This is a temporary workaround
      with the limitations of the counter system in mind. Eventually we will move to
      the trace-based system for these kind of statistics.
      
      BUG=v8:4770
      LOG=n
      
      Review URL: https://codereview.chromium.org/1695733002
      
      Cr-Commit-Position: refs/heads/master@{#34208}
      5e468666
  12. 11 Feb, 2016 4 commits
  13. 09 Feb, 2016 3 commits
  14. 08 Feb, 2016 2 commits
  15. 22 Jan, 2016 2 commits
    • jarin's avatar
      Runtime call counters and timers. · 747bd6f2
      jarin authored
      In d8, run with --runtime-call-stats and it will output the stats when d8 finishes.
      
      In Chrome, run the following: (only on trusted code, this punches *massive* security hole into Chrome)
      
      chrome --js-flags="--runtime-call-stats --allow-natives-syntax"
      
      To get the stats in the console, just run
      
      console.log(%GetAndResetRuntimeCallStats());
      
      To output stats every second:
      
      setInterval(function() { console.log(%GetAndResetRuntimeCallStats()); }, 1000)
      
      Review URL: https://codereview.chromium.org/1615943002
      
      Cr-Commit-Position: refs/heads/master@{#33462}
      747bd6f2
    • ishell's avatar
      Array length reduction should throw in strict mode if it can't delete an element. · ed2be747
      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
      
      Committed: https://crrev.com/1d3e837fcbbd9d9fd5e72dfe85dfd47c025f3c9f
      Cr-Commit-Position: refs/heads/master@{#33438}
      
      Review URL: https://codereview.chromium.org/1587073003
      
      Cr-Commit-Position: refs/heads/master@{#33461}
      ed2be747
  16. 21 Jan, 2016 2 commits
    • 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
  17. 15 Jan, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Add ForInPrepare runtime function which returns a ObjectTriple. · 84f8a506
      rmcilroy authored
      Adds a ForInPrepare Runtime function which returns a triple of
      cache_type, cache_array and cache_length.
      
      This requires adding support to CEntryStub to call runtime functions
      which return a ObjectTriple - a struct containing three Object*
      pointers. Also did some cleanup of the x64 CEntryStub to avoid
      replicated code.
      
      Replaces the interpreter's use of the ad-hock InterpreterForInPrepare
      Runtime function with ForInPrepare in preparation for fixing deopt in
      BytecodeGraphBuilder for ForIn (which will be done in a followup CL).
      
      MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1576093004
      
      Cr-Commit-Position: refs/heads/master@{#33334}
      84f8a506
  18. 11 Dec, 2015 1 commit
  19. 10 Dec, 2015 1 commit
  20. 08 Oct, 2015 2 commits
  21. 07 Oct, 2015 1 commit
  22. 05 Oct, 2015 2 commits
  23. 30 Sep, 2015 1 commit
  24. 04 Aug, 2015 1 commit
  25. 23 Jul, 2015 1 commit
    • danno's avatar
      Unify "runtime-style" IC functions with Runtime intrinsics · bc8041dc
      danno authored
      Previous to this CL, ICs used a slightly different code idiom
      to get to C++ code from generated code than runtime intrinsics,
      using an IC_Utility class that in essence provided exactly
      the same functionality as Runtime::FunctionForId, but in its
      own quirky way.
      
      This CL unifies the two mechanisms, folding IC_Utility
      away by making all IC entry points in C++ code, e.g. IC
      miss handlers, full-fledged runtime intrinsics. This makes
      it possible to eliminate a bunch of ad-hoc declarations and
      adapters that the IC system had to needlessly re-invent.
      
      As a bonus and the original reason for this yak-shave:
      IC-related C++ runtime functions are now callable from
      TurboFan.
      
      Review URL: https://codereview.chromium.org/1248303002
      
      Cr-Commit-Position: refs/heads/master@{#29811}
      bc8041dc
  26. 06 Jul, 2015 1 commit
  27. 23 Jan, 2015 1 commit
  28. 27 Nov, 2014 1 commit