| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright 2013 the V8 project authors. All rights reserved. | 
 |   2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 
 |   3 // | 
 |   4 // Redistribution and use in source and binary forms, with or without | 
 |   5 // modification, are permitted provided that the following conditions | 
 |   6 // are met: | 
 |   7 // 1.  Redistributions of source code must retain the above copyright | 
 |   8 //     notice, this list of conditions and the following disclaimer. | 
 |   9 // 2.  Redistributions in binary form must reproduce the above copyright | 
 |  10 //     notice, this list of conditions and the following disclaimer in the | 
 |  11 //     documentation and/or other materials provided with the distribution. | 
 |  12 // | 
 |  13 // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN
    Y | 
 |  14 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 
 |  15 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 
 |  16 // DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN
    Y | 
 |  17 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 
 |  18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 
 |  19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O
    N | 
 |  20 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
 |  21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 
 |  22 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
 |  23  | 
 |  24 description( | 
 |  25 "This test checks that object literals are serialized properly. " + | 
 |  26 "It's needed in part because JavaScriptCore converts numeric property names to s
    tring and back." | 
 |  27 ); | 
 |  28  | 
 |  29 function compileAndSerialize(expression) | 
 |  30 { | 
 |  31     var f = eval("(function () { return " + expression + "; })"); | 
 |  32     var serializedString = f.toString(); | 
 |  33     serializedString = serializedString.replace(/[ \t\r\n]+/g, " "); | 
 |  34     serializedString = serializedString.replace("function () { return ", ""); | 
 |  35     serializedString = serializedString.replace("; }", ""); | 
 |  36     return serializedString; | 
 |  37 } | 
 |  38  | 
 |  39 shouldBe("compileAndSerialize('a = { 1: null }')", "'a = { 1: null }'"); | 
 |  40 shouldBe("compileAndSerialize('a = { 0: null }')", "'a = { 0: null }'"); | 
 |  41 shouldBe("compileAndSerialize('a = { 1.0: null }')", "'a = { 1.0: null }'"); | 
 |  42 shouldBe("compileAndSerialize('a = { \"1.0\": null }')", "'a = { \"1.0\": null }
    '"); | 
 |  43 shouldBe("compileAndSerialize('a = { 1e-500: null }')", "'a = { 1e-500: null }'"
    ); | 
 |  44 shouldBe("compileAndSerialize('a = { 1e-300: null }')", "'a = { 1e-300: null }'"
    ); | 
 |  45 shouldBe("compileAndSerialize('a = { 1e300: null }')", "'a = { 1e300: null }'"); | 
 |  46 shouldBe("compileAndSerialize('a = { 1e500: null }')", "'a = { 1e500: null }'"); | 
 |  47  | 
 |  48 shouldBe("compileAndSerialize('a = { NaN: null }')", "'a = { NaN: null }'"); | 
 |  49 shouldBe("compileAndSerialize('a = { Infinity: null }')", "'a = { Infinity: null
     }'"); | 
 |  50  | 
 |  51 shouldBe("compileAndSerialize('a = { \"1\": null }')", "'a = { \"1\": null }'"); | 
 |  52 shouldBe("compileAndSerialize('a = { \"1hi\": null }')", "'a = { \"1hi\": null }
    '"); | 
 |  53 shouldBe("compileAndSerialize('a = { \"\\\'\": null }')", "'a = { \"\\\'\": null
     }'"); | 
 |  54 shouldBe("compileAndSerialize('a = { \"\\\\\"\": null }')", "'a = { \"\\\\\"\": 
    null }'"); | 
 |  55  | 
 |  56 shouldBe("compileAndSerialize('a = { get x() { } }')", "'a = { get x() { } }'"); | 
 |  57 shouldBe("compileAndSerialize('a = { set x(y) { } }')", "'a = { set x(y) { } }'"
    ); | 
 |  58  | 
 |  59 shouldThrow("compileAndSerialize('a = { --1: null }')"); | 
 |  60 shouldThrow("compileAndSerialize('a = { -NaN: null }')"); | 
 |  61 shouldThrow("compileAndSerialize('a = { -0: null }')"); | 
 |  62 shouldThrow("compileAndSerialize('a = { -0.0: null }')"); | 
 |  63 shouldThrow("compileAndSerialize('a = { -Infinity: null }')"); | 
| OLD | NEW |