aboutsummaryrefslogtreecommitdiff
path: root/src/library.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/library.js')
-rw-r--r--src/library.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js
index faa86c68..4d230bcc 100644
--- a/src/library.js
+++ b/src/library.js
@@ -5417,6 +5417,36 @@ LibraryManager.library = {
EMSCRIPTEN_COMMENT__inline: function(param) {
param = stripCorrections(param);
return '// ' + Variables.globals[param].value.text.replace('\\00', '') + ' ';
+ },
+
+ $Profiling: {
+ max_: 0,
+ times: null,
+ invalid: 0,
+ dump: function() {
+ if (Profiling.invalid) {
+ print('Invalid # of calls to Profiling begin and end!');
+ return;
+ }
+ print('Profiling data:')
+ for (var i = 0; i < Profiling.max_; i++) {
+ print('Block ' + i + ': ' + Profiling.times[i]);
+ }
+ }
+ },
+ EMSCRIPTEN_PROFILE_INIT__deps: ['$Profiling'],
+ EMSCRIPTEN_PROFILE_INIT: function(max_) {
+ Profiling.max_ = max_;
+ Profiling.times = new Array(max_);
+ for (var i = 0; i < max_; i++) Profiling.times[i] = 0;
+ },
+ EMSCRIPTEN_PROFILE_BEGIN__inline: function(id) {
+ return 'Profiling.times[' + id + '] -= Date.now();'
+ + 'Profiling.invalid++;'
+ },
+ EMSCRIPTEN_PROFILE_END__inline: function(id) {
+ return 'Profiling.times[' + id + '] += Date.now();'
+ + 'Profiling.invalid--;'
}
};