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