| Index: test/webkit/fast/js/JSON-parse-reviver-expected.txt
|
| diff --git a/test/webkit/fast/js/JSON-parse-reviver-expected.txt b/test/webkit/fast/js/JSON-parse-reviver-expected.txt
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c68efa417be8304de4e0659c39ad4602fcac099c
|
| --- /dev/null
|
| +++ b/test/webkit/fast/js/JSON-parse-reviver-expected.txt
|
| @@ -0,0 +1,131 @@
|
| +# Copyright 2013 the V8 project authors. All rights reserved.
|
| +# Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
|
| +#
|
| +# Redistribution and use in source and binary forms, with or without
|
| +# modification, are permitted provided that the following conditions
|
| +# are met:
|
| +# 1. Redistributions of source code must retain the above copyright
|
| +# notice, this list of conditions and the following disclaimer.
|
| +# 2. Redistributions in binary form must reproduce the above copyright
|
| +# notice, this list of conditions and the following disclaimer in the
|
| +# documentation and/or other materials provided with the distribution.
|
| +#
|
| +# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
|
| +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| +# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
|
| +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
| +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
| +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
| +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| +
|
| +Test behaviour of JSON reviver function.
|
| +
|
| +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
| +
|
| +
|
| +
|
| +Ensure the holder for our array is indeed an array
|
| +PASS Array.isArray(currentHolder) is true
|
| +PASS currentHolder.length is 5
|
| +
|
| +Ensure that the holder already has all the properties present at the start of filtering
|
| +PASS currentHolder[0] is "a value"
|
| +PASS currentHolder[1] is "another value"
|
| +PASS currentHolder[2] is "and another value"
|
| +PASS currentHolder[3] is "to delete"
|
| +PASS currentHolder[4] is "extra value"
|
| +
|
| +Ensure the holder for our array is indeed an array
|
| +PASS Array.isArray(currentHolder) is true
|
| +PASS currentHolder.length is 5
|
| +
|
| +Ensure that we always get the same holder
|
| +PASS currentHolder is lastHolder
|
| +
|
| +Ensure that returning undefined has removed the property 0 from the holder during filtering.
|
| +FAIL currentHolder.hasOwnProperty(0) should be false. Was true.
|
| +
|
| +Ensure the holder for our array is indeed an array
|
| +PASS Array.isArray(currentHolder) is true
|
| +PASS currentHolder.length is 5
|
| +
|
| +Ensure that we always get the same holder
|
| +PASS currentHolder is lastHolder
|
| +
|
| +Ensure that changing the value of a property is reflected while filtering.
|
| +PASS currentHolder[2] is "a replaced value"
|
| +
|
| +Ensure that the changed value is reflected in the arguments passed to the reviver
|
| +PASS value is currentHolder[2]
|
| +
|
| +Ensure the holder for our array is indeed an array
|
| +PASS Array.isArray(currentHolder) is true
|
| +PASS currentHolder.length is 5
|
| +
|
| +Ensure that we always get the same holder
|
| +PASS currentHolder is lastHolder
|
| +
|
| +Ensure that we visited a value that we have deleted, and that deletion is reflected while filtering.
|
| +PASS currentHolder.hasOwnProperty(3) is false
|
| +
|
| +Ensure that when visiting a deleted property value is undefined
|
| +PASS value is undefined.
|
| +
|
| +Ensure the holder for our array is indeed an array
|
| +PASS Array.isArray(currentHolder) is true
|
| +FAIL currentHolder.length should be 3. Was 4.
|
| +
|
| +Ensure that we always get the same holder
|
| +PASS currentHolder is lastHolder
|
| +FAIL Did not call reviver for deleted property
|
| +
|
| +Ensure that we created the root holder as specified in ES5
|
| +PASS '' in lastHolder is true
|
| +PASS result is lastHolder['']
|
| +
|
| +Ensure that a deleted value is revived if the reviver function returns a value
|
| +FAIL result.hasOwnProperty(3) should be true. Was false.
|
| +
|
| +Test behaviour of revivor used in conjunction with an object
|
| +PASS currentHolder != globalObject is true
|
| +
|
| +Ensure that the holder already has all the properties present at the start of filtering
|
| +PASS currentHolder['a property'] is "a value"
|
| +PASS currentHolder['another property'] is "another value"
|
| +PASS currentHolder['and another property'] is "and another value"
|
| +PASS currentHolder['to delete'] is "will be deleted"
|
| +PASS currentHolder != globalObject is true
|
| +
|
| +Ensure that we get the same holder object for each property
|
| +PASS currentHolder is lastHolder
|
| +
|
| +Ensure that returning undefined has correctly removed the property 'a property' from the holder object
|
| +PASS currentHolder.hasOwnProperty('a property') is false
|
| +PASS currentHolder != globalObject is true
|
| +
|
| +Ensure that we get the same holder object for each property
|
| +PASS currentHolder is lastHolder
|
| +Ensure that changing the value of a property is reflected while filtering.
|
| +PASS currentHolder['and another property'] is "a replaced value"
|
| +
|
| +Ensure that the changed value is reflected in the arguments passed to the reviver
|
| +PASS value is "a replaced value"
|
| +
|
| +Ensure that we created the root holder as specified in ES5
|
| +PASS lastHolder.hasOwnProperty('') is true
|
| +PASS result.hasOwnProperty('a property') is false
|
| +FAIL result.hasOwnProperty('to delete') should be true. Was false.
|
| +PASS result is lastHolder['']
|
| +
|
| +Test behaviour of revivor that introduces a cycle
|
| +PASS JSON.parse("[0,1]", reviveAddsCycle) threw exception RangeError: Maximum call stack size exceeded.
|
| +
|
| +Test behaviour of revivor that introduces a new array classed object (the result of a regex)
|
| +PASS JSON.stringify(JSON.parse("[0,1]", reviveIntroducesNewArrayLikeObject)) is '[0,["a","a"]]'
|
| +PASS successfullyParsed is true
|
| +
|
| +TEST COMPLETE
|
| +
|
|
|