Chromium Code Reviews| 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 |