← Index
NYTProf Performance Profile   « line view »
For webmerge/scripts/webmerge.pl
  Run on Mon Oct 7 02:42:42 2013
Reported on Mon Oct 7 03:03:22 2013

Filename/home/ocbnet/domain/ocbnet.ch/vhost/webmerge/htdocs/webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
StatementsExecuted 32 statements in 5.11ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.45ms4.60msRTP::Webmerge::Merge::JS::::BEGIN@70RTP::Webmerge::Merge::JS::BEGIN@70
11192µs377µsRTP::Webmerge::Merge::JS::::BEGIN@8RTP::Webmerge::Merge::JS::BEGIN@8
11185µs859µsRTP::Webmerge::Merge::JS::::BEGIN@41RTP::Webmerge::Merge::JS::BEGIN@41
11177µs77µsRTP::Webmerge::Merge::JS::::BEGIN@18.17RTP::Webmerge::Merge::JS::BEGIN@18.17
11165µs313µsRTP::Webmerge::Merge::JS::::BEGIN@62RTP::Webmerge::Merge::JS::BEGIN@62
11155µs89µsRTP::Webmerge::Merge::JS::::BEGIN@10RTP::Webmerge::Merge::JS::BEGIN@10
11155µs639µsRTP::Webmerge::Merge::JS::::BEGIN@42RTP::Webmerge::Merge::JS::BEGIN@42
11154µs654µsRTP::Webmerge::Merge::JS::::BEGIN@43RTP::Webmerge::Merge::JS::BEGIN@43
11152µs139µsRTP::Webmerge::Merge::JS::::BEGIN@9RTP::Webmerge::Merge::JS::BEGIN@9
11134µs34µsRTP::Webmerge::Merge::JS::::BEGIN@24RTP::Webmerge::Merge::JS::BEGIN@24
11124µs24µsRTP::Webmerge::Merge::JS::::BEGIN@21RTP::Webmerge::Merge::JS::BEGIN@21
11123µs23µsRTP::Webmerge::Merge::JS::::BEGIN@15RTP::Webmerge::Merge::JS::BEGIN@15
11122µs22µsRTP::Webmerge::Merge::JS::::BEGIN@18RTP::Webmerge::Merge::JS::BEGIN@18
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:112]RTP::Webmerge::Merge::JS::__ANON__[:112]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:74]RTP::Webmerge::Merge::JS::__ANON__[:74]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:75]RTP::Webmerge::Merge::JS::__ANON__[:75]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:76]RTP::Webmerge::Merge::JS::__ANON__[:76]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:77]RTP::Webmerge::Merge::JS::__ANON__[:77]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:78]RTP::Webmerge::Merge::JS::__ANON__[:78]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:87]RTP::Webmerge::Merge::JS::__ANON__[:87]
0000s0sRTP::Webmerge::Merge::JS::::__ANON__[:92]RTP::Webmerge::Merge::JS::__ANON__[:92]
0000s0sRTP::Webmerge::Merge::JS::::getLicenseRTP::Webmerge::Merge::JS::getLicense
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1###################################################################################################
2# Copyright 2013 by Marcel Greter
3# This file is part of Webmerge (GPL3)
4###################################################################################################
5package RTP::Webmerge::Merge::JS;
6###################################################################################################
7
82166µs2662µs
# spent 377µs (92+285) within RTP::Webmerge::Merge::JS::BEGIN@8 which was called: # once (92µs+285µs) by RTP::Webmerge::Merge::BEGIN@68 at line 8
use Carp;
# spent 377µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@8 # spent 284µs making 1 call to Exporter::import
92162µs2226µs
# spent 139µs (52+87) within RTP::Webmerge::Merge::JS::BEGIN@9 which was called: # once (52µs+87µs) by RTP::Webmerge::Merge::BEGIN@68 at line 9
use strict;
# spent 139µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@9 # spent 87µs making 1 call to strict::import
102194µs2122µs
# spent 89µs (55+33) within RTP::Webmerge::Merge::JS::BEGIN@10 which was called: # once (55µs+33µs) by RTP::Webmerge::Merge::BEGIN@68 at line 10
use warnings;
# spent 89µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@10 # spent 33µs making 1 call to warnings::import
11
12###################################################################################################
13
14# define our version string
151145µs123µs
# spent 23µs within RTP::Webmerge::Merge::JS::BEGIN@15 which was called: # once (23µs+0s) by RTP::Webmerge::Merge::BEGIN@68 at line 15
BEGIN { $RTP::Webmerge::Merge::JS::VERSION = "0.7.0" }
# spent 23µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@15
16
17# load exporter and inherit from it
183412µs299µs
# spent 77µs within RTP::Webmerge::Merge::JS::BEGIN@18.17 which was called: # once (77µs+0s) by RTP::Webmerge::Merge::BEGIN@68 at line 18 # spent 22µs within RTP::Webmerge::Merge::JS::BEGIN@18 which was called: # once (22µs+0s) by RTP::Webmerge::Merge::BEGIN@68 at line 18
BEGIN { use Exporter qw(); our @ISA = qw(Exporter) }
# spent 77µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@18.17 # spent 22µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@18
19
20# define our functions to be exported
211217µs124µs
# spent 24µs within RTP::Webmerge::Merge::JS::BEGIN@21 which was called: # once (24µs+0s) by RTP::Webmerge::Merge::BEGIN@68 at line 21
BEGIN { our @EXPORT = qw(); }
# spent 24µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@21
22
23# define our functions to be exported
241553µs134µs
# spent 34µs within RTP::Webmerge::Merge::JS::BEGIN@24 which was called: # once (34µs+0s) by RTP::Webmerge::Merge::BEGIN@68 at line 24
BEGIN { our @EXPORT_OK = qw(); }
# spent 34µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@24
25
26###################################################################################################
27
28# parse license from code
29sub getLicense
30{
31 # map out the licenses from inputs
32 return
33 # remove everything but the very first comment (first line!)
34 ${$_->{'data'}} =~m /\A\s*(\/\*(?:\n|\r|.)+?\*\/)\s*(?:\n|\r|.)*\z/m
35 # return header with given input path and license or nothing
36 ? ( '/* license for ' . $_->{'web_path'} . ' */', $1, '' ) : ();
37}
38
39###################################################################################################
40
412209µs21.63ms
# spent 859µs (85+775) within RTP::Webmerge::Merge::JS::BEGIN@41 which was called: # once (85µs+775µs) by RTP::Webmerge::Merge::BEGIN@68 at line 41
use RTP::Webmerge::Merge qw(%joiner %includer);
# spent 859µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@41 # spent 775µs making 1 call to Exporter::import
422178µs21.22ms
# spent 639µs (55+584) within RTP::Webmerge::Merge::JS::BEGIN@42 which was called: # once (55µs+584µs) by RTP::Webmerge::Merge::BEGIN@68 at line 42
use RTP::Webmerge::Merge qw(%prefixer %processor %suffixer);
# spent 639µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@42 # spent 584µs making 1 call to Exporter::import
432313µs21.26ms
# spent 654µs (54+601) within RTP::Webmerge::Merge::JS::BEGIN@43 which was called: # once (54µs+601µs) by RTP::Webmerge::Merge::BEGIN@68 at line 43
use RTP::Webmerge::Merge qw(%reader %writer %importer %exporter);
# spent 654µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@43 # spent 601µs making 1 call to Exporter::import
44
45###################################################################################################
46
47# headJS bit to overwrite
48# default JavaScript loader
4915µsmy $headJS = "
50
51// change loadJS to head.js
52webmerge.loadJS = head.hs;
53
54";
55
56###################################################################################################
57
58# define joiner string
5916µs$joiner{'js'} = ";\n";
60
61# load IO functions
622453µs2561µs
# spent 313µs (65+248) within RTP::Webmerge::Merge::JS::BEGIN@62 which was called: # once (65µs+248µs) by RTP::Webmerge::Merge::BEGIN@68 at line 62
use RTP::Webmerge::IO::JS;
# spent 313µs making 1 call to RTP::Webmerge::Merge::JS::BEGIN@62 # spent 248µs making 1 call to Exporter::import
63
64# assign IO functions
6517µs$reader{'js'} = \&readJS;
6614µs$importer{'js'} = \&importJS;
6714µs$exporter{'js'} = \&exportJS;
6814µs$writer{'js'} = \&writeJS;
69
7021.97ms25.13ms
# spent 4.60ms (2.45+2.15) within RTP::Webmerge::Merge::JS::BEGIN@70 which was called: # once (2.45ms+2.15ms) by RTP::Webmerge::Merge::BEGIN@68 at line 70
use RTP::Webmerge::Include::JS;
# spent 4.60ms making 1 call to RTP::Webmerge::Merge::JS::BEGIN@70 # spent 534µs making 1 call to Exporter::import
71
72$includer{'js'} =
73{
74 'dev' => sub { includeJS($_) },
75 'join' => sub { ${$_->{'data'}} },
76 'minify' => sub { ${$_->{'data'}} },
77 'compile' => sub { ${$_->{'data'}} },
78 'license' => sub { getLicense($_) }
79136µs};
80
81$processor{'js'} =
82{
83 'minify' => sub
84 {
85 require JavaScript::Minifier;
86 &JavaScript::Minifier::minify('input' => $_[0]);
87 },
88 'compile' => sub
89 {
90 require RTP::Webmerge::Compile::JS;
91 &RTP::Webmerge::Compile::JS::compileJS;
92 }
93116µs};
94
95$prefixer{'js'} =
96{
97 'dev' => sub
98 {
99 # get passed input variables
100 my ($data, $merge, $config) = @_;
101 # check if the merged file has been set to load deferred
102 # my $deferred = $merge->{'defer'} && lc $merge->{'defer'} eq 'true';
103 # assertion that we have at least one defered include, otherwise
104 # it may never fire the ready event (happens with head.js)
105 # $deferred = 0 if scalar $collect->('input') == 0;
106 # insert the javascript header
107 my $prefix = $js_dev_header . ";\n";
108 # overwrite loader with defered head.js loader
109 # $prefix .= $headJS if $deferred;
110 # prefix the new header to data
111 ${$data} = $prefix . ${$data};
112 }
113114µs};
114
115###################################################################################################
116###################################################################################################
117143µs1;