Run more tests with --ignition-generators.
Also, make %GeneratorGetSourcePosition fail if called on a suspended Ignition generator (rather than return nonsense). This functionality is currently not implemented. BUG=v8:4907 Review-Url: https://codereview.chromium.org/2049663002 Cr-Commit-Position: refs/heads/master@{#36822}
This commit is contained in:
parent
c8e286c918
commit
ea139c5b4a
@ -1333,6 +1333,7 @@ bool Debug::PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared) {
|
|||||||
isolate_->heap()->CollectAllGarbage(Heap::kMakeHeapIterableMask,
|
isolate_->heap()->CollectAllGarbage(Heap::kMakeHeapIterableMask,
|
||||||
"prepare for break points");
|
"prepare for break points");
|
||||||
|
|
||||||
|
DCHECK(shared->is_compiled());
|
||||||
bool is_interpreted = shared->HasBytecodeArray();
|
bool is_interpreted = shared->HasBytecodeArray();
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -146,14 +146,15 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetSourcePosition) {
|
|||||||
DCHECK(args.length() == 1);
|
DCHECK(args.length() == 1);
|
||||||
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
|
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
|
||||||
|
|
||||||
if (generator->is_suspended()) {
|
if (!generator->is_suspended()) return isolate->heap()->undefined_value();
|
||||||
Handle<Code> code(generator->function()->code(), isolate);
|
|
||||||
int offset = generator->continuation();
|
|
||||||
RUNTIME_ASSERT(0 <= offset && offset < code->instruction_size());
|
|
||||||
return Smi::FromInt(code->SourcePosition(offset));
|
|
||||||
}
|
|
||||||
|
|
||||||
return isolate->heap()->undefined_value();
|
if (FLAG_ignition && FLAG_ignition_generators) UNIMPLEMENTED();
|
||||||
|
|
||||||
|
DCHECK(!generator->function()->shared()->HasBytecodeArray());
|
||||||
|
Handle<Code> code(generator->function()->code(), isolate);
|
||||||
|
int offset = generator->continuation();
|
||||||
|
RUNTIME_ASSERT(0 <= offset && offset < code->instruction_size());
|
||||||
|
return Smi::FromInt(code->SourcePosition(offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace internal
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --expose-debug-as debug
|
// Flags: --expose-debug-as debug --ignition-generators
|
||||||
|
|
||||||
var Debug = debug.Debug;
|
var Debug = debug.Debug;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --expose-debug-as debug
|
// Flags: --expose-debug-as debug --ignition-generators
|
||||||
|
|
||||||
var Debug = debug.Debug;
|
var Debug = debug.Debug;
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --expose-debug-as debug --allow-natives-syntax
|
// Flags: --expose-debug-as debug --allow-natives-syntax --ignition-generators
|
||||||
|
|
||||||
var Debug = debug.Debug;
|
var Debug = debug.Debug;
|
||||||
var LiveEdit = Debug.LiveEdit;
|
var LiveEdit = Debug.LiveEdit;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --expose-debug-as debug
|
// Flags: --expose-debug-as debug --ignition-generators
|
||||||
|
|
||||||
var Debug = debug.Debug;
|
var Debug = debug.Debug;
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
// Flags: --expose-gc
|
// Flags: --expose-gc --ignition-generators
|
||||||
|
|
||||||
// Test generator iteration.
|
// Test generator iteration.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
// Flags: --allow-natives-syntax
|
// Flags: --allow-natives-syntax --ignition-generators
|
||||||
|
|
||||||
// Test instantations of generators.
|
// Test instantations of generators.
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
// Flags: --ignition-generators
|
||||||
|
|
||||||
// Test basic generator syntax.
|
// Test basic generator syntax.
|
||||||
|
|
||||||
// Yield statements.
|
// Yield statements.
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
// Flags: --ignition-generators
|
||||||
|
|
||||||
(function testRestrictedPropertiesStrict() {
|
(function testRestrictedPropertiesStrict() {
|
||||||
function* generator() { "use strict"; }
|
function* generator() { "use strict"; }
|
||||||
assertFalse(generator.hasOwnProperty("arguments"));
|
assertFalse(generator.hasOwnProperty("arguments"));
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --expose-debug-as debug
|
// Flags: --expose-debug-as debug --ignition-generators
|
||||||
|
|
||||||
var Debug = debug.Debug;
|
var Debug = debug.Debug;
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
// Flags: --ignition-generators
|
||||||
|
|
||||||
// Test aspects of the generator runtime.
|
// Test aspects of the generator runtime.
|
||||||
|
|
||||||
// See:
|
// See:
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
// Flags: --ignition-generators
|
||||||
|
|
||||||
// Test generator states.
|
// Test generator states.
|
||||||
|
|
||||||
function Foo() {}
|
function Foo() {}
|
||||||
|
Loading…
Reference in New Issue
Block a user