| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions | 5 // modification, are permitted provided that the following conditions |
| 6 // are met: | 6 // are met: |
| 7 // 1. Redistributions of source code must retain the above copyright | 7 // 1. Redistributions of source code must retain the above copyright |
| 8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
| 9 // 2. Redistributions in binary form must reproduce the above copyright | 9 // 2. Redistributions in binary form must reproduce the above copyright |
| 10 // notice, this list of conditions and the following disclaimer in the | 10 // notice, this list of conditions and the following disclaimer in the |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 break; | 68 break; |
| 69 | 69 |
| 70 case 3: | 70 case 3: |
| 71 debug(""); | 71 debug(""); |
| 72 debug("Ensure that we visited a value that we have deleted, and that
deletion is reflected while filtering."); | 72 debug("Ensure that we visited a value that we have deleted, and that
deletion is reflected while filtering."); |
| 73 shouldBeFalse("currentHolder.hasOwnProperty(3)"); | 73 shouldBeFalse("currentHolder.hasOwnProperty(3)"); |
| 74 value = v; | 74 value = v; |
| 75 debug(""); | 75 debug(""); |
| 76 debug("Ensure that when visiting a deleted property value is undefin
ed"); | 76 debug("Ensure that when visiting a deleted property value is undefin
ed"); |
| 77 shouldBeUndefined("value"); | 77 shouldBeUndefined("value"); |
| 78 this.length = 3; |
| 78 v = "undelete the property"; | 79 v = "undelete the property"; |
| 79 expectedLength = this.length = 3; | 80 expectedLength = 4; |
| 80 break; | 81 break; |
| 81 | 82 |
| 82 case 4: | 83 case 4: |
| 83 if (this.length != 3) { | 84 if (this.length != 4) { |
| 84 testFailed("Did not call reviver for deleted property"); | 85 testFailed("Did not call reviver for deleted property"); |
| 85 expectedLength = this.length = 3; | 86 expectedLength = this.length = 3; |
| 86 break; | 87 break; |
| 87 } | 88 } |
| 88 | 89 |
| 89 case 5: | 90 case 5: |
| 90 testPassed("Ensured that property was visited despite Array length b
eing reduced."); | 91 testPassed("Ensured that property was visited despite Array length b
eing reduced."); |
| 91 value = v; | 92 value = v; |
| 92 shouldBeUndefined("value"); | 93 shouldBeUndefined("value"); |
| 93 this[10] = "fail"; | 94 this[10] = "fail"; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 var createdBadness = false; | 195 var createdBadness = false; |
| 195 function reviveIntroducesNewArrayLikeObject(i, v) { | 196 function reviveIntroducesNewArrayLikeObject(i, v) { |
| 196 if (i == 0 && !createdBadness) { | 197 if (i == 0 && !createdBadness) { |
| 197 this[1] = /(a)+/.exec("a"); | 198 this[1] = /(a)+/.exec("a"); |
| 198 createdBadness = true; | 199 createdBadness = true; |
| 199 } | 200 } |
| 200 return v; | 201 return v; |
| 201 } | 202 } |
| 202 | 203 |
| 203 shouldBe('JSON.stringify(JSON.parse("[0,1]", reviveIntroducesNewArrayLikeObject)
)', '\'[0,["a","a"]]\''); | 204 shouldBe('JSON.stringify(JSON.parse("[0,1]", reviveIntroducesNewArrayLikeObject)
)', '\'[0,["a","a"]]\''); |
| OLD | NEW |