Properly disable ES6 generator support for TurboFan.

R=rossberg@chromium.org
TEST=mjsunit/es6/*

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 79c8293b
......@@ -57,11 +57,19 @@ function GeneratorFunctionConstructor(arg1) { // length == 1
function SetUpGenerators() {
%CheckIsBootstrapping();
// Both Runtime_GeneratorNext and Runtime_GeneratorThrow are supported by
// neither Crankshaft nor TurboFan, disable optimization of wrappers here.
%NeverOptimizeFunction(GeneratorObjectNext);
%NeverOptimizeFunction(GeneratorObjectThrow);
// Set up non-enumerable functions on the generator prototype object.
var GeneratorObjectPrototype = GeneratorFunctionPrototype.prototype;
InstallFunctions(GeneratorObjectPrototype,
DONT_ENUM | DONT_DELETE | READ_ONLY,
["next", GeneratorObjectNext,
"throw", GeneratorObjectThrow]);
%FunctionSetName(GeneratorObjectIterator, '[Symbol.iterator]');
%AddNamedProperty(GeneratorObjectPrototype, symbolIterator,
GeneratorObjectIterator, DONT_ENUM | DONT_DELETE | READ_ONLY);
......
......@@ -15268,8 +15268,6 @@ RUNTIME_FUNCTION_RETURN_PAIR(Runtime_ForInNext) {
}
U(IsStringWrapperSafeForDefaultValueOf)
U(GeneratorNext)
U(GeneratorThrow)
U(DebugBreakInOptimizedCode)
#undef U
......@@ -15500,6 +15498,18 @@ RUNTIME_FUNCTION(RuntimeReference_FastAsciiArrayJoin) {
}
RUNTIME_FUNCTION(RuntimeReference_GeneratorNext) {
UNREACHABLE(); // Optimization disabled in SetUpGenerators().
return NULL;
}
RUNTIME_FUNCTION(RuntimeReference_GeneratorThrow) {
UNREACHABLE(); // Optimization disabled in SetUpGenerators().
return NULL;
}
RUNTIME_FUNCTION(RuntimeReference_ClassOf) {
SealHandleScope shs(isolate);
DCHECK(args.length() == 1);
......
......@@ -118,18 +118,6 @@
'regress/regress-crbug-259300': [PASS, NO_VARIANTS],
'regress/regress-frame-details-null-receiver': [PASS, NO_VARIANTS],
# Support for ES6 generators is missing.
'regress-3225': [PASS, NO_VARIANTS],
'es6/generators-debug-liveedit': [PASS, NO_VARIANTS],
'es6/generators-iteration': [PASS, NO_VARIANTS],
'es6/generators-parsing': [PASS, NO_VARIANTS],
'es6/generators-poisoned-properties': [PASS, NO_VARIANTS],
'es6/generators-relocation': [PASS, NO_VARIANTS],
'es6/iteration-semantics': [PASS, NO_VARIANTS],
'es6/regress/regress-2681': [PASS, NO_VARIANTS],
'es6/regress/regress-2691': [PASS, NO_VARIANTS],
'es6/regress/regress-3280': [PASS, NO_VARIANTS],
##############################################################################
# Too slow in debug mode with --stress-opt mode.
'compiler/regress-stacktrace-methods': [PASS, ['mode == debug', SKIP]],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment