source: webkit/trunk/JavaScriptCore/kjs/NumberObject.cpp@ 35906

Last change on this file since 35906 was 35807, checked in by [email protected], 17 years ago

JavaScriptCore:

2008-08-17 Geoffrey Garen <[email protected]>

Reviewed by Cameron Zwarich.

Made room for a free word in JSCell.


SunSpider says no change.


I changed JSCallbackObjectData, Arguments, JSArray, and RegExpObject to
store auxiliary data in a secondary structure.

I changed InternalFunction to store the function's name in the property
map.


I changed JSGlobalObjectData to use a virtual destructor, so WebCore's
JSDOMWindowBaseData could inherit from it safely. (It's a strange design
for JSDOMWindowBase to allocate an object that JSGlobalObject deletes,
but that's really our only option, given the size constraint.)


I also added a bunch of compile-time ASSERTs, and removed lots of comments
in JSObject.h because they were often out of date, and they got in the
way of reading what was actually going on.


Also renamed JSArray::getLength to JSArray::length, to match our style
guidelines.

WebCore:

2008-08-17 Geoffrey Garen <[email protected]>

Reviewed by Cameron Zwarich.

Made room for a free word in JSCell.


Changed JSDOMWindowBase to store its auxiliary data in a subclass of
JSGlobalData, so the two could share a pointer.


Added a bunch of ASSERTs, to help catch over-sized objects.

WebKit/mac:

2008-08-17 Geoffrey Garen <[email protected]>

Reviewed by Cameron Zwarich.

Made room for a free word in JSCell.


(Updated for JavaScriptCore changes.)

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1/*
2 * Copyright (C) 1999-2000,2003 Harri Porten ([email protected])
3 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
18 * USA
19 *
20 */
21
22#include "config.h"
23#include "NumberObject.h"
24
25#include "JSGlobalObject.h"
26#include "NumberPrototype.h"
27
28namespace KJS {
29
30ASSERT_CLASS_FITS_IN_CELL(NumberObject);
31
32const ClassInfo NumberObject::info = { "Number", 0, 0, 0 };
33
34NumberObject::NumberObject(JSObject* prototype)
35 : JSWrapperObject(prototype)
36{
37}
38
39JSValue* NumberObject::getJSNumber()
40{
41 return internalValue();
42}
43
44NumberObject* constructNumber(ExecState* exec, JSNumberCell* number)
45{
46 NumberObject* obj = new (exec) NumberObject(exec->lexicalGlobalObject()->numberPrototype());
47 obj->setInternalValue(number);
48 return obj;
49}
50
51NumberObject* constructNumberFromImmediateNumber(ExecState* exec, JSValue* value)
52{
53 NumberObject* obj = new (exec) NumberObject(exec->lexicalGlobalObject()->numberPrototype());
54 obj->setInternalValue(value);
55 return obj;
56}
57
58} // namespace KJS
Note: See TracBrowser for help on using the repository browser.