18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 20bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2008, 2009 Apple Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * its contributors may be used to endorse or promote products derived 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * from this software without specific prior written permission. 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "JSNotAnObject.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/UnusedParam.h> 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace JSC { 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectASSERT_CLASS_FITS_IN_CELL(JSNotAnObject); 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// JSValue methods 405f1ab04193ad0130ca8204aadaceae083aca9881Feng QianJSValue JSNotAnObject::toPrimitive(ExecState* exec, PreferredPrimitiveType) const 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 426b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 436b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner return jsNumber(0); 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 465f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianbool JSNotAnObject::getPrimitiveNumber(ExecState* exec, double&, JSValue&) 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 486b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool JSNotAnObject::toBoolean(ExecState* exec) const 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 546b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectdouble JSNotAnObject::toNumber(ExecState* exec) const 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 606b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return NaN; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectUString JSNotAnObject::toString(ExecState* exec) const 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 666b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return ""; 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 702bde8e466a4451c7319e3a072d118917957d6554Steve BlockJSObject* JSNotAnObject::toObject(ExecState* exec, JSGlobalObject*) const 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 726b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 736b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner return const_cast<JSNotAnObject*>(this); 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// JSObject methods 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool JSNotAnObject::getOwnPropertySlot(ExecState* exec, const Identifier&, PropertySlot&) 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 796b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool JSNotAnObject::getOwnPropertySlot(ExecState* exec, unsigned, PropertySlot&) 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 856b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 89231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockbool JSNotAnObject::getOwnPropertyDescriptor(ExecState* exec, const Identifier&, PropertyDescriptor&) 90231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{ 916b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 92231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return false; 93231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} 94231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 955f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianvoid JSNotAnObject::put(ExecState* exec, const Identifier& , JSValue, PutPropertySlot&) 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 976b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1005f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianvoid JSNotAnObject::put(ExecState* exec, unsigned, JSValue) 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1026b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool JSNotAnObject::deleteProperty(ExecState* exec, const Identifier&) 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1076b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool JSNotAnObject::deleteProperty(ExecState* exec, unsigned) 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1136b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 117d0825bca7fe65beaee391d30da42e937db621564Steve Blockvoid JSNotAnObject::getOwnPropertyNames(ExecState* exec, PropertyNameArray&, EnumerationMode) 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1196b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner ASSERT_UNUSED(exec, exec->hadException()); 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace JSC 123