OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2014 the V8 project authors. All rights reserved. | 2 # Copyright 2014 the V8 project authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import itertools | 6 import itertools |
7 import js2c | 7 import js2c |
8 import multiprocessing | 8 import multiprocessing |
9 import optparse | 9 import optparse |
10 import os | 10 import os |
(...skipping 29 matching lines...) Expand all Loading... | |
40 # functions they define are so trivial that it's unclear how much benefit | 40 # functions they define are so trivial that it's unclear how much benefit |
41 # that would provide: | 41 # that would provide: |
42 # ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION | 42 # ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION |
43 # FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION | 43 # FIXED_TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION |
44 # TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION | 44 # TYPED_ARRAYS_CHECK_RUNTIME_FUNCTION |
45 | 45 |
46 # Counts of functions in each detection state. These are used to assert | 46 # Counts of functions in each detection state. These are used to assert |
47 # that the parser doesn't bit-rot. Change the values as needed when you add, | 47 # that the parser doesn't bit-rot. Change the values as needed when you add, |
48 # remove or change runtime functions, but make sure we don't lose our ability | 48 # remove or change runtime functions, but make sure we don't lose our ability |
49 # to parse them! | 49 # to parse them! |
50 EXPECTED_FUNCTION_COUNT = 358 | 50 EXPECTED_FUNCTION_COUNT = 415 |
51 EXPECTED_FUZZABLE_COUNT = 326 | 51 EXPECTED_FUZZABLE_COUNT = 330 |
52 EXPECTED_CCTEST_COUNT = 6 | 52 EXPECTED_CCTEST_COUNT = 6 |
53 EXPECTED_UNKNOWN_COUNT = 4 | 53 EXPECTED_UNKNOWN_COUNT = 4 |
54 EXPECTED_BUILTINS_COUNT = 800 | 54 EXPECTED_BUILTINS_COUNT = 800 |
55 | 55 |
56 | 56 |
57 # Don't call these at all. | 57 # Don't call these at all. |
58 BLACKLISTED = [ | 58 BLACKLISTED = [ |
59 "Abort", # Kills the process. | 59 "Abort", # Kills the process. |
60 "AbortJS", # Kills the process. | 60 "AbortJS", # Kills the process. |
61 "CompileForOnStackReplacement", # Riddled with ASSERTs. | 61 "CompileForOnStackReplacement", # Riddled with ASSERTs. |
(...skipping 17 matching lines...) Expand all Loading... | |
79 "LiveEditPatchFunctionPositions", | 79 "LiveEditPatchFunctionPositions", |
80 "LiveEditReplaceFunctionCode", | 80 "LiveEditReplaceFunctionCode", |
81 "LiveEditReplaceRefToNestedFunction", | 81 "LiveEditReplaceRefToNestedFunction", |
82 "LiveEditReplaceScript", | 82 "LiveEditReplaceScript", |
83 "LiveEditRestartFrame", | 83 "LiveEditRestartFrame", |
84 "SetScriptBreakPoint", | 84 "SetScriptBreakPoint", |
85 | 85 |
86 # TODO(jkummerow): Fix these and un-blacklist them! | 86 # TODO(jkummerow): Fix these and un-blacklist them! |
87 "CreateDateTimeFormat", | 87 "CreateDateTimeFormat", |
88 "CreateNumberFormat", | 88 "CreateNumberFormat", |
89 | |
90 # TODO(danno): Fix these internal function that are only callable form stubs | |
Jakob Kummerow
2014/06/24 16:28:09
nit: "functions", "from"
| |
91 # and un-blacklist them! | |
92 "NumberToString", | |
93 "RxegExpConstructResult", | |
94 "RegExpExec", | |
95 "StringAdd", | |
96 "SubString", | |
97 "StringCompare", | |
98 "StringCharCodeAt", | |
99 "GetFromCache", | |
100 | |
101 # Compilation | |
102 "CompileUnoptimized", | |
103 "CompileOptimized", | |
104 "TryInstallOptimizedCode", | |
105 "NotifyDeoptimized", | |
106 "NotifyStubFailure", | |
107 | |
108 # Utilities | |
109 "AllocateInNewSpace", | |
110 "AllocateInTargetSpace", | |
111 "AllocateHeapNumber", | |
112 "NumberToSmi", | |
113 "NumberToStringSkipCache", | |
114 | |
115 "NewSloppyArguments", | |
116 "NewStrictArguments", | |
117 | |
118 # Harmony | |
119 "CreateJSGeneratorObject", | |
120 "SuspendJSGeneratorObject", | |
121 "ResumeJSGeneratorObject", | |
122 "ThrowGeneratorStateError", | |
123 | |
124 # Arrays | |
125 "ArrayConstructor", | |
126 "InternalArrayConstructor", | |
127 | |
128 # Literals | |
129 "MaterializeRegExpLiteral", | |
130 "CreateObjectLiteral", | |
131 "CreateArrayLiteral", | |
132 "CreateArrayLiteralStubBailout", | |
133 | |
134 # Statements | |
135 "NewClosure", | |
136 "NewClosureFromStubFailure", | |
137 "NewObject", | |
138 "NewObjectWithAllocationSite", | |
139 "FinalizeInstanceSize", | |
140 "Throw", | |
141 "ReThrow", | |
142 "ThrowReferenceError", | |
143 "ThrowNotDateError", | |
144 "StackGuard", | |
145 "Interrupt", | |
146 "PromoteScheduledException", | |
147 | |
148 # Contexts | |
149 "NewGlobalContext", | |
150 "NewFunctionContext", | |
151 "PushWithContext", | |
152 "PushCatchContext", | |
153 "PushBlockContext", | |
154 "PushModuleContext", | |
155 "DeleteContextSlot", | |
156 "LoadContextSlot", | |
157 "LoadContextSlotNoReferenceError", | |
158 "StoreContextSlot", | |
159 | |
160 # Declarations | |
161 "DeclareGlobals", | |
162 "DeclareModules", | |
163 "DeclareContextSlot", | |
164 "InitializeConstGlobal", | |
165 "InitializeConstContextSlot", | |
166 | |
167 # Eval | |
168 "ResolvePossiblyDirectEval", | |
169 | |
170 # Maths | |
171 "MathPowSlow", | |
172 "MathPowRT" | |
89 ] | 173 ] |
90 | 174 |
91 | 175 |
92 # These will always throw. | 176 # These will always throw. |
93 THROWS = [ | 177 THROWS = [ |
94 "CheckExecutionState", # Needs to hit a break point. | 178 "CheckExecutionState", # Needs to hit a break point. |
95 "CheckIsBootstrapping", # Needs to be bootstrapping. | 179 "CheckIsBootstrapping", # Needs to be bootstrapping. |
96 "DebugEvaluate", # Needs to hit a break point. | 180 "DebugEvaluate", # Needs to hit a break point. |
97 "DebugEvaluateGlobal", # Needs to hit a break point. | 181 "DebugEvaluateGlobal", # Needs to hit a break point. |
98 "DebugIndexedInterceptorElementValue", # Needs an indexed interceptor. | 182 "DebugIndexedInterceptorElementValue", # Needs an indexed interceptor. |
(...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1313 for i in range(len(processes)): | 1397 for i in range(len(processes)): |
1314 processes[i].join() | 1398 processes[i].join() |
1315 except KeyboardInterrupt: | 1399 except KeyboardInterrupt: |
1316 stop_running.set() | 1400 stop_running.set() |
1317 for i in range(len(processes)): | 1401 for i in range(len(processes)): |
1318 processes[i].join() | 1402 processes[i].join() |
1319 return 0 | 1403 return 0 |
1320 | 1404 |
1321 if __name__ == "__main__": | 1405 if __name__ == "__main__": |
1322 sys.exit(Main()) | 1406 sys.exit(Main()) |
OLD | NEW |