[Interpreter]: Add ignition blacklist to mjsunit.status and test262.status.

Adds a blacklist of tests which are currently unsupported or broken in Ignition to
the mjsunit and test262 test status.

Also removes --ignition-script-filter flag, and adds a
--ignition_fallback_on_eval_and_catch flag which fallsback to fullcodegen for
functions which call eval or contain a catch block.

BUG=v8:4280
LOG=N

Review URL: https://codereview.chromium.org/1420963009

Cr-Commit-Position: refs/heads/master@{#31864}
This commit is contained in:
rmcilroy 2015-11-06 10:52:32 -08:00 committed by Commit bot
parent 7b556cd24f
commit fb9ad89fea
8 changed files with 431 additions and 38 deletions

View File

@ -691,24 +691,6 @@ static void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
}
// Checks whether top level functions should be passed by {raw_filter}.
// TODO(rmcilroy): Remove filtering once ignition can handle test262 harness.
static bool TopLevelFunctionPassesFilter(const char* raw_filter) {
Vector<const char> filter = CStrVector(raw_filter);
return (filter.length() == 0) || (filter.length() == 1 && filter[0] == '*');
}
// Checks whether the passed {raw_filter} is a prefix of the given scripts name.
// TODO(rmcilroy): Remove filtering once ignition can handle test262 harness.
static bool ScriptPassesFilter(const char* raw_filter, Handle<Script> script) {
Vector<const char> filter = CStrVector(raw_filter);
if (!script->name()->IsString()) return filter.length() == 0;
String* name = String::cast(script->name());
return name->IsUtf8EqualTo(filter, true);
}
static bool CompileUnoptimizedCode(CompilationInfo* info) {
DCHECK(AllowCompilation::IsAllowed(info->isolate()));
if (!Compiler::Analyze(info->parse_info()) ||
@ -721,15 +703,37 @@ static bool CompileUnoptimizedCode(CompilationInfo* info) {
}
// TODO(rmcilroy): Remove this temporary work-around when ignition supports
// catch and eval.
static bool IgnitionShouldFallbackToFullCodeGen(Scope* scope) {
if (!FLAG_ignition_fallback_on_eval_and_catch) return false;
if (scope->is_eval_scope() || scope->is_catch_scope() ||
scope->calls_eval()) {
return true;
}
for (auto inner_scope : *scope->inner_scopes()) {
if (IgnitionShouldFallbackToFullCodeGen(inner_scope)) return true;
}
return false;
}
static bool GenerateBytecode(CompilationInfo* info) {
DCHECK(AllowCompilation::IsAllowed(info->isolate()));
if (!Compiler::Analyze(info->parse_info()) ||
!interpreter::Interpreter::MakeBytecode(info)) {
bool success = false;
if (Compiler::Analyze(info->parse_info())) {
if (IgnitionShouldFallbackToFullCodeGen(info->scope())) {
success = FullCodeGenerator::MakeCode(info);
} else {
success = interpreter::Interpreter::MakeBytecode(info);
}
}
if (!success) {
Isolate* isolate = info->isolate();
if (!isolate->has_pending_exception()) isolate->StackOverflow();
return false;
}
return true;
return success;
}
@ -747,8 +751,7 @@ MUST_USE_RESULT static MaybeHandle<Code> GetUnoptimizedCodeCommon(
MaybeDisableOptimization(shared, lit->dont_optimize_reason());
if (FLAG_ignition && !shared->HasBuiltinFunctionId() &&
info->closure()->PassesFilter(FLAG_ignition_filter) &&
ScriptPassesFilter(FLAG_ignition_script_filter, info->script())) {
info->closure()->PassesFilter(FLAG_ignition_filter)) {
// Compile bytecode for the interpreter.
if (!GenerateBytecode(info)) return MaybeHandle<Code>();
} else {
@ -1173,6 +1176,13 @@ void Compiler::CompileForLiveEdit(Handle<Script> script) {
}
// Checks whether top level functions should be passed by {raw_filter}.
static bool TopLevelFunctionPassesFilter(const char* raw_filter) {
Vector<const char> filter = CStrVector(raw_filter);
return (filter.length() == 0) || (filter.length() == 1 && filter[0] == '*');
}
static Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
Isolate* isolate = info->isolate();
PostponeInterruptsScope postpone(isolate);
@ -1236,8 +1246,7 @@ static Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
HistogramTimerScope timer(rate);
// Compile the code.
if (FLAG_ignition && TopLevelFunctionPassesFilter(FLAG_ignition_filter) &&
ScriptPassesFilter(FLAG_ignition_script_filter, script)) {
if (FLAG_ignition && TopLevelFunctionPassesFilter(FLAG_ignition_filter)) {
if (!GenerateBytecode(info)) {
return Handle<SharedFunctionInfo>::null();
}

View File

@ -290,10 +290,11 @@ DEFINE_BOOL(string_slices, true, "use string slices")
DEFINE_BOOL(ignition, false, "use ignition interpreter")
DEFINE_IMPLICATION(ignition, vector_stores)
DEFINE_STRING(ignition_filter, "~~", "filter for ignition interpreter")
DEFINE_STRING(ignition_script_filter, "",
"script filter for ignition interpreter")
DEFINE_BOOL(ignition_fake_try_catch, false,
"enable fake try-catch-finally blocks in ignition for testing")
DEFINE_BOOL(ignition_fallback_on_eval_and_catch, false,
"fallback to full-codegen for functions which contain eval, catch"
"and es6 blocks")
DEFINE_BOOL(print_bytecode, false,
"print bytecode generated by ignition interpreter")
DEFINE_BOOL(trace_ignition_codegen, false,

View File

@ -724,4 +724,287 @@
# take too long with the simulator.
'regress/regress-1132': [SKIP],
}], # 'arch == ppc and simulator_run == True'
['ignition == True ', {
'asm/*': [SKIP],
'compiler/*': [SKIP],
'const*': [SKIP],
'debug-*': [SKIP],
'es6/*': [SKIP],
'es7/*': [SKIP],
'strong/*': [SKIP],
'harmony/*': [SKIP],
'regress/debug*': [SKIP],
'regress/regress-debug*': [SKIP],
'allocation-folding': [SKIP],
'api-call-after-bypassed-exception': [SKIP],
'apply-arguments-gc-safepoint': [SKIP],
'arguments-load-across-eval': [SKIP],
'arguments-read-and-assignment': [SKIP],
'array-bounds-check-removal': [SKIP],
'array-elements-from-array-prototype-chain': [SKIP],
'array-join': [SKIP],
'array-length-number-conversion': [SKIP],
'array-literal-feedback': [SKIP],
'array-literal-transitions': [SKIP],
'array-reduce': [SKIP],
'array-tostring': [SKIP],
'assert-opt-and-deopt': [SKIP],
'big-array-literal': [SKIP],
'break': [SKIP],
'call-runtime-tail': [SKIP],
'context-calls-maintained': [SKIP],
'contextual-calls': [SKIP],
'cross-realm-filtering': [SKIP],
'cyclic-array-to-string': [SKIP],
'd8-worker-sharedarraybuffer': [SKIP],
'deopt-minus-zero': [SKIP],
'deopt-with-fp-regs': [SKIP],
'deserialize-script-id': [SKIP],
'div-mul-minus-one': [SKIP],
'double-equals': [SKIP],
'double-intrinsics': [SKIP],
'elements-transition-hoisting': [SKIP],
'error-constructors': [SKIP],
'eval-enclosing-function-name': [SKIP],
'eval-stack-trace': [SKIP],
'fast-prototype': [SKIP],
'for-in-special-cases': [SKIP],
'function-call': [SKIP],
'get-caller-js-function': [SKIP],
'get-prototype-of': [SKIP],
'getter-in-prototype': [SKIP],
'getters-on-elements': [SKIP],
'global-hash': [SKIP],
'global-load-from-eval-in-with': [SKIP],
'global-vars-with': [SKIP],
'instanceof-2': [SKIP],
'math-floor-of-div-minus-zero': [SKIP],
'math-min-max': [SKIP],
'messages': [SKIP],
'mirror-object': [SKIP],
'numops-fuzz-part1': [SKIP],
'numops-fuzz-part2': [SKIP],
'numops-fuzz-part3': [SKIP],
'numops-fuzz-part4': [SKIP],
'object-literal-gc': [SKIP],
'osr-elements-kind': [SKIP],
'property-load-across-eval': [SKIP],
'proto-accessor': [SKIP],
'regress-3225': [SKIP],
'regress/clear-keyed-call': [SKIP],
'regress/regress-102153': [SKIP],
'regress/regress-1079': [SKIP],
'regress/regress-109195': [SKIP],
'regress/regress-1114040': [SKIP],
'regress/regress-1125': [SKIP],
'regress/regress-1129': [SKIP],
'regress/regress-117409': [SKIP],
'regress/regress-1177809': [SKIP],
'regress/regress-119609': [SKIP],
'regress/regress-1209': [SKIP],
'regress/regress-124594': [SKIP],
'regress/regress-124': [SKIP],
'regress/regress-125515': [SKIP],
'regress/regress-128018': [SKIP],
'regress/regress-131994': [SKIP],
'regress/regress-133211b': [SKIP],
'regress/regress-1365': [SKIP],
'regress/regress-1369': [SKIP],
'regress/regress-1403': [SKIP],
'regress/regress-1412': [SKIP],
'regress/regress-1415': [SKIP],
'regress/regress-1436': [SKIP],
'regress/regress-1493017': [SKIP],
'regress/regress-1523': [SKIP],
'regress/regress-1560': [SKIP],
'regress/regress-1586': [SKIP],
'regress/regress-1639-2': [SKIP],
'regress/regress-1639': [SKIP],
'regress/regress-166553': [SKIP],
'regress/regress-1708': [SKIP],
'regress/regress-1757': [SKIP],
'regress/regress-1790': [SKIP],
'regress/regress-1980': [SKIP],
'regress/regress-2054': [SKIP],
'regress/regress-2071': [SKIP],
'regress/regress-2132': [SKIP],
'regress/regress-2163': [SKIP],
'regress/regress-2339': [SKIP],
'regress/regress-2444': [SKIP],
'regress/regress-244': [SKIP],
'regress/regress-2593': [SKIP],
'regress/regress-2594': [SKIP],
'regress/regress-2618': [SKIP],
'regress/regress-263': [SKIP],
'regress/regress-265': [SKIP],
'regress/regress-269': [SKIP],
'regress/regress-2825': [SKIP],
'regress/regress-286': [SKIP],
'regress/regress-298269': [SKIP],
'regress/regress-3176': [SKIP],
'regress/regress-318420': [SKIP],
'regress/regress-320532': [SKIP],
'regress/regress-3281': [SKIP],
'regress/regress-331444': [SKIP],
'regress/regress-343609': [SKIP],
'regress/regress-347530': [SKIP],
'regress/regress-352982': [SKIP],
'regress/regress-354357': [SKIP],
'regress/regress-356053': [SKIP],
'regress/regress-357105': [SKIP],
'regress/regress-361025': [SKIP],
'regress/regress-3621': [SKIP],
'regress/regress-365172-3': [SKIP],
'regress/regress-370827': [SKIP],
'regress/regress-3709': [SKIP],
'regress/regress-377290': [SKIP],
'regress/regress-385565': [SKIP],
'regress/regress-3859': [SKIP],
'regress/regress-3884': [SKIP],
'regress/regress-3926': [SKIP],
'regress/regress-3960': [SKIP],
'regress/regress-3969': [SKIP],
'regress/regress-4023': [SKIP],
'regress/regress-4027': [SKIP],
'regress/regress-403292': [SKIP],
'regress/regress-410912': [SKIP],
'regress/regress-4121': [SKIP],
'regress/regress-419663': [SKIP],
'regress/regress-4255-4': [SKIP],
'regress/regress-4309-3': [SKIP],
'regress/regress-4320': [SKIP],
'regress/regress-4325': [SKIP],
'regress/regress-436893': [SKIP],
'regress/regress-4374': [SKIP],
'regress/regress-4388': [SKIP],
'regress/regress-444805': [SKIP],
'regress/regress-4515': [SKIP],
'regress/regress-4521': [SKIP],
'regress/regress-4525': [SKIP],
'regress/regress-453481': [SKIP],
'regress/regress-4534': [SKIP],
'regress/regress-454725': [SKIP],
'regress/regress-470804': [SKIP],
'regress/regress-476488': [SKIP],
'regress/regress-491536': [SKIP],
'regress/regress-514362': [SKIP],
'regress/regress-520029': [SKIP],
'regress/regress-542099': [SKIP],
'regress/regress-542100': [SKIP],
'regress/regress-580': [SKIP],
'regress/regress-618': [SKIP],
'regress/regress-643': [SKIP],
'regress/regress-69': [SKIP],
'regress/regress-70066': [SKIP],
'regress/regress-747': [SKIP],
'regress/regress-806473': [SKIP],
'regress/regress-842017': [SKIP],
'regress/regress-84234': [SKIP],
'regress/regress-88858': [SKIP],
'regress/regress-94425': [SKIP],
'regress/regress-94873': [SKIP],
'regress/regress-95485': [SKIP],
'regress/regress-97116b': [SKIP],
'regress/regress-97116': [SKIP],
'regress/regress-974': [SKIP],
'regress/regress-99167': [SKIP],
'regress/regress-998565': [SKIP],
'regress/regress-arguments-gc': [SKIP],
'regress/regress-assignment-in-test-context': [SKIP],
'regress/regress-cnlt-elements': [SKIP],
'regress/regress-cnlt-enum-indices': [SKIP],
'regress/regress-cntl-descriptors-enum': [SKIP],
'regress/regress-conditional-position': [SKIP],
'regress/regress-convert-enum': [SKIP],
'regress/regress-crbug-119800': [SKIP],
'regress/regress-crbug-135008': [SKIP],
'regress/regress-crbug-229923': [SKIP],
'regress/regress-crbug-242502': [SKIP],
'regress/regress-crbug-242924': [SKIP],
'regress/regress-crbug-245480': [SKIP],
'regress/regress-crbug-349079': [SKIP],
'regress/regress-crbug-350864': [SKIP],
'regress/regress-crbug-352058': [SKIP],
'regress/regress-crbug-357137': [SKIP],
'regress/regress-crbug-385002': [SKIP],
'regress/regress-crbug-387599': [SKIP],
'regress/regress-crbug-405922': [SKIP],
'regress/regress-crbug-409614': [SKIP],
'regress/regress-crbug-410033': [SKIP],
'regress/regress-crbug-412208': [SKIP],
'regress/regress-crbug-416558': [SKIP],
'regress/regress-crbug-424142': [SKIP],
'regress/regress-crbug-431602': [SKIP],
'regress/regress-crbug-432493': [SKIP],
'regress/regress-crbug-450642': [SKIP],
'regress/regress-crbug-465298': [SKIP],
'regress/regress-crbug-467180': [SKIP],
'regress/regress-crbug-467531': [SKIP],
'regress/regress-crbug-474297': [SKIP],
'regress/regress-crbug-480819': [SKIP],
'regress/regress-crbug-481896': [SKIP],
'regress/regress-crbug-485548-1': [SKIP],
'regress/regress-crbug-485548-2': [SKIP],
'regress/regress-crbug-487289': [SKIP],
'regress/regress-crbug-489293': [SKIP],
'regress/regress-crbug-489597': [SKIP],
'regress/regress-crbug-498142': [SKIP],
'regress/regress-crbug-500824': [SKIP],
'regress/regress-crbug-501809': [SKIP],
'regress/regress-crbug-506443': [SKIP],
'regress/regress-crbug-507070': [SKIP],
'regress/regress-crbug-527364': [SKIP],
'regress/regress-crbug-530598': [SKIP],
'regress/regress-crbug-546968': [SKIP],
'regress/regress-deopt-gcb': [SKIP],
'regress/regress-deopt-gc': [SKIP],
'regress/regress-embedded-cons-string': [SKIP],
'regress/regress-existing-shared-function-info': [SKIP],
'regress/regress-fast-literal-transition': [SKIP],
'regress/regress-force-representation': [SKIP],
'regress/regress-function-constructor-receiver': [SKIP],
'regress/regress-handle-illegal-redeclaration': [SKIP],
'regress/regress-inline-class-constructor': [SKIP],
'regress/regress-inlining-function-literal-context': [SKIP],
'regress/regress-lazy-deopt-reloc': [SKIP],
'regress/regress-map-invalidation-2': [SKIP],
'regress/regress-opt-after-debug-deopt': [SKIP],
'regress/regress-param-local-type': [SKIP],
'regress/regress-prepare-break-while-recompile': [SKIP],
'regress/regress-put-prototype-transition': [SKIP],
'regress/regress-sliced-external-cons-regexp': [SKIP],
'regress/regress-transcendental': [SKIP],
'regress/regress-typedarray-length': [SKIP],
'regress/splice-missing-wb': [SKIP],
'shift-for-integer-div': [SKIP],
'simple-constructor': [SKIP],
'sin-cos': [SKIP],
'smi-mul-const': [SKIP],
'smi-mul': [SKIP],
'sparse-array-reverse': [SKIP],
'stack-traces': [SKIP],
'strict-mode': [SKIP],
'string-case': [SKIP],
'string-external-cached': [SKIP],
'string-externalize': [SKIP],
'string-natives': [SKIP],
'string-replace-with-empty': [SKIP],
'string-slices': [SKIP],
'switch-opt': [SKIP],
'tools/profile': [SKIP],
'tools/profviz': [SKIP],
'try-finally-continue': [SKIP],
'try': [SKIP],
'unary-minus-deopt': [SKIP],
'undetectable-compare': [SKIP],
'unused-context-in-with': [SKIP],
'uri': [SKIP],
'value-wrapper': [SKIP],
'with-parameter-access': [SKIP],
'with-prototype': [SKIP],
'with-readonly': [SKIP],
}], # ignition == True
]

View File

@ -670,4 +670,103 @@
'built-ins/encodeURI/S15.1.3.3_A2.3_T1': [SKIP],
'built-ins/encodeURIComponent/S15.1.3.4_A2.3_T1': [SKIP],
}], # 'arch == arm or arch == mipsel or arch == mips or arch == arm64'
['ignition == True ', {
'annexB/B.2.3.*': [SKIP],
'built-ins/Array/prototype/reduce/*': [SKIP],
'built-ins/Array/prototype/reduceRight/*': [SKIP],
'built-ins/decodeURI*': [SKIP],
'built-ins/GeneratorPrototype/*': [SKIP],
'built-ins/Map/*': [SKIP],
'built-ins/MapIteratorPrototype/*': [SKIP],
'built-ins/Set/*': [SKIP],
'built-ins/SetIteratorPrototype/*': [SKIP],
'built-ins/WeakMap/*': [SKIP],
'built-ins/WeakSet/*': [SKIP],
'language/computed-property-names/class/*': [SKIP],
'language/computed-property-names/to-name-side-effects/*': [SKIP],
'language/directive-prologue/*': [SKIP],
'language/expressions/arrow-function/*': [SKIP],
'language/expressions/class/*': [SKIP],
'language/expressions/generators/*': [SKIP],
'language/expressions/object/method-definition/yield*': [SKIP],
'language/expressions/object/method-definition/generator*': [SKIP],
'language/expressions/yield/*': [SKIP],
'language/function-code/*': [SKIP],
'language/statements/class/*': [SKIP],
'language/statements/const/*': [SKIP],
'language/statements/for-in/const*': [SKIP],
'language/statements/for-in/let*': [SKIP],
'language/statements/for-of/*': [SKIP],
'language/statements/generators/*': [SKIP],
'language/statements/let/*': [SKIP],
'language/statements/try/*': [SKIP],
'language/statements/with/*': [SKIP],
'built-ins/Array/prototype/concat/Array.prototype.concat_non-array': [SKIP],
'built-ins/Array/prototype/join/S15.4.4.5_A3.1_T1': [SKIP],
'built-ins/Array/prototype/join/S15.4.4.5_A3.1_T2': [SKIP],
'built-ins/Array/prototype/toString/S15.4.4.2_A1_T2': [SKIP],
'built-ins/Array/prototype/toString/S15.4.4.2_A1_T3': [SKIP],
'built-ins/Array/prototype/toString/S15.4.4.2_A1_T4': [SKIP],
'built-ins/Date/15.9.1.15-1': [SKIP],
'built-ins/Date/prototype/toISOString/15.9.5.43-0-13': [SKIP],
'built-ins/Object/defineProperty/15.2.3.6-4-625gs': [SKIP],
'built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A12': [SKIP],
'built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A12': [SKIP],
'built-ins/Object/prototype/propertyIsEnumerable/S15.2.4.7_A12': [SKIP],
'built-ins/Object/prototype/toLocaleString/S15.2.4.3_A12': [SKIP],
'built-ins/Object/prototype/toString/15.2.4.2-1-1': [SKIP],
'built-ins/Object/prototype/toString/15.2.4.2-1-2': [SKIP],
'built-ins/Object/prototype/toString/S15.2.4.2_A12': [SKIP],
'built-ins/Object/prototype/valueOf/S15.2.4.4_A12': [SKIP],
'built-ins/Object/prototype/valueOf/S15.2.4.4_A14': [SKIP],
'built-ins/Object/prototype/valueOf/S15.2.4.4_A15': [SKIP],
'built-ins/Promise/all/ctx-ctor': [SKIP],
'built-ins/Promise/race/ctx-ctor': [SKIP],
'built-ins/Promise/reject/ctx-ctor': [SKIP],
'built-ins/Promise/resolve/ctx-ctor': [SKIP],
'built-ins/String/prototype/codePointAt/this-is-undefined-throws': [SKIP],
'built-ins/String/prototype/concat/S15.5.4.6_A2': [SKIP],
'built-ins/String/prototype/endsWith/this-is-undefined-throws': [SKIP],
'built-ins/String/prototype/includes/this-is-undefined-throws': [SKIP],
'built-ins/String/prototype/repeat/this-is-undefined-throws': [SKIP],
'built-ins/String/prototype/startsWith/this-is-undefined-throws': [SKIP],
'built-ins/String/prototype/trim/15.5.4.20-1-1': [SKIP],
'built-ins/String/S15.5.5.1_A4_T1': [SKIP],
'language/block-scope/leave/x-after-break-to-label': [SKIP],
'language/computed-property-names/object/accessor/getter-super': [SKIP],
'language/computed-property-names/object/accessor/setter-super': [SKIP],
'language/computed-property-names/object/method/super': [SKIP],
'language/expressions/delete/11.4.1-4.a-5': [SKIP],
'language/expressions/delete/11.4.1-4.a-6': [SKIP],
'language/expressions/object/method-definition/name-super-prop-body': [SKIP],
'language/expressions/object/prop-def-id-eval-error': [SKIP],
'language/expressions/tagged-template/call-expression-context-no-strict': [SKIP],
'language/expressions/tagged-template/call-expression-context-strict': [SKIP],
'language/expressions/template-literal/evaluation-order': [SKIP],
'language/expressions/this/11.1.1-1gs': [SKIP],
'language/identifier-resolution/S10.2.2_A1_T5': [SKIP],
'language/identifier-resolution/S10.2.2_A1_T6': [SKIP],
'language/identifier-resolution/S10.2.2_A1_T7': [SKIP],
'language/identifier-resolution/S10.2.2_A1_T8': [SKIP],
'language/identifier-resolution/S10.2.2_A1_T9': [SKIP],
'language/object-literal/concise-generator': [SKIP],
'language/object-literal/getter': [SKIP],
'language/object-literal/method': [SKIP],
'language/object-literal/setter': [SKIP],
'language/rest-parameters/with-new-target': [SKIP],
'language/statements/do-while/S12.6.1_A4_T5': [SKIP],
'language/statements/function/S13.2.2_A18_T2': [SKIP],
'language/statements/function/S13.2.2_A19_T1': [SKIP],
'language/statements/function/S13.2.2_A19_T2': [SKIP],
'language/statements/function/S13.2.2_A19_T3': [SKIP],
'language/statements/function/S13.2.2_A19_T4': [SKIP],
'language/statements/function/S13.2.2_A19_T5': [SKIP],
'language/statements/function/S13.2.2_A19_T6': [SKIP],
'language/statements/function/S13.2.2_A19_T7': [SKIP],
'language/statements/function/S13.2.2_A19_T8': [SKIP],
'language/statements/while/S12.6.2_A4_T5': [SKIP],
}], # ignition == True
]

View File

@ -103,7 +103,6 @@ class Test262TestSuite(testsuite.TestSuite):
self.harness = [os.path.join(self.harnesspath, f)
for f in TEST_262_HARNESS_FILES]
self.harness += [os.path.join(self.root, "harness-adapt.js")]
self.ignition_script_filter = "--ignition-script-filter=" + self.testroot
self.ParseTestRecord = None
def ListTests(self, context):
@ -125,13 +124,7 @@ class Test262TestSuite(testsuite.TestSuite):
return tests
def GetFlagsForTestCase(self, testcase, context):
# TODO(rmcilroy) Remove ignition filter modification once ignition can
# support the test262 test harness code.
flags = testcase.flags
if '--ignition' in flags:
flags += [self.ignition_script_filter, "--ignition-fake-try-catch"]
return (flags + context.mode_flags + self.harness +
return (testcase.flags + context.mode_flags + self.harness +
self.GetIncludesForTest(testcase) + ["--harmony"] +
[os.path.join(self.testroot, testcase.path + ".js")])

View File

@ -388,6 +388,7 @@ def Execute(arch, mode, args, options, suites, workspace):
"asan": options.asan,
"deopt_fuzzer": True,
"gc_stress": False,
"ignition": False,
"isolates": options.isolates,
"mode": mode,
"no_i18n": False,

View File

@ -235,6 +235,8 @@ def BuildOptions():
result.add_option("--extra-flags",
help="Additional flags to pass to each test command",
default="")
result.add_option("--ignition", help="Skip tests which don't run in ignition",
default=False, action="store_true")
result.add_option("--isolates", help="Whether to test isolates",
default=False, action="store_true")
result.add_option("-j", help="The number of parallel tasks to run",
@ -681,6 +683,7 @@ def Execute(arch, mode, args, options, suites):
"asan": options.asan,
"deopt_fuzzer": False,
"gc_stress": options.gc_stress,
"ignition": options.ignition,
"isolates": options.isolates,
"mode": MODES[mode]["status_mode"],
"no_i18n": options.no_i18n,

View File

@ -41,7 +41,9 @@ ALL_VARIANT_FLAGS = {
"turbofan": [["--turbo"]],
"turbofan_opt": [["--turbo", "--always-opt"]],
"nocrankshaft": [["--nocrankshaft"]],
"ignition": [["--ignition", "--ignition-filter=*"]],
"ignition": [["--ignition", "--ignition-filter=*",
"--ignition-fake-try-catch",
"--ignition-fallback-on-eval-and-catch"]],
}
# FAST_VARIANTS implies no --always-opt.
@ -50,7 +52,9 @@ FAST_VARIANT_FLAGS = {
"stress": [["--stress-opt"]],
"turbofan": [["--turbo"]],
"nocrankshaft": [["--nocrankshaft"]],
"ignition": [["--ignition", "--ignition-filter=*"]],
"ignition": [["--ignition", "--ignition-filter=*",
"--ignition-fake-try-catch",
"--ignition-fallback-on-eval-and-catch"]],
}
ALL_VARIANTS = set(["default", "stress", "turbofan", "turbofan_opt",