diff options
author | Ryan <ry@tinyclouds.org> | 2009-06-29 10:55:05 +0200 |
---|---|---|
committer | Ryan <ry@tinyclouds.org> | 2009-06-29 10:55:05 +0200 |
commit | e763efdadf4bbd9c0155a4c7f782d271a2fd5814 (patch) | |
tree | 094824e55548cdeb2ce9b796cbf29aaa591bb69f /deps/v8/test/mjsunit/regress/regress-386.js | |
parent | e876d6629e8682f5d818141bc0710f6d82311373 (diff) | |
download | node-new-e763efdadf4bbd9c0155a4c7f782d271a2fd5814.tar.gz |
Upgrade v8 to 1.2.10 and libev to 3.6
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-386.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/regress-386.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-386.js b/deps/v8/test/mjsunit/regress/regress-386.js new file mode 100644 index 0000000000..06e4b8edfe --- /dev/null +++ b/deps/v8/test/mjsunit/regress/regress-386.js @@ -0,0 +1,47 @@ +// Copyright 2009 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * 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. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT +// OWNER OR 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 for http://code.google.com/p/v8/issues/detail?id=386 +// This test creates enough properties in A so that adding i as +// a constant function, in the first call to the constructor, leaves +// the object's map in the fast case and adds a constant function map +// transition. +// Adding i in the second call to the constructor creates a real property, +// and simultaneously converts the object from fast case to slow case +// and changes i from a map transition to a real property. There was +// a flaw in the code that handled this combination of events. + +function A() { + for (var i = 0; i < 13; i++) { + this['a' + i] = i; + } + this.i = function(){}; +}; + +new A(); +new A(); |