1db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// Copyright 2010 the V8 project authors. All rights reserved. 2db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// Redistribution and use in source and binary forms, with or without 3db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// modification, are permitted provided that the following conditions are 4db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// met: 5db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// 6db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// * Redistributions of source code must retain the above copyright 7db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// notice, this list of conditions and the following disclaimer. 8db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// * Redistributions in binary form must reproduce the above 9db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// copyright notice, this list of conditions and the following 10db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// disclaimer in the documentation and/or other materials provided 11db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// with the distribution. 12db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// * Neither the name of Google Inc. nor the names of its 13db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// contributors may be used to endorse or promote products derived 14db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// from this software without specific prior written permission. 15db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// 16db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch 28db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// Test that readonly variables are treated correctly. 29db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch 30db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// Create an object with a read-only length property in the prototype 31db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch// chain by putting the string split function in the prototype chain. 32db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdochvar o = {}; 33db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdocho.__proto__ = String.prototype.split; 34db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch 35db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdochfunction f() { 36db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch with (o) { 37db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch length = 23; 38db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch length = 24; 39db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch assertEquals(24, length); 40db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch } 41db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch} 42db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdochf(); 43db5a90a88cfcddb042912799e872037c6548b8a3Ben Murdoch 44