nashorn/test/script/basic/NASHORN-188.js.EXPECTED
author attila
Thu, 31 Jan 2013 18:34:42 +0100
changeset 16206 83069fa0935b
parent 16147 e63b63819133
permissions -rw-r--r--
8006529: Methods always get callee - it should be conditional Summary: This commit streamlines the bytecode function signatures, prologue, local variable use, scope creation, and invocation. It started out quite innocently when we noticed that we always emit __callee__ parameters for all functions even when they are not needed, but it turned out to be quite a deep rabbit hole. In the end, I identified exact conditions when functions need to have a callee parameter, when they need to receive parent scope, when they need to create their own scope, when they need to have variable arity signature, and when they need to have an "arguments" object, and made sure that callee parameters in signatures only show up when they are needed, that parent function's scope is only passed to a child function when it is needed, that the function only creates its own scope when it is needed. In crypto.js, the number of scopes dropped from 446 to 244, and the number of callees dropped from 315 to 145. Reviewed-by: jlaskey, lagergren
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16147
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     1
0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     2
0.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     3
0.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     4
0.000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     5
0.0000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     6
0e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     7
0.0e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     8
0.00e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
     9
0.000e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    10
0.0000000000e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    11
0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    12
0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    13
0.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    14
0.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    15
0.000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    16
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    17
0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    18
0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    19
0.10
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    20
0.100
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    21
0.1000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    22
1e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    23
1.0e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    24
1.00e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    25
1.000e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    26
1.0000000000e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    27
0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    28
0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    29
0.10
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    30
0.100
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    31
0.1000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    32
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    33
0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    34
0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    35
0.08
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    36
0.083
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    37
0.0833333333
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    38
8.333333333333333e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    39
8.3e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    40
8.33e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    41
8.333e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    42
8.3333333333e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    43
0.08333333333333333
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    44
0.08
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    45
0.083
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    46
0.0833
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    47
0.08333333333
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    48
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    49
1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    50
1.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    51
1.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    52
1.000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    53
1.0000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    54
1e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    55
1.0e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    56
1.00e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    57
1.000e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    58
1.0000000000e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    59
1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    60
1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    61
1.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    62
1.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    63
1.000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    64
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    65
123456789000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    66
123456789000.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    67
123456789000.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    68
123456789000.000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    69
123456789000.0000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    70
1.23456789e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    71
1.2e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    72
1.23e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    73
1.235e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    74
1.2345678900e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    75
123456789000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    76
1e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    77
1.2e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    78
1.23e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    79
1.234567890e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    80
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    81
123456
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    82
123456.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    83
123456.12
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    84
123456.123
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    85
123456.1234560000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    86
1.23456123456e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    87
1.2e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    88
1.23e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    89
1.235e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    90
1.2345612346e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    91
123456.123456
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    92
1e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    93
1.2e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    94
1.23e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    95
123456.1235
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    96
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    97
-0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    98
-0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
    99
-0.10
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   100
-0.100
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   101
-0.1000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   102
-1e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   103
-1.0e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   104
-1.00e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   105
-1.000e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   106
-1.0000000000e-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   107
-0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   108
-0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   109
-0.10
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   110
-0.100
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   111
-0.1000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   112
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   113
-0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   114
-0.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   115
-0.08
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   116
-0.083
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   117
-0.0833333333
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   118
-8.333333333333333e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   119
-8.3e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   120
-8.33e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   121
-8.333e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   122
-8.3333333333e-2
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   123
-0.08333333333333333
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   124
-0.08
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   125
-0.083
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   126
-0.0833
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   127
-0.08333333333
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   128
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   129
-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   130
-1.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   131
-1.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   132
-1.000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   133
-1.0000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   134
-1e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   135
-1.0e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   136
-1.00e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   137
-1.000e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   138
-1.0000000000e+0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   139
-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   140
-1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   141
-1.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   142
-1.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   143
-1.000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   144
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   145
-123456789000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   146
-123456789000.0
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   147
-123456789000.00
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   148
-123456789000.000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   149
-123456789000.0000000000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   150
-1.23456789e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   151
-1.2e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   152
-1.23e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   153
-1.235e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   154
-1.2345678900e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   155
-123456789000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   156
-1e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   157
-1.2e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   158
-1.23e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   159
-1.234567890e+11
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   160
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   161
-123456
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   162
-123456.1
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   163
-123456.12
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   164
-123456.123
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   165
-123456.1234560000
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   166
-1.23456123456e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   167
-1.2e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   168
-1.23e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   169
-1.235e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   170
-1.2345612346e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   171
-123456.123456
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   172
-1e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   173
-1.2e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   174
-1.23e+5
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   175
-123456.1235
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   176
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   177
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   178
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   179
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   180
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   181
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   182
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   183
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   184
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   185
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   186
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   187
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   188
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   189
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   190
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   191
NaN
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   192
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   193
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   194
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   195
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   196
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   197
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   198
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   199
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   200
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   201
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   202
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   203
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   204
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   205
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   206
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   207
Infinity
e63b63819133 8005403: Open-source Nashorn
jlaskey
parents:
diff changeset
   208