JavaScript Test Library - modifications to tests from Igor Bukanov, bug 347739

This commit is contained in:
bclary%bclary.com 2006-08-08 10:36:23 +00:00
Родитель 3e78aa2e92
Коммит 4f2f7bdffb
4 изменённых файлов: 58 добавлений и 19 удалений

Просмотреть файл

@ -38,22 +38,36 @@
var bug = 340526;
var summary = 'Iterators: cross-referenced objects with close handler can ' +
'delay close handler execution';
var actual = 'No Crash';
var expect = 'No Crash';
printBugNumber (bug);
printStatus (summary);
try
var close_count = 0;
function gen()
{
var iter = (function() { yield 0; })();
iter.close = function() { new Object(); }
iter = null;
gc();
try {
yield 0;
} finally {
++close_count;
}
}
catch(ex)
{
writeLineToLog(ex + '');
}
var iter1 = gen();
var iter2 = gen();
iter1.another = iter2;
iter2.another = iter1;
iter1.next();
iter2.next();
iter1 = null;
iter2 = null;
gc();
var expect = 2;
var actual = close_count;
reportCompare(expect, actual, summary);

Просмотреть файл

@ -44,8 +44,21 @@ var expect = 'No Crash';
printBugNumber (bug);
printStatus (summary);
var iter = (function() { yield 0; })();
iter.close = function() { return []; }
var someGlobal;
function generator()
{
try {
yield 0;
} finally {
someGlobal = [];
}
}
var iter = generator();
iter.next();
iter = null;
gc();
reportCompare(expect, actual, summary);

Просмотреть файл

@ -44,9 +44,16 @@ var expect = 'No Crash';
printBugNumber (bug);
printStatus (summary);
function gen(i) { yield i; }
function gen(i) {
try {
yield i;
} finally {
name_that_does_not_exist_in_the_scope_chain = 1;
}
}
var iter = gen(1);
iter.close = function() { name_that_does_not_exist_in_the_scope_chain = 1; }
iter.next();
iter = null;
gc();

Просмотреть файл

@ -51,13 +51,18 @@ function test()
printBugNumber (bug);
printStatus (summary);
var globalToPokeGC = {};
function make_iterator()
{
var iter = (function() { yield 0; })();
iter.close = make_iterator;
function generator() {
try {
yield 0;
} finally {
make_iterator();
}
}
generator().next();
globalToPokeGC = {};
if (typeof alert != 'undefined')
{