Changeset 163140 in webkit
- Timestamp:
- Jan 30, 2014 5:34:54 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 60 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r163128 r163140 1 2014-01-28 Timothy Hatcher <timothy@apple.com> 2 3 Add column number and call timing support to LegacyProfiler. 4 5 https://bugs.webkit.org/show_bug.cgi?id=127764 6 7 Reviewed by Joseph Pecoraro. 8 9 Update test and results to include column numbers. 10 11 * fast/profiler/anonymous-event-handler-expected.txt: 12 * fast/profiler/anonymous-function-called-from-different-contexts-expected.txt: 13 * fast/profiler/anonymous-function-calls-built-in-functions-expected.txt: 14 * fast/profiler/anonymous-function-calls-eval-expected.txt: 15 * fast/profiler/anonymous-functions-with-display-names-expected.txt: 16 * fast/profiler/apply-expected.txt: 17 * fast/profiler/built-in-function-calls-anonymous-expected.txt: 18 * fast/profiler/built-in-function-calls-user-defined-function-expected.txt: 19 * fast/profiler/call-expected.txt: 20 * fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt: 21 * fast/profiler/compare-multiple-profiles-expected.txt: 22 * fast/profiler/constructor-expected.txt: 23 * fast/profiler/dead-time-expected.txt: 24 * fast/profiler/document-dot-write-expected.txt: 25 * fast/profiler/event-handler-expected.txt: 26 * fast/profiler/execution-context-and-eval-on-same-line-expected.txt: 27 * fast/profiler/inline-event-handler-expected.txt: 28 * fast/profiler/many-calls-in-the-same-scope-expected.txt: 29 * fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt: 30 * fast/profiler/multiple-and-different-scoped-function-calls-expected.txt: 31 * fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt: 32 * fast/profiler/multiple-frames-expected.txt: 33 * fast/profiler/named-functions-with-display-names-expected.txt: 34 * fast/profiler/nested-anonymous-functon-expected.txt: 35 * fast/profiler/nested-start-and-stop-profiler-expected.txt: 36 * fast/profiler/one-execution-context-expected.txt: 37 * fast/profiler/profile-calls-in-included-file-expected.txt: 38 * fast/profiler/profile-with-no-title-expected.txt: 39 * fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt: 40 * fast/profiler/profiling-from-a-nested-location-expected.txt: 41 * fast/profiler/resources/profiler-test-JS-resources.js: 42 (printProfileNodeWithoutTime): 43 * fast/profiler/simple-event-call-expected.txt: 44 * fast/profiler/simple-no-level-change-expected.txt: 45 * fast/profiler/start-and-stop-profiler-multiple-times-expected.txt: 46 * fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt: 47 * fast/profiler/stop-profiling-after-setTimeout-expected.txt: 48 * fast/profiler/stop-then-function-call-expected.txt: 49 * fast/profiler/two-execution-contexts-expected.txt: 50 * fast/profiler/user-defined-function-calls-built-in-functions-expected.txt: 51 * fast/profiler/window-dot-eval-expected.txt: 52 1 53 2014-01-30 Alexey Proskuryakov <ap@apple.com> 2 54 -
trunk/LayoutTests/fast/profiler/anonymous-event-handler-expected.txt
r106504 r163140 4 4 5 5 Profile title: Anonymous event handler 6 Thread_1 (no file) (line 0 )7 startTest anonymous-event-handler.html (line 11 )8 getElementById (no file) (line 0 )9 click (no file) (line 0 )10 onclick anonymous-event-handler.html (line 15 )11 insertNewText profiler-test-JS-resources.js (line 17 )12 createElement (no file) (line 0 )13 createTextNode (no file) (line 0 )14 appendChild (no file) (line 0 )15 getElementById (no file) (line 0 )16 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest anonymous-event-handler.html (line 11:1) 8 getElementById (no file) (line 0:0) 9 click (no file) (line 0:0) 10 onclick anonymous-event-handler.html (line 15:54) 11 insertNewText profiler-test-JS-resources.js (line 17:26) 12 createElement (no file) (line 0:0) 13 createTextNode (no file) (line 0:0) 14 appendChild (no file) (line 0:0) 15 getElementById (no file) (line 0:0) 16 endTest profiler-test-JS-resources.js (line 1:20) 17 17 18 18 -
trunk/LayoutTests/fast/profiler/anonymous-function-called-from-different-contexts-expected.txt
r106504 r163140 4 4 5 5 Profile title: Same anonymous function called from different contexts 6 Thread_1 (no file) (line 0 )7 startTest anonymous-function-called-from-different-contexts.html (line 11 )8 anonymousFunction profiler-test-JS-resources.js (line 29 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 eval (no file) (line 0 )15 (program) (no file) (line 1 )16 anonymousFunction profiler-test-JS-resources.js (line 29 )17 insertNewText profiler-test-JS-resources.js (line 17 )18 createElement (no file) (line 0 )19 createTextNode (no file) (line 0 )20 appendChild (no file) (line 0 )21 getElementById (no file) (line 0 )22 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest anonymous-function-called-from-different-contexts.html (line 11:1) 8 anonymousFunction profiler-test-JS-resources.js (line 29:37) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 eval (no file) (line 0:0) 15 (program) (no file) (line 1:1) 16 anonymousFunction profiler-test-JS-resources.js (line 29:37) 17 insertNewText profiler-test-JS-resources.js (line 17:26) 18 createElement (no file) (line 0:0) 19 createTextNode (no file) (line 0:0) 20 appendChild (no file) (line 0:0) 21 getElementById (no file) (line 0:0) 22 endTest profiler-test-JS-resources.js (line 1:20) 23 23 24 24 -
trunk/LayoutTests/fast/profiler/anonymous-function-calls-built-in-functions-expected.txt
r106504 r163140 4 4 5 5 Profile title: Anonymous function calls built-in functions 6 Thread_1 (no file) (line 0 )7 startTest anonymous-function-calls-built-in-functions.html (line 11 )8 anonymousFunction profiler-test-JS-resources.js (line 29 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest anonymous-function-calls-built-in-functions.html (line 11:1) 8 anonymousFunction profiler-test-JS-resources.js (line 29:37) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 -
trunk/LayoutTests/fast/profiler/anonymous-function-calls-eval-expected.txt
r106504 r163140 4 4 5 5 Profile title: Anonymous function calles eval 6 Thread_1 (no file) (line 0 )7 startTest anonymous-function-calls-eval.html (line 11 )8 variableThatPointsToAnAnonymousFunction anonymous-function-calls-eval.html (line 14 )9 eval (no file) (line 0 )10 (program) (no file) (line 1 )11 insertNewText profiler-test-JS-resources.js (line 17 )12 createElement (no file) (line 0 )13 createTextNode (no file) (line 0 )14 appendChild (no file) (line 0 )15 getElementById (no file) (line 0 )16 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest anonymous-function-calls-eval.html (line 11:1) 8 variableThatPointsToAnAnonymousFunction anonymous-function-calls-eval.html (line 14:62) 9 eval (no file) (line 0:0) 10 (program) (no file) (line 1:1) 11 insertNewText profiler-test-JS-resources.js (line 17:26) 12 createElement (no file) (line 0:0) 13 createTextNode (no file) (line 0:0) 14 appendChild (no file) (line 0:0) 15 getElementById (no file) (line 0:0) 16 endTest profiler-test-JS-resources.js (line 1:20) 17 17 18 18 -
trunk/LayoutTests/fast/profiler/anonymous-functions-with-display-names-expected.txt
r42478 r163140 4 4 5 5 Profile title: Anonymous functions with display names 6 Thread_1 (no file) (line 0 )7 startTest anonymous-functions-with-display-names.html (line 23 )8 anonymousFunctionGenerator anonymous-functions-with-display-names.html (line 11 )9 0 iterations function anonymous-functions-with-display-names.html (line 13 )10 1 iterations function anonymous-functions-with-display-names.html (line 13 )11 2 iterations function anonymous-functions-with-display-names.html (line 13 )12 20 iterations function anonymous-functions-with-display-names.html (line 13 )13 1000 iterations function anonymous-functions-with-display-names.html (line 13 )14 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest anonymous-functions-with-display-names.html (line 23:1) 8 anonymousFunctionGenerator anonymous-functions-with-display-names.html (line 11:1) 9 0 iterations function anonymous-functions-with-display-names.html (line 13:5) 10 1 iterations function anonymous-functions-with-display-names.html (line 13:5) 11 2 iterations function anonymous-functions-with-display-names.html (line 13:5) 12 20 iterations function anonymous-functions-with-display-names.html (line 13:5) 13 1000 iterations function anonymous-functions-with-display-names.html (line 13:5) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 -
trunk/LayoutTests/fast/profiler/apply-expected.txt
r42337 r163140 4 4 5 5 Profile title: Using the apply() method 6 Thread_1 (no file) (line 0 )7 startTest apply.html (line 11 )8 fakeObject apply.html (line 18 )9 fakeInteriorFunction apply.html (line 24 )10 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest apply.html (line 11:1) 8 fakeObject apply.html (line 18:1) 9 fakeInteriorFunction apply.html (line 24:1) 10 endTest profiler-test-JS-resources.js (line 1:20) 11 11 12 12 -
trunk/LayoutTests/fast/profiler/built-in-function-calls-anonymous-expected.txt
r106504 r163140 4 4 5 5 Profile title: Built-in function calls an anonymous function 6 Thread_1 (no file) (line 0 )7 startTest built-in-function-calls-anonymous.html (line 11 )8 Array (no file) (line 0 )9 map (no file) (line 0 )10 myFunction built-in-function-calls-anonymous.html (line 14 )11 arrayOperatorFunction profiler-test-JS-resources.js (line 25 )12 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest built-in-function-calls-anonymous.html (line 11:1) 8 Array (no file) (line 0:0) 9 map (no file) (line 0:0) 10 myFunction built-in-function-calls-anonymous.html (line 14:45) 11 arrayOperatorFunction profiler-test-JS-resources.js (line 25:46) 12 endTest profiler-test-JS-resources.js (line 1:20) 13 13 14 14 -
trunk/LayoutTests/fast/profiler/built-in-function-calls-user-defined-function-expected.txt
r39036 r163140 4 4 5 5 Profile title: Built-in function calls a user defined function 6 Thread_1 (no file) (line 0 )7 startTest built-in-function-calls-user-defined-function.html (line 11 )8 Array (no file) (line 0 )9 map (no file) (line 0 )10 arrayOperatorFunction profiler-test-JS-resources.js (line 25 )11 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest built-in-function-calls-user-defined-function.html (line 11:1) 8 Array (no file) (line 0:0) 9 map (no file) (line 0:0) 10 arrayOperatorFunction profiler-test-JS-resources.js (line 25:46) 11 endTest profiler-test-JS-resources.js (line 1:20) 12 12 13 13 -
trunk/LayoutTests/fast/profiler/call-expected.txt
r42065 r163140 4 4 5 5 Profile title: Using the call() method 6 Thread_1 (no file) (line 0 )7 startTest call.html (line 11 )8 fakeObject call.html (line 20 )9 fakeInteriorFunction call.html (line 26 )10 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest call.html (line 11:1) 8 fakeObject call.html (line 20:1) 9 fakeInteriorFunction call.html (line 26:1) 10 endTest profiler-test-JS-resources.js (line 1:20) 11 11 12 12 -
trunk/LayoutTests/fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope-expected.txt
r39036 r163140 4 4 5 5 Profile title: Calling the same function where the profile started from another function 6 Thread_1 (no file) (line 0 )7 indirection calling-the-function-that-started-the-profiler-from-another-scope.html (line 18 )8 functionWichStartsAndStopsTheProfiler calling-the-function-that-started-the-profiler-from-another-scope.html (line 24 )9 functionWichStartsAndStopsTheProfiler calling-the-function-that-started-the-profiler-from-another-scope.html (line 24 )10 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 indirection calling-the-function-that-started-the-profiler-from-another-scope.html (line 18:1) 8 functionWichStartsAndStopsTheProfiler calling-the-function-that-started-the-profiler-from-another-scope.html (line 24:1) 9 functionWichStartsAndStopsTheProfiler calling-the-function-that-started-the-profiler-from-another-scope.html (line 24:1) 10 endTest profiler-test-JS-resources.js (line 1:20) 11 11 12 12 -
trunk/LayoutTests/fast/profiler/compare-multiple-profiles-expected.txt
r39036 r163140 4 4 5 5 Profile title: Test 6 Thread_1 (no file) (line 0 )7 startTest compare-multiple-profiles.html (line 23 )8 test compare-multiple-profiles.html (line 11 )9 test2 compare-multiple-profiles.html (line 17 )6 Thread_1 (no file) (line 0:0) 7 startTest compare-multiple-profiles.html (line 23:1) 8 test compare-multiple-profiles.html (line 11:20) 9 test2 compare-multiple-profiles.html (line 17:21) 10 10 11 11 Profile title: Test 12 Thread_1 (no file) (line 0 )13 startTest compare-multiple-profiles.html (line 23 )14 test compare-multiple-profiles.html (line 11 )15 test2 compare-multiple-profiles.html (line 17 )12 Thread_1 (no file) (line 0:0) 13 startTest compare-multiple-profiles.html (line 23:1) 14 test compare-multiple-profiles.html (line 11:20) 15 test2 compare-multiple-profiles.html (line 17:21) 16 16 17 17 -
trunk/LayoutTests/fast/profiler/constructor-expected.txt
r39036 r163140 4 4 5 5 Profile title: Using a constructor. 6 Thread_1 (no file) (line 0 )7 startTest constructor.html (line 11 )8 fakeObject constructor.html (line 20 )9 Array (no file) (line 0 )10 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest constructor.html (line 11:1) 8 fakeObject constructor.html (line 20:1) 9 Array (no file) (line 0:0) 10 endTest profiler-test-JS-resources.js (line 1:20) 11 11 12 12 -
trunk/LayoutTests/fast/profiler/dead-time-expected.txt
r162832 r163140 4 4 5 5 Profile title: Dead time in profile. 6 Thread_1 (no file) (line 0 )7 onload dead-time.html (line 21 )8 startTest dead-time.html (line 13 )9 setTimeout (no file) (line 0 )10 (program) dead-time.html (line 1 )11 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 onload dead-time.html (line 21:1) 8 startTest dead-time.html (line 13:1) 9 setTimeout (no file) (line 0:0) 10 (program) dead-time.html (line 1:1) 11 endTest profiler-test-JS-resources.js (line 1:20) 12 12 13 13 -
trunk/LayoutTests/fast/profiler/document-dot-write-expected.txt
r39036 r163140 1 1 2 2 Profile title: Call Document.write() 3 Thread_1 (no file) (line 0 )4 startTest document-dot-write.html (line 11 )5 write (no file) (line 0 )6 endTest profiler-test-JS-resources.js (line 1 )3 Thread_1 (no file) (line 0:0) 4 startTest document-dot-write.html (line 11:1) 5 write (no file) (line 0:0) 6 endTest profiler-test-JS-resources.js (line 1:20) 7 7 8 8 -
trunk/LayoutTests/fast/profiler/event-handler-expected.txt
r39036 r163140 4 4 5 5 Profile title: Event handler 6 Thread_1 (no file) (line 0 )7 startTest event-handler.html (line 11 )8 getElementById (no file) (line 0 )9 addEventListener (no file) (line 0 )10 click (no file) (line 0 )11 insertNewText profiler-test-JS-resources.js (line 17 )12 createElement (no file) (line 0 )13 createTextNode (no file) (line 0 )14 appendChild (no file) (line 0 )15 getElementById (no file) (line 0 )16 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest event-handler.html (line 11:1) 8 getElementById (no file) (line 0:0) 9 addEventListener (no file) (line 0:0) 10 click (no file) (line 0:0) 11 insertNewText profiler-test-JS-resources.js (line 17:26) 12 createElement (no file) (line 0:0) 13 createTextNode (no file) (line 0:0) 14 appendChild (no file) (line 0:0) 15 getElementById (no file) (line 0:0) 16 endTest profiler-test-JS-resources.js (line 1:20) 17 17 18 18 -
trunk/LayoutTests/fast/profiler/execution-context-and-eval-on-same-line-expected.txt
r39036 r163140 4 4 5 5 Profile title: Two Execution Contexts on the same line 6 Thread_1 (no file) (line 0 )7 startTest execution-context-and-eval-on-same-line.html (line 11 )8 evalFunction (no file) (line 1 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest execution-context-and-eval-on-same-line.html (line 11:1) 8 evalFunction (no file) (line 1:25) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 -
trunk/LayoutTests/fast/profiler/inline-event-handler-expected.txt
r106504 r163140 4 4 5 5 Profile title: Inline event handler 6 Thread_1 (no file) (line 0 )7 startTest inline-event-handler.html (line 11 )8 getElementById (no file) (line 0 )9 click (no file) (line 0 )10 onclick inline-event-handler.html (line 31 )11 eventListener inline-event-handler.html (line 17 )12 anonymousFunction profiler-test-JS-resources.js (line 29 )13 insertNewText profiler-test-JS-resources.js (line 17 )14 createElement (no file) (line 0 )15 createTextNode (no file) (line 0 )16 appendChild (no file) (line 0 )17 getElementById (no file) (line 0 )18 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest inline-event-handler.html (line 11:1) 8 getElementById (no file) (line 0:0) 9 click (no file) (line 0:0) 10 onclick inline-event-handler.html (line 31:1) 11 eventListener inline-event-handler.html (line 17:26) 12 anonymousFunction profiler-test-JS-resources.js (line 29:37) 13 insertNewText profiler-test-JS-resources.js (line 17:26) 14 createElement (no file) (line 0:0) 15 createTextNode (no file) (line 0:0) 16 appendChild (no file) (line 0:0) 17 getElementById (no file) (line 0:0) 18 endTest profiler-test-JS-resources.js (line 1:20) 19 19 20 20 -
trunk/LayoutTests/fast/profiler/many-calls-in-the-same-scope-expected.txt
r106504 r163140 4 4 5 5 Profile title: Many Calls In The Same Scope 6 Thread_1 (no file) (line 0 )7 startTest many-calls-in-the-same-scope.html (line 11 )8 insertNewText profiler-test-JS-resources.js (line 17 )9 createElement (no file) (line 0 )10 createTextNode (no file) (line 0 )11 appendChild (no file) (line 0 )12 getElementById (no file) (line 0 )13 insertGivenText profiler-test-JS-resources.js (line 9 )14 createElement (no file) (line 0 )15 createTextNode (no file) (line 0 )16 appendChild (no file) (line 0 )17 getElementById (no file) (line 0 )18 arrayOperatorFunction profiler-test-JS-resources.js (line 25 )19 intermediaryFunction profiler-test-JS-resources.js (line 33 )20 anonymousFunction profiler-test-JS-resources.js (line 29 )21 insertNewText profiler-test-JS-resources.js (line 17 )22 createElement (no file) (line 0 )23 createTextNode (no file) (line 0 )24 appendChild (no file) (line 0 )25 getElementById (no file) (line 0 )26 anonymousFunction profiler-test-JS-resources.js (line 29 )27 insertNewText profiler-test-JS-resources.js (line 17 )28 createElement (no file) (line 0 )29 createTextNode (no file) (line 0 )30 appendChild (no file) (line 0 )31 getElementById (no file) (line 0 )32 end many-calls-in-the-same-scope.html (line 27 )33 endT many-calls-in-the-same-scope.html (line 32 )34 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest many-calls-in-the-same-scope.html (line 11:1) 8 insertNewText profiler-test-JS-resources.js (line 17:26) 9 createElement (no file) (line 0:0) 10 createTextNode (no file) (line 0:0) 11 appendChild (no file) (line 0:0) 12 getElementById (no file) (line 0:0) 13 insertGivenText profiler-test-JS-resources.js (line 9:32) 14 createElement (no file) (line 0:0) 15 createTextNode (no file) (line 0:0) 16 appendChild (no file) (line 0:0) 17 getElementById (no file) (line 0:0) 18 arrayOperatorFunction profiler-test-JS-resources.js (line 25:46) 19 intermediaryFunction profiler-test-JS-resources.js (line 33:1) 20 anonymousFunction profiler-test-JS-resources.js (line 29:37) 21 insertNewText profiler-test-JS-resources.js (line 17:26) 22 createElement (no file) (line 0:0) 23 createTextNode (no file) (line 0:0) 24 appendChild (no file) (line 0:0) 25 getElementById (no file) (line 0:0) 26 anonymousFunction profiler-test-JS-resources.js (line 29:37) 27 insertNewText profiler-test-JS-resources.js (line 17:26) 28 createElement (no file) (line 0:0) 29 createTextNode (no file) (line 0:0) 30 appendChild (no file) (line 0:0) 31 getElementById (no file) (line 0:0) 32 end many-calls-in-the-same-scope.html (line 27:1) 33 endT many-calls-in-the-same-scope.html (line 32:1) 34 endTest profiler-test-JS-resources.js (line 1:20) 35 35 36 36 -
trunk/LayoutTests/fast/profiler/multiple-and-different-scoped-anonymous-function-calls-expected.txt
r106504 r163140 4 4 5 5 Profile title: Multiple and different scoped calls to the same anonymous function 6 Thread_1 (no file) (line 0 )7 startTest multiple-and-different-scoped-anonymous-function-calls.html (line 11 )8 anonymousFunction profiler-test-JS-resources.js (line 29 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 intermediaryFunction profiler-test-JS-resources.js (line 33 )15 anonymousFunction profiler-test-JS-resources.js (line 29 )16 insertNewText profiler-test-JS-resources.js (line 17 )17 createElement (no file) (line 0 )18 createTextNode (no file) (line 0 )19 appendChild (no file) (line 0 )20 getElementById (no file) (line 0 )21 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest multiple-and-different-scoped-anonymous-function-calls.html (line 11:1) 8 anonymousFunction profiler-test-JS-resources.js (line 29:37) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 intermediaryFunction profiler-test-JS-resources.js (line 33:1) 15 anonymousFunction profiler-test-JS-resources.js (line 29:37) 16 insertNewText profiler-test-JS-resources.js (line 17:26) 17 createElement (no file) (line 0:0) 18 createTextNode (no file) (line 0:0) 19 appendChild (no file) (line 0:0) 20 getElementById (no file) (line 0:0) 21 endTest profiler-test-JS-resources.js (line 1:20) 22 22 23 23 -
trunk/LayoutTests/fast/profiler/multiple-and-different-scoped-function-calls-expected.txt
r106504 r163140 4 4 5 5 Profile title: Multiple and different scoped calls to the same function 6 Thread_1 (no file) (line 0 )7 startTest multiple-and-different-scoped-function-calls.html (line 11 )8 insertNewText profiler-test-JS-resources.js (line 17 )9 createElement (no file) (line 0 )10 createTextNode (no file) (line 0 )11 appendChild (no file) (line 0 )12 getElementById (no file) (line 0 )13 intermediaryFunction profiler-test-JS-resources.js (line 33 )14 anonymousFunction profiler-test-JS-resources.js (line 29 )15 insertNewText profiler-test-JS-resources.js (line 17 )16 createElement (no file) (line 0 )17 createTextNode (no file) (line 0 )18 appendChild (no file) (line 0 )19 getElementById (no file) (line 0 )20 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest multiple-and-different-scoped-function-calls.html (line 11:1) 8 insertNewText profiler-test-JS-resources.js (line 17:26) 9 createElement (no file) (line 0:0) 10 createTextNode (no file) (line 0:0) 11 appendChild (no file) (line 0:0) 12 getElementById (no file) (line 0:0) 13 intermediaryFunction profiler-test-JS-resources.js (line 33:1) 14 anonymousFunction profiler-test-JS-resources.js (line 29:37) 15 insertNewText profiler-test-JS-resources.js (line 17:26) 16 createElement (no file) (line 0:0) 17 createTextNode (no file) (line 0:0) 18 appendChild (no file) (line 0:0) 19 getElementById (no file) (line 0:0) 20 endTest profiler-test-JS-resources.js (line 1:20) 21 21 22 22 -
trunk/LayoutTests/fast/profiler/multiple-anonymous-functions-called-from-the-same-function-expected.txt
r106504 r163140 4 4 5 5 Profile title: Multiple calls to different anonymous functions 6 Thread_1 (no file) (line 0 )7 startTest multiple-anonymous-functions-called-from-the-same-function.html (line 11 )8 anonymousFunction profiler-test-JS-resources.js (line 29 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 anotherAnonymousFunction profiler-test-JS-resources.js (line 30 )15 insertGivenText profiler-test-JS-resources.js (line 9 )16 createElement (no file) (line 0 )17 createTextNode (no file) (line 0 )18 appendChild (no file) (line 0 )19 getElementById (no file) (line 0 )20 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest multiple-anonymous-functions-called-from-the-same-function.html (line 11:1) 8 anonymousFunction profiler-test-JS-resources.js (line 29:37) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 anotherAnonymousFunction profiler-test-JS-resources.js (line 30:44) 15 insertGivenText profiler-test-JS-resources.js (line 9:32) 16 createElement (no file) (line 0:0) 17 createTextNode (no file) (line 0:0) 18 appendChild (no file) (line 0:0) 19 getElementById (no file) (line 0:0) 20 endTest profiler-test-JS-resources.js (line 1:20) 21 21 22 22 -
trunk/LayoutTests/fast/profiler/multiple-frames-expected.txt
r39036 r163140 4 4 5 5 Profile title: Other window executing JavaScript 6 Thread_1 (no file) (line 0 )7 startTest multiple-frames.html (line 11 )8 getElementById (no file) (line 0 )9 functionInOtherFrame other-frame.html (line 4 )10 functionInParentFrame multiple-frames.html (line 21 )11 insertGivenText profiler-test-JS-resources.js (line 9 )12 createElement (no file) (line 0 )13 createTextNode (no file) (line 0 )14 appendChild (no file) (line 0 )15 getElementById (no file) (line 0 )16 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest multiple-frames.html (line 11:1) 8 getElementById (no file) (line 0:0) 9 functionInOtherFrame other-frame.html (line 4:33) 10 functionInParentFrame multiple-frames.html (line 21:34) 11 insertGivenText profiler-test-JS-resources.js (line 9:32) 12 createElement (no file) (line 0:0) 13 createTextNode (no file) (line 0:0) 14 appendChild (no file) (line 0:0) 15 getElementById (no file) (line 0:0) 16 endTest profiler-test-JS-resources.js (line 1:20) 17 17 18 18 -
trunk/LayoutTests/fast/profiler/named-functions-with-display-names-expected.txt
r43006 r163140 4 4 5 5 Profile title: Named functions with display names 6 Thread_1 (no file) (line 0 )7 startTest named-functions-with-display-names.html (line 54 )8 0 iterations function named-functions-with-display-names.html (line 11 )9 1 iteration function named-functions-with-display-names.html (line 18 )10 2 iterations function named-functions-with-display-names.html (line 25 )11 20 iterations function named-functions-with-display-names.html (line 32 )12 1000 iterations function named-functions-with-display-names.html (line 39 )13 bogusDisplayNameFunction named-functions-with-display-names.html (line 47 )14 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest named-functions-with-display-names.html (line 54:1) 8 0 iterations function named-functions-with-display-names.html (line 11:1) 9 1 iteration function named-functions-with-display-names.html (line 18:1) 10 2 iterations function named-functions-with-display-names.html (line 25:1) 11 20 iterations function named-functions-with-display-names.html (line 32:1) 12 1000 iterations function named-functions-with-display-names.html (line 39:1) 13 bogusDisplayNameFunction named-functions-with-display-names.html (line 47:1) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 -
trunk/LayoutTests/fast/profiler/nested-anonymous-functon-expected.txt
r106504 r163140 4 4 5 5 Profile title: Nested anonymous functions called 6 Thread_1 (no file) (line 0 )7 startTest nested-anonymous-functon.html (line 11 )8 AnonymousFunctionWichCallsAnAnonymousFunction nested-anonymous-functon.html (line 14 )9 anonymousFunction profiler-test-JS-resources.js (line 29 )10 insertNewText profiler-test-JS-resources.js (line 17 )11 createElement (no file) (line 0 )12 createTextNode (no file) (line 0 )13 appendChild (no file) (line 0 )14 getElementById (no file) (line 0 )15 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest nested-anonymous-functon.html (line 11:1) 8 AnonymousFunctionWichCallsAnAnonymousFunction nested-anonymous-functon.html (line 14:68) 9 anonymousFunction profiler-test-JS-resources.js (line 29:37) 10 insertNewText profiler-test-JS-resources.js (line 17:26) 11 createElement (no file) (line 0:0) 12 createTextNode (no file) (line 0:0) 13 appendChild (no file) (line 0:0) 14 getElementById (no file) (line 0:0) 15 endTest profiler-test-JS-resources.js (line 1:20) 16 16 17 17 -
trunk/LayoutTests/fast/profiler/nested-start-and-stop-profiler-expected.txt
r120232 r163140 4 4 5 5 Profile title: Start the profiler the third time. 6 Thread_1 (no file) (line 0 )7 startTest nested-start-and-stop-profiler.html (line 11 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest nested-start-and-stop-profiler.html (line 11:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 11 11 Profile title: Start the profiler the third time. 12 Thread_1 (no file) (line 0 )13 startTest nested-start-and-stop-profiler.html (line 11 )14 endTest profiler-test-JS-resources.js (line 1 )12 Thread_1 (no file) (line 0:0) 13 startTest nested-start-and-stop-profiler.html (line 11:1) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 Profile title: Start the profiler the second time. 17 Thread_1 (no file) (line 0 )18 startTest nested-start-and-stop-profiler.html (line 11 )19 endTest profiler-test-JS-resources.js (line 1 )20 profileEnd (no file) (line 0 )21 printProfilesDataWithoutTime profiler-test-JS-resources.js (line 63 )22 createElement (no file) (line 0 )23 createTextNode (no file) (line 0 )24 appendChild (no file) (line 0 )25 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )26 replace (no file) (line 0 )27 createTextNode (no file) (line 0 )28 appendChild (no file) (line 0 )29 children (no file) (line 0 )30 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )31 replace (no file) (line 0 )32 createTextNode (no file) (line 0 )33 appendChild (no file) (line 0 )34 children (no file) (line 0 )35 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )36 replace (no file) (line 0 )37 createTextNode (no file) (line 0 )38 appendChild (no file) (line 0 )39 children (no file) (line 0 )40 getElementById (no file) (line 0 )41 notifyDone (no file) (line 0 )17 Thread_1 (no file) (line 0:0) 18 startTest nested-start-and-stop-profiler.html (line 11:1) 19 endTest profiler-test-JS-resources.js (line 1:20) 20 profileEnd (no file) (line 0:0) 21 printProfilesDataWithoutTime profiler-test-JS-resources.js (line 63:1) 22 createElement (no file) (line 0:0) 23 createTextNode (no file) (line 0:0) 24 appendChild (no file) (line 0:0) 25 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 26 replace (no file) (line 0:0) 27 createTextNode (no file) (line 0:0) 28 appendChild (no file) (line 0:0) 29 children (no file) (line 0:0) 30 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 31 replace (no file) (line 0:0) 32 createTextNode (no file) (line 0:0) 33 appendChild (no file) (line 0:0) 34 children (no file) (line 0:0) 35 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 36 replace (no file) (line 0:0) 37 createTextNode (no file) (line 0:0) 38 appendChild (no file) (line 0:0) 39 children (no file) (line 0:0) 40 getElementById (no file) (line 0:0) 41 notifyDone (no file) (line 0:0) 42 42 43 43 44 44 Profile title: Start the profiler the third time. 45 Thread_1 (no file) (line 0 )46 startTest nested-start-and-stop-profiler.html (line 11 )47 endTest profiler-test-JS-resources.js (line 1 )45 Thread_1 (no file) (line 0:0) 46 startTest nested-start-and-stop-profiler.html (line 11:1) 47 endTest profiler-test-JS-resources.js (line 1:20) 48 48 49 49 Profile title: Start the profiler the second time. 50 Thread_1 (no file) (line 0 )51 startTest nested-start-and-stop-profiler.html (line 11 )52 endTest profiler-test-JS-resources.js (line 1 )53 profileEnd (no file) (line 0 )54 printProfilesDataWithoutTime profiler-test-JS-resources.js (line 63 )55 createElement (no file) (line 0 )56 createTextNode (no file) (line 0 )57 appendChild (no file) (line 0 )58 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )59 replace (no file) (line 0 )60 createTextNode (no file) (line 0 )61 appendChild (no file) (line 0 )62 children (no file) (line 0 )63 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )64 replace (no file) (line 0 )65 createTextNode (no file) (line 0 )66 appendChild (no file) (line 0 )67 children (no file) (line 0 )68 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )69 replace (no file) (line 0 )70 createTextNode (no file) (line 0 )71 appendChild (no file) (line 0 )72 children (no file) (line 0 )73 getElementById (no file) (line 0 )74 notifyDone (no file) (line 0 )50 Thread_1 (no file) (line 0:0) 51 startTest nested-start-and-stop-profiler.html (line 11:1) 52 endTest profiler-test-JS-resources.js (line 1:20) 53 profileEnd (no file) (line 0:0) 54 printProfilesDataWithoutTime profiler-test-JS-resources.js (line 63:1) 55 createElement (no file) (line 0:0) 56 createTextNode (no file) (line 0:0) 57 appendChild (no file) (line 0:0) 58 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 59 replace (no file) (line 0:0) 60 createTextNode (no file) (line 0:0) 61 appendChild (no file) (line 0:0) 62 children (no file) (line 0:0) 63 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 64 replace (no file) (line 0:0) 65 createTextNode (no file) (line 0:0) 66 appendChild (no file) (line 0:0) 67 children (no file) (line 0:0) 68 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 69 replace (no file) (line 0:0) 70 createTextNode (no file) (line 0:0) 71 appendChild (no file) (line 0:0) 72 children (no file) (line 0:0) 73 getElementById (no file) (line 0:0) 74 notifyDone (no file) (line 0:0) 75 75 76 76 Profile title: Start the profiler the first time. 77 Thread_1 (no file) (line 0 )78 startTest nested-start-and-stop-profiler.html (line 11 )79 endTest profiler-test-JS-resources.js (line 1 )80 profileEnd (no file) (line 0 )81 printProfilesDataWithoutTime profiler-test-JS-resources.js (line 63 )82 createElement (no file) (line 0 )83 createTextNode (no file) (line 0 )84 appendChild (no file) (line 0 )85 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )86 replace (no file) (line 0 )87 createTextNode (no file) (line 0 )88 appendChild (no file) (line 0 )89 children (no file) (line 0 )90 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )91 replace (no file) (line 0 )92 createTextNode (no file) (line 0 )93 appendChild (no file) (line 0 )94 children (no file) (line 0 )95 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )96 replace (no file) (line 0 )97 createTextNode (no file) (line 0 )98 appendChild (no file) (line 0 )99 children (no file) (line 0 )100 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )101 replace (no file) (line 0 )102 createTextNode (no file) (line 0 )103 appendChild (no file) (line 0 )104 children (no file) (line 0 )105 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )106 replace (no file) (line 0 )107 createTextNode (no file) (line 0 )108 appendChild (no file) (line 0 )109 children (no file) (line 0 )110 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )111 replace (no file) (line 0 )112 createTextNode (no file) (line 0 )113 appendChild (no file) (line 0 )114 children (no file) (line 0 )115 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )116 replace (no file) (line 0 )117 createTextNode (no file) (line 0 )118 appendChild (no file) (line 0 )119 children (no file) (line 0 )120 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78 )121 replace (no file) (line 0 )122 createTextNode (no file) (line 0 )123 appendChild (no file) (line 0 )124 children (no file) (line 0 )125 getElementById (no file) (line 0 )126 notifyDone (no file) (line 0 )77 Thread_1 (no file) (line 0:0) 78 startTest nested-start-and-stop-profiler.html (line 11:1) 79 endTest profiler-test-JS-resources.js (line 1:20) 80 profileEnd (no file) (line 0:0) 81 printProfilesDataWithoutTime profiler-test-JS-resources.js (line 63:1) 82 createElement (no file) (line 0:0) 83 createTextNode (no file) (line 0:0) 84 appendChild (no file) (line 0:0) 85 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 86 replace (no file) (line 0:0) 87 createTextNode (no file) (line 0:0) 88 appendChild (no file) (line 0:0) 89 children (no file) (line 0:0) 90 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 91 replace (no file) (line 0:0) 92 createTextNode (no file) (line 0:0) 93 appendChild (no file) (line 0:0) 94 children (no file) (line 0:0) 95 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 96 replace (no file) (line 0:0) 97 createTextNode (no file) (line 0:0) 98 appendChild (no file) (line 0:0) 99 children (no file) (line 0:0) 100 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 101 replace (no file) (line 0:0) 102 createTextNode (no file) (line 0:0) 103 appendChild (no file) (line 0:0) 104 children (no file) (line 0:0) 105 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 106 replace (no file) (line 0:0) 107 createTextNode (no file) (line 0:0) 108 appendChild (no file) (line 0:0) 109 children (no file) (line 0:0) 110 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 111 replace (no file) (line 0:0) 112 createTextNode (no file) (line 0:0) 113 appendChild (no file) (line 0:0) 114 children (no file) (line 0:0) 115 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 116 replace (no file) (line 0:0) 117 createTextNode (no file) (line 0:0) 118 appendChild (no file) (line 0:0) 119 children (no file) (line 0:0) 120 printProfileNodeWithoutTime profiler-test-JS-resources.js (line 78:1) 121 replace (no file) (line 0:0) 122 createTextNode (no file) (line 0:0) 123 appendChild (no file) (line 0:0) 124 children (no file) (line 0:0) 125 getElementById (no file) (line 0:0) 126 notifyDone (no file) (line 0:0) 127 127 128 128 -
trunk/LayoutTests/fast/profiler/one-execution-context-expected.txt
r39036 r163140 4 4 5 5 Profile title: One Execution Context 6 Thread_1 (no file) (line 0 )7 startTest one-execution-context.html (line 11 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest one-execution-context.html (line 11:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/profile-calls-in-included-file-expected.txt
r41429 r163140 4 4 5 5 Profile title: Profile call in included file 6 Thread_1 (no file) (line 0 )7 startProfile profiler-test-JS-resources.js (line 43 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startProfile profiler-test-JS-resources.js (line 43:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/profile-with-no-title-expected.txt
r45323 r163140 4 4 5 5 Profile title: org.webkit.profiles.user-initiated.1 6 Thread_1 (no file) (line 0 )7 startTest profile-with-no-title.html (line 11 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest profile-with-no-title.html (line 11:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting-expected.txt
r39036 r163140 4 4 5 5 Profile title: Profiling From A Nested Location But Stop Profiling Outside The Nesting 6 Thread_1 (no file) (line 0 )7 functionWichStartsTheProfiler profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html (line 17 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 functionWichStartsTheProfiler profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html (line 17:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/profiling-from-a-nested-location-expected.txt
r39036 r163140 4 4 5 5 Profile title: Profiling From A Nested Location 6 Thread_1 (no file) (line 0 )7 functionWichStartsAndStopsTheProfiler profiling-from-a-nested-location.html (line 16 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 functionWichStartsAndStopsTheProfiler profiling-from-a-nested-location.html (line 16:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/resources/profiler-test-JS-resources.js
r162796 r163140 77 77 function printProfileNodeWithoutTime(preElement, node, indentLevel) 78 78 { 79 if (node.functionName == "(idle)")80 return;81 82 79 var space = ""; 83 80 for (var i = 0; i < indentLevel; ++i) … … 90 87 strippedURL = "(no file)"; 91 88 92 var line = space + node.functionName + " " + strippedURL + " (line " + node.lineNumber + " )\n";89 var line = space + node.functionName + " " + strippedURL + " (line " + node.lineNumber + ":" + node.columnNumber + ")\n"; 93 90 preElement.appendChild(document.createTextNode(line)); 94 91 -
trunk/LayoutTests/fast/profiler/simple-event-call-expected.txt
r39036 r163140 4 4 5 5 Profile title: A simple profile test where an event happens. 6 Thread_1 (no file) (line 0 )7 startTest simple-event-call.html (line 11 )8 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest simple-event-call.html (line 11:1) 8 endTest profiler-test-JS-resources.js (line 1:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/simple-no-level-change-expected.txt
r39036 r163140 4 4 5 5 Profile title: A simple profile test where no scope chagnes 6 Thread_1 (no file) (line 0 )7 functionWichStartsAndStopsTheProfiler simple-no-level-change.html (line 16 )8 getElementById (no file) (line 0 )6 Thread_1 (no file) (line 0:0) 7 functionWichStartsAndStopsTheProfiler simple-no-level-change.html (line 16:1) 8 getElementById (no file) (line 0:0) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/start-and-stop-profiler-multiple-times-expected.txt
r106504 r163140 4 4 5 5 Profile title: Start the profiler the first time. 6 Thread_1 (no file) (line 0 )7 startTest start-and-stop-profiler-multiple-times.html (line 11 )8 anonymousFunction profiler-test-JS-resources.js (line 29 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest start-and-stop-profiler-multiple-times.html (line 11:1) 8 anonymousFunction profiler-test-JS-resources.js (line 29:37) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 17 17 Profile title: Start the profiler the first time. 18 Thread_1 (no file) (line 0 )19 startTest start-and-stop-profiler-multiple-times.html (line 11 )20 anonymousFunction profiler-test-JS-resources.js (line 29 )21 insertNewText profiler-test-JS-resources.js (line 17 )22 createElement (no file) (line 0 )23 createTextNode (no file) (line 0 )24 appendChild (no file) (line 0 )25 getElementById (no file) (line 0 )26 endTest profiler-test-JS-resources.js (line 1 )18 Thread_1 (no file) (line 0:0) 19 startTest start-and-stop-profiler-multiple-times.html (line 11:1) 20 anonymousFunction profiler-test-JS-resources.js (line 29:37) 21 insertNewText profiler-test-JS-resources.js (line 17:26) 22 createElement (no file) (line 0:0) 23 createTextNode (no file) (line 0:0) 24 appendChild (no file) (line 0:0) 25 getElementById (no file) (line 0:0) 26 endTest profiler-test-JS-resources.js (line 1:20) 27 27 28 28 Profile title: Start the profiler the second time. 29 Thread_1 (no file) (line 0 )30 startTest start-and-stop-profiler-multiple-times.html (line 11 )31 anonymousFunction profiler-test-JS-resources.js (line 29 )32 insertNewText profiler-test-JS-resources.js (line 17 )33 createElement (no file) (line 0 )34 createTextNode (no file) (line 0 )35 appendChild (no file) (line 0 )36 getElementById (no file) (line 0 )37 endTest profiler-test-JS-resources.js (line 1 )29 Thread_1 (no file) (line 0:0) 30 startTest start-and-stop-profiler-multiple-times.html (line 11:1) 31 anonymousFunction profiler-test-JS-resources.js (line 29:37) 32 insertNewText profiler-test-JS-resources.js (line 17:26) 33 createElement (no file) (line 0:0) 34 createTextNode (no file) (line 0:0) 35 appendChild (no file) (line 0:0) 36 getElementById (no file) (line 0:0) 37 endTest profiler-test-JS-resources.js (line 1:20) 38 38 39 39 40 40 Profile title: Start the profiler the first time. 41 Thread_1 (no file) (line 0 )42 startTest start-and-stop-profiler-multiple-times.html (line 11 )43 anonymousFunction profiler-test-JS-resources.js (line 29 )44 insertNewText profiler-test-JS-resources.js (line 17 )45 createElement (no file) (line 0 )46 createTextNode (no file) (line 0 )47 appendChild (no file) (line 0 )48 getElementById (no file) (line 0 )49 endTest profiler-test-JS-resources.js (line 1 )41 Thread_1 (no file) (line 0:0) 42 startTest start-and-stop-profiler-multiple-times.html (line 11:1) 43 anonymousFunction profiler-test-JS-resources.js (line 29:37) 44 insertNewText profiler-test-JS-resources.js (line 17:26) 45 createElement (no file) (line 0:0) 46 createTextNode (no file) (line 0:0) 47 appendChild (no file) (line 0:0) 48 getElementById (no file) (line 0:0) 49 endTest profiler-test-JS-resources.js (line 1:20) 50 50 51 51 Profile title: Start the profiler the second time. 52 Thread_1 (no file) (line 0 )53 startTest start-and-stop-profiler-multiple-times.html (line 11 )54 anonymousFunction profiler-test-JS-resources.js (line 29 )55 insertNewText profiler-test-JS-resources.js (line 17 )56 createElement (no file) (line 0 )57 createTextNode (no file) (line 0 )58 appendChild (no file) (line 0 )59 getElementById (no file) (line 0 )60 endTest profiler-test-JS-resources.js (line 1 )52 Thread_1 (no file) (line 0:0) 53 startTest start-and-stop-profiler-multiple-times.html (line 11:1) 54 anonymousFunction profiler-test-JS-resources.js (line 29:37) 55 insertNewText profiler-test-JS-resources.js (line 17:26) 56 createElement (no file) (line 0:0) 57 createTextNode (no file) (line 0:0) 58 appendChild (no file) (line 0:0) 59 getElementById (no file) (line 0:0) 60 endTest profiler-test-JS-resources.js (line 1:20) 61 61 62 62 Profile title: Start the profiler the third time. 63 Thread_1 (no file) (line 0 )64 startTest start-and-stop-profiler-multiple-times.html (line 11 )65 anonymousFunction profiler-test-JS-resources.js (line 29 )66 insertNewText profiler-test-JS-resources.js (line 17 )67 createElement (no file) (line 0 )68 createTextNode (no file) (line 0 )69 appendChild (no file) (line 0 )70 getElementById (no file) (line 0 )71 endTest profiler-test-JS-resources.js (line 1 )63 Thread_1 (no file) (line 0:0) 64 startTest start-and-stop-profiler-multiple-times.html (line 11:1) 65 anonymousFunction profiler-test-JS-resources.js (line 29:37) 66 insertNewText profiler-test-JS-resources.js (line 17:26) 67 createElement (no file) (line 0:0) 68 createTextNode (no file) (line 0:0) 69 appendChild (no file) (line 0:0) 70 getElementById (no file) (line 0:0) 71 endTest profiler-test-JS-resources.js (line 1:20) 72 72 73 73 -
trunk/LayoutTests/fast/profiler/start-and-stop-profiling-in-the-same-function-expected.txt
r39036 r163140 4 4 5 5 Profile title: Profiling From A Nested Location 6 Thread_1 (no file) (line 0 )7 startTest start-and-stop-profiling-in-the-same-function.html (line 11 )8 functionWichStopsTheProfiler start-and-stop-profiling-in-the-same-function.html (line 18 )6 Thread_1 (no file) (line 0:0) 7 startTest start-and-stop-profiling-in-the-same-function.html (line 11:1) 8 functionWichStopsTheProfiler start-and-stop-profiling-in-the-same-function.html (line 18:1) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/stop-profiling-after-setTimeout-expected.txt
r162832 r163140 4 4 5 5 Profile title: Stop profiling from a timeout 6 Thread_1 (no file) (line 0 )7 onload stop-profiling-after-setTimeout.html (line 21 )8 startTest stop-profiling-after-setTimeout.html (line 13 )9 setTimeout (no file) (line 0 )10 (program) stop-profiling-after-setTimeout.html (line 1 )11 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 onload stop-profiling-after-setTimeout.html (line 21:1) 8 startTest stop-profiling-after-setTimeout.html (line 13:1) 9 setTimeout (no file) (line 0:0) 10 (program) stop-profiling-after-setTimeout.html (line 1:1) 11 endTest profiler-test-JS-resources.js (line 1:20) 12 12 13 13 -
trunk/LayoutTests/fast/profiler/stop-then-function-call-expected.txt
r39036 r163140 4 4 5 5 Profile title: Test 6 Thread_1 (no file) (line 0 )7 (program) (no file) (line 1 )8 test stop-then-function-call.html (line 11 )6 Thread_1 (no file) (line 0:0) 7 (program) (no file) (line 1:16) 8 test stop-then-function-call.html (line 11:20) 9 9 10 10 -
trunk/LayoutTests/fast/profiler/two-execution-contexts-expected.txt
r39036 r163140 4 4 5 5 Profile title: Two Execution Contexts 6 Thread_1 (no file) (line 0 )7 startTest two-execution-contexts.html (line 11 )8 intermediaryFunction two-execution-contexts.html (line 18 )9 testEnd two-execution-contexts.html (line 33 )6 Thread_1 (no file) (line 0:0) 7 startTest two-execution-contexts.html (line 11:1) 8 intermediaryFunction two-execution-contexts.html (line 18:1) 9 testEnd two-execution-contexts.html (line 33:20) 10 10 11 11 -
trunk/LayoutTests/fast/profiler/user-defined-function-calls-built-in-functions-expected.txt
r39036 r163140 6 6 7 7 Profile title: User defined function calles built-in functions 8 Thread_1 (no file) (line 0 )9 startTest user-defined-function-calls-built-in-functions.html (line 11 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 endTest profiler-test-JS-resources.js (line 1 )8 Thread_1 (no file) (line 0:0) 9 startTest user-defined-function-calls-built-in-functions.html (line 11:1) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 -
trunk/LayoutTests/fast/profiler/window-dot-eval-expected.txt
r39036 r163140 4 4 5 5 Profile title: Call window.eval() 6 Thread_1 (no file) (line 0 )7 startTest window-dot-eval.html (line 11 )8 evalFunction (no file) (line 1 )9 insertNewText profiler-test-JS-resources.js (line 17 )10 createElement (no file) (line 0 )11 createTextNode (no file) (line 0 )12 appendChild (no file) (line 0 )13 getElementById (no file) (line 0 )14 endTest profiler-test-JS-resources.js (line 1 )6 Thread_1 (no file) (line 0:0) 7 startTest window-dot-eval.html (line 11:1) 8 evalFunction (no file) (line 1:25) 9 insertNewText profiler-test-JS-resources.js (line 17:26) 10 createElement (no file) (line 0:0) 11 createTextNode (no file) (line 0:0) 12 appendChild (no file) (line 0:0) 13 getElementById (no file) (line 0:0) 14 endTest profiler-test-JS-resources.js (line 1:20) 15 15 16 16 -
trunk/Source/JavaScriptCore/ChangeLog
r163139 r163140 1 2014-01-28 Timothy Hatcher <timothy@apple.com> 2 3 Add column number and call timing support to LegacyProfiler. 4 5 https://bugs.webkit.org/show_bug.cgi?id=127764 6 7 Reviewed by Joseph Pecoraro. 8 9 * interpreter/Interpreter.cpp: 10 (JSC::Interpreter::execute): 11 * profiler/CallIdentifier.h: 12 (JSC::CallIdentifier::CallIdentifier): 13 (JSC::CallIdentifier::functionName): 14 (JSC::CallIdentifier::url): 15 (JSC::CallIdentifier::lineNumber): 16 (JSC::CallIdentifier::columnNumber): 17 (JSC::CallIdentifier::operator==): 18 (JSC::CallIdentifier::operator!=): 19 (JSC::CallIdentifier::Hash::hash): 20 (WTF::HashTraits<JSC::CallIdentifier>::constructDeletedValue): 21 (WTF::HashTraits<JSC::CallIdentifier>::isDeletedValue): 22 * profiler/LegacyProfiler.cpp: 23 (JSC::LegacyProfiler::willExecute): 24 (JSC::LegacyProfiler::didExecute): 25 (JSC::LegacyProfiler::exceptionUnwind): 26 (JSC::LegacyProfiler::createCallIdentifier): 27 (JSC::createCallIdentifierFromFunctionImp): 28 * profiler/LegacyProfiler.h: 29 * profiler/Profile.cpp: 30 (JSC::Profile::Profile): 31 * profiler/Profile.h: 32 (JSC::Profile::uid): 33 (JSC::Profile::idleTime): 34 (JSC::Profile::setIdleTime): 35 * profiler/ProfileGenerator.cpp: 36 (JSC::AddParentForConsoleStartFunctor::operator()): 37 (JSC::ProfileGenerator::addParentForConsoleStart): 38 (JSC::ProfileGenerator::willExecute): 39 (JSC::ProfileGenerator::didExecute): 40 (JSC::ProfileGenerator::stopProfiling): 41 (JSC::ProfileGenerator::removeProfileStart): 42 (JSC::ProfileGenerator::removeProfileEnd): 43 * profiler/ProfileNode.cpp: 44 (JSC::ProfileNode::ProfileNode): 45 (JSC::ProfileNode::stopProfiling): 46 (JSC::ProfileNode::endAndRecordCall): 47 (JSC::ProfileNode::startTimer): 48 (JSC::ProfileNode::debugPrintData): 49 * profiler/ProfileNode.h: 50 (JSC::ProfileNode::Call::Call): 51 (JSC::ProfileNode::Call::startTime): 52 (JSC::ProfileNode::Call::setStartTime): 53 (JSC::ProfileNode::Call::totalTime): 54 (JSC::ProfileNode::Call::setTotalTime): 55 (JSC::ProfileNode::id): 56 (JSC::ProfileNode::functionName): 57 (JSC::ProfileNode::url): 58 (JSC::ProfileNode::lineNumber): 59 (JSC::ProfileNode::columnNumber): 60 (JSC::ProfileNode::calls): 61 (JSC::ProfileNode::lastCall): 62 (JSC::ProfileNode::numberOfCalls): 63 1 64 2014-01-26 Timothy Hatcher <timothy@apple.com> 2 65 -
trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp
r163027 r163140 1 1 /* 2 * Copyright (C) 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2008, 2009, 2010, 2012, 2013, 2014 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2008 Cameron Zwarich <cwzwarich@uwaterloo.ca> 4 4 * … … 891 891 892 892 if (LegacyProfiler* profiler = vm.enabledProfiler()) 893 profiler->willExecute(callFrame, program->sourceURL(), program->lineNo() );893 profiler->willExecute(callFrame, program->sourceURL(), program->lineNo(), program->startColumn()); 894 894 895 895 // Execute the code: … … 903 903 904 904 if (LegacyProfiler* profiler = vm.enabledProfiler()) 905 profiler->didExecute(callFrame, program->sourceURL(), program->lineNo() );905 profiler->didExecute(callFrame, program->sourceURL(), program->lineNo(), program->startColumn()); 906 906 907 907 return checkedReturn(result); … … 1170 1170 1171 1171 if (LegacyProfiler* profiler = vm.enabledProfiler()) 1172 profiler->willExecute(callFrame, eval->sourceURL(), eval->lineNo() );1172 profiler->willExecute(callFrame, eval->sourceURL(), eval->lineNo(), eval->startColumn()); 1173 1173 1174 1174 // Execute the code: … … 1182 1182 1183 1183 if (LegacyProfiler* profiler = vm.enabledProfiler()) 1184 profiler->didExecute(callFrame, eval->sourceURL(), eval->lineNo() );1184 profiler->didExecute(callFrame, eval->sourceURL(), eval->lineNo(), eval->startColumn()); 1185 1185 1186 1186 return checkedReturn(result); -
trunk/Source/JavaScriptCore/profiler/CallIdentifier.h
r127191 r163140 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.2 * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 WTF_MAKE_FAST_ALLOCATED; 38 38 public: 39 String m_name;40 String m_url;41 unsigned m_lineNumber;42 43 39 CallIdentifier() 44 40 : m_lineNumber(0) 41 , m_columnNumber(0) 45 42 { 46 43 } 47 44 48 CallIdentifier(const String& name, const String& url, int lineNumber)49 : m_ name(name)45 CallIdentifier(const String& functionName, const String& url, unsigned lineNumber, unsigned columnNumber) 46 : m_functionName(functionName) 50 47 , m_url(!url.isNull() ? url : "") 51 48 , m_lineNumber(lineNumber) 49 , m_columnNumber(columnNumber) 52 50 { 53 51 } 54 52 55 inline bool operator==(const CallIdentifier& ci) const { return ci.m_lineNumber == m_lineNumber && ci.m_name == m_name && ci.m_url == m_url; } 56 inline bool operator!=(const CallIdentifier& ci) const { return !(*this == ci); } 53 const String& functionName() const { return m_functionName; } 54 55 const String& url() const { return m_url; } 56 unsigned lineNumber() const { return m_lineNumber; } 57 unsigned columnNumber() const { return m_columnNumber; } 58 59 inline bool operator==(const CallIdentifier& other) const { return other.m_lineNumber == m_lineNumber && other.m_columnNumber == m_columnNumber && other.m_functionName == m_functionName && other.m_url == m_url; } 60 inline bool operator!=(const CallIdentifier& other) const { return !(*this == other); } 57 61 58 62 struct Hash { 59 63 static unsigned hash(const CallIdentifier& key) 60 64 { 61 unsigned hashCodes[ 3] = {62 key.m_ name.impl()->hash(),65 unsigned hashCodes[4] = { 66 key.m_functionName.impl()->hash(), 63 67 key.m_url.impl()->hash(), 64 key.m_lineNumber 68 key.m_lineNumber, 69 key.m_columnNumber 65 70 }; 66 71 return StringHasher::hashMemory<sizeof(hashCodes)>(hashCodes); … … 77 82 const char* c_str() const { return m_name.utf8().data(); } 78 83 #endif 84 85 private: 86 String m_functionName; 87 String m_url; 88 unsigned m_lineNumber; 89 unsigned m_columnNumber; 79 90 }; 80 91 … … 88 99 static void constructDeletedValue(JSC::CallIdentifier& slot) 89 100 { 90 new (NotNull, &slot) JSC::CallIdentifier(String(), String(), std::numeric_limits<unsigned>::max() );101 new (NotNull, &slot) JSC::CallIdentifier(String(), String(), std::numeric_limits<unsigned>::max(), std::numeric_limits<unsigned>::max()); 91 102 } 103 92 104 static bool isDeletedValue(const JSC::CallIdentifier& value) 93 105 { 94 return value. m_name.isNull() && value.m_url.isNull() && value.m_lineNumber== std::numeric_limits<unsigned>::max();106 return value.functionName().isNull() && value.url().isNull() && value.lineNumber() == std::numeric_limits<unsigned>::max() && value.columnNumber() == std::numeric_limits<unsigned>::max(); 95 107 } 96 108 }; … … 99 111 100 112 #endif // CallIdentifier_h 101 -
trunk/Source/JavaScriptCore/profiler/LegacyProfiler.cpp
r162940 r163140 1 1 /* 2 * Copyright (C) 2008, 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2008, 2012, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 48 48 static unsigned ProfilesUID = 0; 49 49 50 static CallIdentifier createCallIdentifierFromFunctionImp(ExecState*, JSObject*, const String& defaultSourceURL, int defaultLineNumber);50 static CallIdentifier createCallIdentifierFromFunctionImp(ExecState*, JSObject*, const String& defaultSourceURL, unsigned defaultLineNumber, unsigned defaultColumnNumber); 51 51 52 52 LegacyProfiler* LegacyProfiler::s_sharedLegacyProfiler = 0; … … 129 129 ASSERT(!m_currentProfiles.isEmpty()); 130 130 131 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::willExecute, createCallIdentifier(callerCallFrame, function, "", 0), callerCallFrame->lexicalGlobalObject()->profileGroup());131 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::willExecute, createCallIdentifier(callerCallFrame, function, ASCIILiteral(""), 0, 0), callerCallFrame->lexicalGlobalObject()->profileGroup()); 132 132 } 133 133 134 void LegacyProfiler::willExecute(ExecState* callerCallFrame, const String& sourceURL, int startingLineNumber)134 void LegacyProfiler::willExecute(ExecState* callerCallFrame, const String& sourceURL, unsigned startingLineNumber, unsigned startingColumnNumber) 135 135 { 136 136 ASSERT(!m_currentProfiles.isEmpty()); 137 137 138 CallIdentifier callIdentifier = createCallIdentifier(callerCallFrame, JSValue(), sourceURL, startingLineNumber );138 CallIdentifier callIdentifier = createCallIdentifier(callerCallFrame, JSValue(), sourceURL, startingLineNumber, startingColumnNumber); 139 139 140 140 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::willExecute, callIdentifier, callerCallFrame->lexicalGlobalObject()->profileGroup()); … … 145 145 ASSERT(!m_currentProfiles.isEmpty()); 146 146 147 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier(callerCallFrame, function, "", 0), callerCallFrame->lexicalGlobalObject()->profileGroup());147 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier(callerCallFrame, function, ASCIILiteral(""), 0, 0), callerCallFrame->lexicalGlobalObject()->profileGroup()); 148 148 } 149 149 150 void LegacyProfiler::didExecute(ExecState* callerCallFrame, const String& sourceURL, int startingLineNumber)150 void LegacyProfiler::didExecute(ExecState* callerCallFrame, const String& sourceURL, unsigned startingLineNumber, unsigned startingColumnNumber) 151 151 { 152 152 ASSERT(!m_currentProfiles.isEmpty()); 153 153 154 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier(callerCallFrame, JSValue(), sourceURL, startingLineNumber ), callerCallFrame->lexicalGlobalObject()->profileGroup());154 dispatchFunctionToProfiles(callerCallFrame, m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier(callerCallFrame, JSValue(), sourceURL, startingLineNumber, startingColumnNumber), callerCallFrame->lexicalGlobalObject()->profileGroup()); 155 155 } 156 156 … … 159 159 ASSERT(!m_currentProfiles.isEmpty()); 160 160 161 dispatchFunctionToProfiles(handlerCallFrame, m_currentProfiles, &ProfileGenerator::exceptionUnwind, createCallIdentifier(handlerCallFrame, JSValue(), "", 0), handlerCallFrame->lexicalGlobalObject()->profileGroup());161 dispatchFunctionToProfiles(handlerCallFrame, m_currentProfiles, &ProfileGenerator::exceptionUnwind, createCallIdentifier(handlerCallFrame, JSValue(), ASCIILiteral(""), 0, 0), handlerCallFrame->lexicalGlobalObject()->profileGroup()); 162 162 } 163 163 164 CallIdentifier LegacyProfiler::createCallIdentifier(ExecState* exec, JSValue functionValue, const String& defaultSourceURL, int defaultLineNumber)164 CallIdentifier LegacyProfiler::createCallIdentifier(ExecState* exec, JSValue functionValue, const String& defaultSourceURL, unsigned defaultLineNumber, unsigned defaultColumnNumber) 165 165 { 166 166 if (!functionValue) 167 return CallIdentifier( GlobalCodeExecution, defaultSourceURL, defaultLineNumber);167 return CallIdentifier(ASCIILiteral(GlobalCodeExecution), defaultSourceURL, defaultLineNumber, defaultColumnNumber); 168 168 if (!functionValue.isObject()) 169 return CallIdentifier( "(unknown)", defaultSourceURL, defaultLineNumber);169 return CallIdentifier(ASCIILiteral("(unknown)"), defaultSourceURL, defaultLineNumber, defaultColumnNumber); 170 170 if (asObject(functionValue)->inherits(JSFunction::info()) || asObject(functionValue)->inherits(InternalFunction::info())) 171 return createCallIdentifierFromFunctionImp(exec, asObject(functionValue), defaultSourceURL, defaultLineNumber );172 return CallIdentifier( makeString("(", asObject(functionValue)->methodTable()->className(asObject(functionValue)), " object)"), defaultSourceURL, defaultLineNumber);171 return createCallIdentifierFromFunctionImp(exec, asObject(functionValue), defaultSourceURL, defaultLineNumber, defaultColumnNumber); 172 return CallIdentifier(asObject(functionValue)->methodTable()->className(asObject(functionValue)), defaultSourceURL, defaultLineNumber, defaultColumnNumber); 173 173 } 174 174 175 CallIdentifier createCallIdentifierFromFunctionImp(ExecState* exec, JSObject* function, const String& defaultSourceURL, int defaultLineNumber)175 CallIdentifier createCallIdentifierFromFunctionImp(ExecState* exec, JSObject* function, const String& defaultSourceURL, unsigned defaultLineNumber, unsigned defaultColumnNumber) 176 176 { 177 177 const String& name = getCalculatedDisplayName(exec, function); 178 178 JSFunction* jsFunction = jsDynamicCast<JSFunction*>(function); 179 179 if (jsFunction && !jsFunction->isHostFunction()) 180 return CallIdentifier(name.isEmpty() ? A nonymousFunction : name, jsFunction->jsExecutable()->sourceURL(), jsFunction->jsExecutable()->lineNo());181 return CallIdentifier(name.isEmpty() ? A nonymousFunction : name, defaultSourceURL, defaultLineNumber);180 return CallIdentifier(name.isEmpty() ? ASCIILiteral(AnonymousFunction) : name, jsFunction->jsExecutable()->sourceURL(), jsFunction->jsExecutable()->lineNo(), jsFunction->jsExecutable()->startColumn()); 181 return CallIdentifier(name.isEmpty() ? ASCIILiteral(AnonymousFunction) : name, defaultSourceURL, defaultLineNumber, defaultColumnNumber); 182 182 } 183 183 -
trunk/Source/JavaScriptCore/profiler/LegacyProfiler.h
r157653 r163140 1 1 /* 2 * Copyright (C) 2008, 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2008, 2012, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 49 49 public: 50 50 JS_EXPORT_PRIVATE static LegacyProfiler* profiler(); 51 static CallIdentifier createCallIdentifier(ExecState*, JSValue, const WTF::String& sourceURL, int lineNumber);51 static CallIdentifier createCallIdentifier(ExecState*, JSValue, const WTF::String& sourceURL, unsigned defaultLineNumber, unsigned defaultColumnNumber); 52 52 53 53 JS_EXPORT_PRIVATE void startProfiling(ExecState*, const WTF::String& title); … … 56 56 57 57 void willExecute(ExecState* callerCallFrame, JSValue function); 58 void willExecute(ExecState* callerCallFrame, const WTF::String& sourceURL, int startingLineNumber);58 void willExecute(ExecState* callerCallFrame, const WTF::String& sourceURL, unsigned startingLineNumber, unsigned startingColumnNumber); 59 59 void didExecute(ExecState* callerCallFrame, JSValue function); 60 void didExecute(ExecState* callerCallFrame, const WTF::String& sourceURL, int startingLineNumber);60 void didExecute(ExecState* callerCallFrame, const WTF::String& sourceURL, unsigned startingLineNumber, unsigned startingColumnNumber); 61 61 62 62 void exceptionUnwind(ExecState* handlerCallFrame); -
trunk/Source/JavaScriptCore/profiler/Profile.cpp
r162796 r163140 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.2 * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 40 40 : m_title(title) 41 41 , m_uid(uid) 42 , m_idleTime(0) 42 43 { 43 44 // FIXME: When multi-threading is supported this will be a vector and calls 44 45 // into the profiler will need to know which thread it is executing on. 45 m_head = ProfileNode::create(0, CallIdentifier("Thread_1", String(), 0 ), 0, 0);46 m_head = ProfileNode::create(0, CallIdentifier("Thread_1", String(), 0, 0), 0, 0); 46 47 } 47 48 -
trunk/Source/JavaScriptCore/profiler/Profile.h
r162796 r163140 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.2 * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 40 40 41 41 const String& title() const { return m_title; } 42 unsigned uid() const { return m_uid; } 43 42 44 ProfileNode* head() const { return m_head.get(); } 43 45 void setHead(PassRefPtr<ProfileNode> head) { m_head = head; } 46 44 47 double totalTime() const { return m_head->totalTime(); } 45 unsigned int uid() const { return m_uid; } 48 49 double idleTime() const { return m_idleTime; } 50 void setIdleTime(double idleTime) { m_idleTime = idleTime; } 46 51 47 52 void forEach(void (ProfileNode::*)()); … … 62 67 RefPtr<ProfileNode> m_head; 63 68 unsigned int m_uid; 69 double m_idleTime; 64 70 }; 65 71 -
trunk/Source/JavaScriptCore/profiler/ProfileGenerator.cpp
r162796 r163140 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.2 * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 41 41 namespace JSC { 42 42 43 static const char* NonJSExecution = "(idle)";44 45 43 PassRefPtr<ProfileGenerator> ProfileGenerator::create(ExecState* exec, const String& title, unsigned uid) 46 44 { … … 51 49 : m_origin(exec ? exec->lexicalGlobalObject() : 0) 52 50 , m_profileGroup(exec ? exec->lexicalGlobalObject()->profileGroup() : 0) 51 , m_foundConsoleStartParent(false) 53 52 { 54 53 m_profile = Profile::create(title, uid); … … 79 78 80 79 unsigned line = 0; 81 unsigned unusedColumn = 0;82 visitor->computeLineAndColumn(line, unusedColumn);83 m_currentNode = ProfileNode::create(m_exec, LegacyProfiler::createCallIdentifier(m_exec, visitor->callee(), visitor->sourceURL(), line ), m_head.get(), m_head.get());80 unsigned column = 0; 81 visitor->computeLineAndColumn(line, column); 82 m_currentNode = ProfileNode::create(m_exec, LegacyProfiler::createCallIdentifier(m_exec, visitor->callee(), visitor->sourceURL(), line, column), m_head.get(), m_head.get()); 84 83 m_head->insertNode(m_currentNode.get()); 85 84 … … 101 100 exec->iterate(functor); 102 101 103 if (!functor.foundParent()) { 104 m_currentNode = ProfileNode::create(exec, LegacyProfiler::createCallIdentifier(exec, JSValue(), String(), 0), m_head.get(), m_head.get()); 105 m_head->insertNode(m_currentNode.get()); 106 } 102 m_foundConsoleStartParent = functor.foundParent(); 107 103 } 108 104 … … 115 111 { 116 112 if (JAVASCRIPTCORE_PROFILE_WILL_EXECUTE_ENABLED()) { 117 CString name = callIdentifier. m_name.utf8();118 CString url = callIdentifier. m_url.utf8();119 JAVASCRIPTCORE_PROFILE_WILL_EXECUTE(m_profileGroup, const_cast<char*>(name.data()), const_cast<char*>(url.data()), callIdentifier. m_lineNumber);113 CString name = callIdentifier.functionName().utf8(); 114 CString url = callIdentifier.url().utf8(); 115 JAVASCRIPTCORE_PROFILE_WILL_EXECUTE(m_profileGroup, const_cast<char*>(name.data()), const_cast<char*>(url.data()), callIdentifier.lineNumber()); 120 116 } 121 117 … … 130 126 { 131 127 if (JAVASCRIPTCORE_PROFILE_DID_EXECUTE_ENABLED()) { 132 CString name = callIdentifier. m_name.utf8();133 CString url = callIdentifier. m_url.utf8();134 JAVASCRIPTCORE_PROFILE_DID_EXECUTE(m_profileGroup, const_cast<char*>(name.data()), const_cast<char*>(url.data()), callIdentifier. m_lineNumber);128 CString name = callIdentifier.functionName().utf8(); 129 CString url = callIdentifier.url().utf8(); 130 JAVASCRIPTCORE_PROFILE_DID_EXECUTE(m_profileGroup, const_cast<char*>(name.data()), const_cast<char*>(url.data()), callIdentifier.lineNumber()); 135 131 } 136 132 … … 141 137 if (m_currentNode->callIdentifier() != callIdentifier) { 142 138 RefPtr<ProfileNode> returningNode = ProfileNode::create(callerCallFrame, callIdentifier, m_head.get(), m_currentNode.get()); 143 returningNode-> setStartTime(m_currentNode->startTime());139 returningNode->lastCall().setStartTime(m_currentNode->lastCall().startTime()); 144 140 returningNode->didExecute(); 145 141 m_currentNode->insertNode(returningNode.release()); … … 165 161 m_profile->forEach(&ProfileNode::stopProfiling); 166 162 167 removeProfileStart(); 168 removeProfileEnd(); 163 if (m_foundConsoleStartParent) { 164 removeProfileStart(); 165 removeProfileEnd(); 166 } 169 167 170 168 ASSERT(m_currentNode); … … 174 172 m_currentNode = m_currentNode->parent(); 175 173 176 if (double headSelfTime = m_head->selfTime()) { 177 RefPtr<ProfileNode> idleNode = ProfileNode::create(0, CallIdentifier(NonJSExecution, String(), 0), m_head.get(), m_head.get()); 178 179 idleNode->setTotalTime(headSelfTime); 180 idleNode->setSelfTime(headSelfTime); 181 174 if (double headSelfTime = m_head->selfTime()) { 182 175 m_head->setSelfTime(0.0); 183 m_ head->addChild(idleNode.release());176 m_profile->setIdleTime(headSelfTime); 184 177 } 185 178 } … … 192 185 currentNode = next; 193 186 194 if (currentNode->callIdentifier(). m_name!= "profile")187 if (currentNode->callIdentifier().functionName() != "profile") 195 188 return; 196 189 … … 207 200 currentNode = next; 208 201 209 if (currentNode->callIdentifier(). m_name!= "profileEnd")202 if (currentNode->callIdentifier().functionName() != "profileEnd") 210 203 return; 211 204 -
trunk/Source/JavaScriptCore/profiler/ProfileGenerator.h
r127191 r163140 73 73 RefPtr<ProfileNode> m_head; 74 74 RefPtr<ProfileNode> m_currentNode; 75 bool m_foundConsoleStartParent; 75 76 }; 76 77 -
trunk/Source/JavaScriptCore/profiler/ProfileNode.cpp
r162797 r163140 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All rights reserved.2 * Copyright (C) 2008, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 35 35 #include <wtf/text/StringHash.h> 36 36 37 #if OS(WINDOWS)38 #include <windows.h>39 #endif40 41 37 using namespace WTF; 42 38 43 39 namespace JSC { 44 45 static double getCount()46 {47 #if OS(WINDOWS)48 static LARGE_INTEGER frequency;49 if (!frequency.QuadPart)50 QueryPerformanceFrequency(&frequency);51 LARGE_INTEGER counter;52 QueryPerformanceCounter(&counter);53 return static_cast<double>(counter.QuadPart) / frequency.QuadPart;54 #else55 return currentTimeMS();56 #endif57 }58 40 59 41 ProfileNode::ProfileNode(ExecState* callerCallFrame, const CallIdentifier& callIdentifier, ProfileNode* headNode, ProfileNode* parentNode) … … 62 44 , m_head(headNode) 63 45 , m_parent(parentNode) 64 , m_nextSibling(0) 65 , m_startTime(0.0) 66 , m_totalTime(0.0) 67 , m_selfTime(0.0) 68 , m_numberOfCalls(0) 46 , m_nextSibling(nullptr) 47 , m_totalTime(0) 48 , m_selfTime(0) 69 49 { 70 50 startTimer(); … … 77 57 , m_parent(nodeToCopy->parent()) 78 58 , m_nextSibling(0) 79 , m_startTime(0.0)80 59 , m_totalTime(nodeToCopy->totalTime()) 81 60 , m_selfTime(nodeToCopy->selfTime()) 82 , m_ numberOfCalls(nodeToCopy->numberOfCalls())61 , m_calls(nodeToCopy->calls()) 83 62 { 84 63 } … … 143 122 void ProfileNode::stopProfiling() 144 123 { 145 if (m_startTime) 124 ASSERT(!m_calls.isEmpty()); 125 126 if (isnan(m_calls.last().totalTime())) 146 127 endAndRecordCall(); 147 148 ASSERT(m_selfTime == 0.0 && m_startTime == 0.0);149 128 150 129 // Because we iterate in post order all of our children have been stopped before us. … … 168 147 void ProfileNode::endAndRecordCall() 169 148 { 170 m_totalTime += m_startTime ? getCount() - m_startTime : 0.0; 171 m_startTime = 0.0; 172 173 ++m_numberOfCalls; 149 Call& last = lastCall(); 150 ASSERT(isnan(last.totalTime())); 151 152 last.setTotalTime(currentTime() - last.startTime()); 153 154 m_totalTime += last.totalTime(); 174 155 } 175 156 176 157 void ProfileNode::startTimer() 177 158 { 178 if (!m_startTime) 179 m_startTime = getCount(); 159 m_calls.append(Call(currentTime())); 180 160 } 181 161 … … 194 174 dataLogF(" "); 195 175 196 dataLogF("Function Name %s % dSelfTime %.3fms/%.3f%% TotalTime %.3fms/%.3f%% Next Sibling %s\n",197 functionName().utf8().data(), 198 m_numberOfCalls, m_selfTime, selfPercent(), m_totalTime, totalPercent(),176 dataLogF("Function Name %s %zu SelfTime %.3fms/%.3f%% TotalTime %.3fms/%.3f%% Next Sibling %s\n", 177 functionName().utf8().data(), 178 numberOfCalls(), m_selfTime, selfPercent(), m_totalTime, totalPercent(), 199 179 m_nextSibling ? m_nextSibling->functionName().utf8().data() : ""); 200 180 -
trunk/Source/JavaScriptCore/profiler/ProfileNode.h
r162796 r163140 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All rights reserved.2 * Copyright (C) 2008, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 55 55 } 56 56 57 struct Call { 58 public: 59 Call(double startTime, double totalTime = NAN) 60 : m_startTime(startTime) 61 , m_totalTime(totalTime) 62 { 63 } 64 65 double startTime() const { return m_startTime; } 66 void setStartTime(double time) { m_startTime = time; } 67 68 double totalTime() const { return m_totalTime; } 69 void setTotalTime(double time) { m_totalTime = time; } 70 71 private: 72 double m_startTime; 73 double m_totalTime; 74 }; 75 57 76 bool operator==(ProfileNode* node) { return m_callIdentifier == node->callIdentifier(); } 58 77 … … 65 84 ExecState* callerCallFrame() const { return m_callerCallFrame; } 66 85 const CallIdentifier& callIdentifier() const { return m_callIdentifier; } 67 unsigned long callUID() const { return m_callIdentifier.hash(); }; 68 const String& functionName() const { return m_callIdentifier.m_name; } 69 const String& url() const { return m_callIdentifier.m_url; } 70 unsigned lineNumber() const { return m_callIdentifier.m_lineNumber; } 86 unsigned id() const { return m_callIdentifier.hash(); } 87 const String& functionName() const { return m_callIdentifier.functionName(); } 88 const String& url() const { return m_callIdentifier.url(); } 89 unsigned lineNumber() const { return m_callIdentifier.lineNumber(); } 90 unsigned columnNumber() const { return m_callIdentifier.columnNumber(); } 71 91 72 92 // Relationships … … 81 101 82 102 // Time members 83 double startTime() const { return m_startTime; }84 void setStartTime(double startTime) { m_startTime = startTime; }85 86 103 double totalTime() const { return m_totalTime; } 87 104 void setTotalTime(double time) { m_totalTime = time; } … … 93 110 double selfPercent() const { return (m_selfTime / (m_head ? m_head->totalTime() : totalTime())) * 100.0; } 94 111 95 unsigned numberOfCalls() const { return m_numberOfCalls; } 112 Vector<Call> calls() const { return m_calls; } 113 Call& lastCall() { ASSERT(!m_calls.isEmpty()); return m_calls.last(); } 114 size_t numberOfCalls() const { return m_calls.size(); } 96 115 97 116 // Children members … … 104 123 105 124 ProfileNode* traverseNextNodePostOrder() const; 106 107 void endAndRecordCall();108 125 109 126 #ifndef NDEBUG … … 121 138 void startTimer(); 122 139 void resetChildrensSiblings(); 140 void endAndRecordCall(); 123 141 124 142 ExecState* m_callerCallFrame; … … 128 146 ProfileNode* m_nextSibling; 129 147 130 double m_startTime;131 148 double m_totalTime; 132 149 double m_selfTime; 133 unsigned m_numberOfCalls;134 150 151 Vector<Call, 1> m_calls; 135 152 Vector<RefPtr<ProfileNode>> m_children; 136 153 }; -
trunk/Source/WebCore/ChangeLog
r163139 r163140 1 2014-01-28 Timothy Hatcher <timothy@apple.com> 2 3 Add column number and call timing support to LegacyProfiler. 4 5 https://bugs.webkit.org/show_bug.cgi?id=127764 6 7 Reviewed by Joseph Pecoraro. 8 9 * bindings/js/ScriptProfile.cpp: 10 (WebCore::ScriptProfile::idleTime): 11 (WebCore::buildInspectorObjectFor): 12 (WebCore::ScriptProfile::buildInspectorObject): 13 * bindings/js/ScriptProfile.h: 14 * inspector/InspectorHeapProfilerAgent.cpp: 15 (WebCore::InspectorHeapProfilerAgent::createSnapshotHeader): 16 * inspector/InspectorProfilerAgent.cpp: 17 (WebCore::InspectorProfilerAgent::createSnapshotHeader): 18 (WebCore::InspectorProfilerAgent::getCPUProfile): 19 * inspector/ScriptProfileNode.idl: 20 * inspector/TimelineRecordFactory.cpp: 21 (WebCore::TimelineRecordFactory::appendProfile): 22 * inspector/protocol/Profiler.json: 23 1 24 2014-01-26 Timothy Hatcher <timothy@apple.com> 2 25 -
trunk/Source/WebCore/bindings/js/ScriptProfile.cpp
r163024 r163140 1 1 /* 2 * Copyright (C) 2010 Apple Inc. All rights reserved.2 * Copyright (C) 2010, 2014 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2010 Google Inc. All rights reserved. 4 4 * … … 69 69 double ScriptProfile::idleTime() const 70 70 { 71 return 0.0;71 return m_profile->idleTime(); 72 72 } 73 73 74 74 #if ENABLE(INSPECTOR) 75 static PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode > buildInspectorObjectFor(const JSC::ProfileNode* node)75 static PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNodeCall> buildInspectorObjectFor(const JSC::ProfileNode::Call& call) 76 76 { 77 typedef Vector<RefPtr<JSC::ProfileNode>> ProfileNodesList; 78 const ProfileNodesList& nodeChildren = node->children(); 79 ProfileNodesList::const_iterator end = nodeChildren.end(); 80 RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>> children = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>::create(); 81 for (ProfileNodesList::const_iterator iter = nodeChildren.begin(); iter != end; ++iter) 82 children->addItem(buildInspectorObjectFor(iter->get())); 83 84 RefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> result = Inspector::TypeBuilder::Profiler::CPUProfileNode::create() 85 .setFunctionName(node->functionName()) 86 .setUrl(node->url()) 87 .setLineNumber(node->lineNumber()) 88 .setTotalTime(node->totalTime()) 89 .setSelfTime(node->selfTime()) 90 .setNumberOfCalls(node->numberOfCalls()) 91 .setCallUID(node->callIdentifier().hash()) 92 .setChildren(children.release()); 77 RefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNodeCall> result = Inspector::TypeBuilder::Profiler::CPUProfileNodeCall::create() 78 .setStartTime(call.startTime()) 79 .setTotalTime(call.totalTime()); 93 80 return result.release(); 94 81 } 95 82 96 PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> ScriptProfile::buildInspectorObjectForHead() const 83 static PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> buildInspectorObjectFor(const JSC::ProfileNode* node) 97 84 { 98 return buildInspectorObjectFor(m_profile->head()); 85 RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNodeCall>> calls = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNodeCall>::create(); 86 for (const JSC::ProfileNode::Call& call : node->calls()) 87 calls->addItem(buildInspectorObjectFor(call)); 88 89 RefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> result = Inspector::TypeBuilder::Profiler::CPUProfileNode::create() 90 .setId(node->id()) 91 .setCalls(calls.release()); 92 93 if (!node->functionName().isEmpty()) 94 result->setFunctionName(node->functionName()); 95 96 if (!node->url().isEmpty()) { 97 result->setUrl(node->url()); 98 result->setLineNumber(node->lineNumber()); 99 result->setColumnNumber(node->columnNumber()); 100 } 101 102 if (!node->children().isEmpty()) { 103 RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>> children = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>::create(); 104 for (RefPtr<JSC::ProfileNode> profileNode : node->children()) 105 children->addItem(buildInspectorObjectFor(profileNode.get())); 106 result->setChildren(children); 107 } 108 109 return result.release(); 99 110 } 100 111 101 PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfile Node> ScriptProfile::buildInspectorObjectForBottomUpHead() const112 PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfile> ScriptProfile::buildInspectorObject() const 102 113 { 103 return 0; 114 RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>> rootNodes = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>::create(); 115 for (RefPtr<JSC::ProfileNode> profileNode : m_profile->head()->children()) 116 rootNodes->addItem(buildInspectorObjectFor(profileNode.get())); 117 118 RefPtr<Inspector::TypeBuilder::Profiler::CPUProfile> result = Inspector::TypeBuilder::Profiler::CPUProfile::create() 119 .setRootNodes(rootNodes); 120 121 if (m_profile->idleTime()) 122 result->setIdleTime(m_profile->idleTime()); 123 124 return result.release(); 104 125 } 105 126 #endif -
trunk/Source/WebCore/bindings/js/ScriptProfile.h
r163024 r163140 1 1 /* 2 * Copyright (C) 2010 Apple Inc. All rights reserved.2 * Copyright (C) 2010, 2014 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2010 Google Inc. All rights reserved. 4 4 * … … 55 55 56 56 #if ENABLE(INSPECTOR) 57 PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> buildInspectorObjectForHead() const; 58 PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> buildInspectorObjectForBottomUpHead() const; 57 PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfile> buildInspectorObject() const; 59 58 #endif 60 59 … … 65 64 }; 66 65 67 68 66 } // namespace WebCore 69 67 -
trunk/Source/WebCore/inspector/InspectorHeapProfilerAgent.cpp
r163024 r163140 104 104 .setUid(snapshot.uid()) 105 105 .setTitle(snapshot.title()); 106 header->setMaxJSObjectId(snapshot.maxSnapshotJSObjectId());107 106 return header.release(); 108 107 } -
trunk/Source/WebCore/inspector/InspectorProfilerAgent.cpp
r163024 r163140 187 187 .setUid(snapshot.uid()) 188 188 .setTitle(snapshot.title()); 189 header->setMaxJSObjectId(snapshot.maxSnapshotJSObjectId());190 189 return header.release(); 191 190 } … … 274 273 return; 275 274 } 276 profileObject = Inspector::TypeBuilder::Profiler::CPUProfile::create(); 277 profileObject->setHead(it->value->buildInspectorObjectForHead()); 278 profileObject->setIdleTime(it->value->idleTime()); 275 276 profileObject = it->value->buildInspectorObject(); 279 277 } 280 278 -
trunk/Source/WebCore/inspector/ScriptProfileNode.idl
r163024 r163140 29 29 ImplementationLacksVTable 30 30 ] interface ScriptProfileNode { 31 readonly attribute unsigned long id; 32 31 33 readonly attribute DOMString functionName; 34 32 35 readonly attribute DOMString url; 33 36 readonly attribute unsigned long lineNumber; 37 readonly attribute unsigned long columnNumber; 38 34 39 readonly attribute double totalTime; 35 40 readonly attribute double selfTime; 41 36 42 readonly attribute unsigned long numberOfCalls; 43 37 44 sequence<ScriptProfileNode> children(); 38 readonly attribute unsigned long callUID;39 45 }; 40 -
trunk/Source/WebCore/inspector/TimelineRecordFactory.cpp
r163139 r163140 255 255 void TimelineRecordFactory::appendProfile(InspectorObject* data, PassRefPtr<ScriptProfile> profile) 256 256 { 257 data->setValue( "profile", profile->buildInspectorObjectForHead());257 data->setValue(ASCIILiteral("profile"), profile->buildInspectorObject()); 258 258 } 259 259 -
trunk/Source/WebCore/inspector/protocol/Profiler.json
r162796 r163140 7 7 "description": "Profile header.", 8 8 "properties": [ 9 { "name": "typeId", "type": "string", "enum": ["CPU", " CSS", "HEAP"], "description": "Profile type name." },9 { "name": "typeId", "type": "string", "enum": ["CPU", "HEAP"], "description": "Profile type name." }, 10 10 { "name": "title", "type": "string", "description": "Profile title." }, 11 { "name": "uid", "type": "integer", "description": "Unique identifier of the profile." }, 12 { "name": "maxJSObjectId", "type": "integer", "optional": true, "description": "Last seen JS object Id." } 11 { "name": "uid", "type": "integer", "description": "Unique identifier of the profile." } 12 ] 13 }, 14 { 15 "id": "CPUProfileNodeCall", 16 "type": "object", 17 "description": "CPU Profile call info. Holds time information for a specific call that happened on a node.", 18 "properties": [ 19 { "name": "startTime", "type": "number", "description": "Start time for the call." }, 20 { "name": "totalTime", "type": "number", "description": "Total execution time for the call." } 13 21 ] 14 22 }, … … 18 26 "description": "CPU Profile node. Holds callsite information, execution statistics and child nodes.", 19 27 "properties": [ 20 { "name": "functionName", "type": "string", "description": "Function name." }, 21 { "name": "url", "type": "string", "description": "URL." }, 22 { "name": "lineNumber", "type": "integer", "description": "Line number." }, 23 { "name": "totalTime", "type": "number", "description": "Total execution time." }, 24 { "name": "selfTime", "type": "number", "description": "Self time." }, 25 { "name": "numberOfCalls", "type": "integer", "description": "Number of calls." }, 26 { "name": "callUID", "type": "number", "description": "Call UID." }, 27 { "name": "children", "type": "array", "items": { "$ref": "CPUProfileNode" }, "description": "Child nodes." }, 28 { "name": "id", "optional": true, "type": "integer", "description": "Unique id of the node." } 28 { "name": "id", "type": "integer", "description": "Unique identifier for this call site." }, 29 { "name": "calls", "type": "array", "items": { "$ref": "CPUProfileNodeCall" }, "description": "Calls making up this node." }, 30 { "name": "functionName", "type": "string", "optional": true, "description": "Function name." }, 31 { "name": "url", "type": "string", "optional": true, "description": "URL." }, 32 { "name": "lineNumber", "type": "integer", "optional": true, "description": "Line number." }, 33 { "name": "columnNumber", "type": "integer", "optional": true, "description": "Column number." }, 34 { "name": "children", "type": "array", "items": { "$ref": "CPUProfileNode" }, "optional": true, "description": "Child nodes." } 29 35 ] 30 36 }, … … 34 40 "description": "Profile.", 35 41 "properties": [ 36 { "name": "head", "$ref": "CPUProfileNode", "optional": true }, 37 { "name": "idleTime", "type": "number", "optional": true }, 38 { "name": "samples", "optional": true, "type": "array", "items": { "type": "integer" }, "description": "Ids of samples top nodes." } 42 { "name": "rootNodes", "type": "array", "items": { "$ref": "CPUProfileNode" }, "description": "Top level nodes in the stack." }, 43 { "name": "idleTime", "type": "number", "optional": true } 39 44 ] 40 45 },
Note: See TracChangeset
for help on using the changeset viewer.