| Index: LayoutTests/imported/web-platform-tests/IndexedDB/value_recursive.htm
 | 
| diff --git a/LayoutTests/imported/web-platform-tests/IndexedDB/value_recursive.htm b/LayoutTests/imported/web-platform-tests/IndexedDB/value_recursive.htm
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..9446aea2b4cb907f9c550f832664998580bca23b
 | 
| --- /dev/null
 | 
| +++ b/LayoutTests/imported/web-platform-tests/IndexedDB/value_recursive.htm
 | 
| @@ -0,0 +1,66 @@
 | 
| +<!DOCTYPE html>
 | 
| +<meta charset="utf-8">
 | 
| +<title>Recursive value</title>
 | 
| +<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
 | 
| +<script src="../../../resources/testharness.js"></script>
 | 
| +<script src="../../../resources/testharnessreport.js"></script>
 | 
| +<script src="support.js"></script>
 | 
| +
 | 
| +<script>
 | 
| +function recursive_value(desc, value) {
 | 
| +    var db, t = async_test(document.title + " - " + desc);
 | 
| +
 | 
| +    createdb(t).onupgradeneeded = function(e) {
 | 
| +        db = e.target.result
 | 
| +        db.createObjectStore("store")
 | 
| +          .add(value, 1);
 | 
| +
 | 
| +        e.target.onsuccess = t.step_func(function(e) {
 | 
| +            db.transaction('store')
 | 
| +              .objectStore('store')
 | 
| +              .get(1)
 | 
| +              .onsuccess = t.step_func(function(e)
 | 
| +            {
 | 
| +
 | 
| +                try
 | 
| +                {
 | 
| +                    var fresh_value = JSON.stringify(value);
 | 
| +                    assert_unreached("Testcase is written wrongly, must supply something recursive (that JSON won't stringify).");
 | 
| +                }
 | 
| +                catch (e)
 | 
| +                {
 | 
| +                    if (e.name == 'TypeError')
 | 
| +                    {
 | 
| +                        try
 | 
| +                        {
 | 
| +                            JSON.stringify(e.target.result);
 | 
| +                            assert_unreached("Expected a non-JSON-serializable value back, didn't get that.");
 | 
| +                        }
 | 
| +                        catch (e)
 | 
| +                        {
 | 
| +                            t.done();
 | 
| +                            return;
 | 
| +                        }
 | 
| +                    }
 | 
| +                    else
 | 
| +                        throw e;
 | 
| +                }
 | 
| +            });
 | 
| +        });
 | 
| +    };
 | 
| +}
 | 
| +
 | 
| +var recursive = [];
 | 
| +recursive.push(recursive);
 | 
| +recursive_value('array directly contains self', recursive);
 | 
| +
 | 
| +var recursive2 = [];
 | 
| +recursive2.push([recursive2]);
 | 
| +recursive_value('array indirectly contains self', recursive2);
 | 
| +
 | 
| +var recursive3 = [recursive];
 | 
| +recursive_value('array member contains self', recursive3);
 | 
| +
 | 
| +</script>
 | 
| +
 | 
| +<div id="log"></div>
 | 
| 
 |