13233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// Copyright 2012 the V8 project authors. All rights reserved. 23233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// Redistribution and use in source and binary forms, with or without 33233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// modification, are permitted provided that the following conditions are 43233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// met: 53233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// 63233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// * Redistributions of source code must retain the above copyright 73233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// notice, this list of conditions and the following disclaimer. 83233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// * Redistributions in binary form must reproduce the above 93233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// copyright notice, this list of conditions and the following 103233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// disclaimer in the documentation and/or other materials provided 113233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// with the distribution. 123233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// * Neither the name of Google Inc. nor the names of its 133233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// contributors may be used to endorse or promote products derived 143233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// from this software without specific prior written permission. 153233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// 163233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 173233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 183233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 193233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 203233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 213233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 223233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 233233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 243233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 253233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 263233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 273233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 283233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// Loads specialized to be from the global object should not omit the 293233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org// smi check on the receiver. The code below should not crash. 303233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 313233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgprint = function() {} 323233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 333233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgfunction constructor() {}; 343233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 353233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgfunction assertHasOwnProperties(object, limit) { 363233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org for (var i = 0; i < limit; i++) { } 373233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} 383233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 393233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgtry { 403233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org Object.keys(); 413233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} catch(exc2) { 423233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org print(exc2.stack); 433233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} 443233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 453233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgvar x1 = new Object(); 463233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 473233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgtry { 483233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org new Function("A Man Called Horse", x1.d); 493233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} catch(exc3) { 503233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org print(exc3.stack); 513233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} 523233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org 533233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.orgtry { 543233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org (-(true)).toPrecision(0x30, 'lib1-f1'); 553233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} catch(exc1) { 563233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org print(exc1.stack); 573233d2f30cad1f77ff9f43fcbee12f182b18f6b6mstarzinger@chromium.org} 58