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