namespace KJS {
-const ClassInfo JSCallbackConstructor::info = { "CallbackConstructor", 0, 0, 0 };
+const ClassInfo JSCallbackConstructor::info = { "CallbackConstructor", 0, 0};
JSCallbackConstructor::JSCallbackConstructor(ExecState* exec, JSClassRef jsClass, JSObjectCallAsConstructorCallback callback)
: JSObject(exec->lexicalInterpreter()->builtinObjectPrototype())
namespace KJS {
-const ClassInfo JSCallbackFunction::info = { "CallbackFunction", &InternalFunctionImp::info, 0, 0 };
+const ClassInfo JSCallbackFunction::info = { "CallbackFunction", &InternalFunctionImp::info, 0};
JSCallbackFunction::JSCallbackFunction(ExecState* exec, JSObjectCallAsFunctionCallback callback, const Identifier& name)
: InternalFunctionImp(static_cast<FunctionPrototype*>(exec->lexicalInterpreter()->builtinFunctionPrototype()), name)
namespace KJS {
// Define the two types of JSCallbackObjects we support.
-template <> const ClassInfo JSCallbackObject<JSObject>::info = { "CallbackObject", 0, 0, 0 };
-template <> const ClassInfo JSCallbackObject<JSGlobalObject>::info = { "CallbackGlobalObject", 0, 0, 0 };
+template <> const ClassInfo JSCallbackObject<JSObject>::info = { "CallbackObject", 0, 0 };
+template <> const ClassInfo JSCallbackObject<JSGlobalObject>::info = { "CallbackGlobalObject", 0, 0 };
} // namespace KJS
+2007-11-03 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Oliver.
+
+ Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
+ The variable had been kept around for binary compatibility, but since nothing
+ else is there is no point in continuing to keep it around.
+
+ * API/JSCallbackConstructor.cpp:
+ (KJS::):
+ * API/JSCallbackFunction.cpp:
+ (KJS::):
+ * API/JSCallbackObject.cpp:
+ (KJS::):
+ * bindings/objc/objc_runtime.mm:
+ * bindings/runtime_array.cpp:
+ * bindings/runtime_object.cpp:
+ * kjs/array_instance.cpp:
+ (KJS::):
+ * kjs/array_object.cpp:
+ (KJS::):
+ * kjs/bool_object.cpp:
+ * kjs/date_object.cpp:
+ (KJS::):
+ * kjs/error_object.cpp:
+ * kjs/function.cpp:
+ (KJS::):
+ * kjs/internal.cpp:
+ (KJS::):
+ * kjs/lookup.h:
+ * kjs/math_object.cpp:
+ * kjs/number_object.cpp:
+ * kjs/object.h:
+ * kjs/regexp_object.cpp:
+ * kjs/string_object.cpp:
+ (KJS::):
+
2007-11-03 Kevin McCullough <kmccullough@apple.com>
- Updated testkjs results to make the build bots green until we
return [_array.get() count];
}
-const ClassInfo ObjcFallbackObjectImp::info = {"ObjcFallbackObject", 0, 0, 0};
+const ClassInfo ObjcFallbackObjectImp::info = { "ObjcFallbackObject", 0, 0 };
ObjcFallbackObjectImp::ObjcFallbackObjectImp(ObjcInstance* i, const KJS::Identifier propertyName)
: _instance(i)
using namespace KJS;
-const ClassInfo RuntimeArray::info = {"RuntimeArray", &ArrayInstance::info, 0, 0};
+const ClassInfo RuntimeArray::info = { "RuntimeArray", &ArrayInstance::info, 0 };
RuntimeArray::RuntimeArray(ExecState *exec, Bindings::Array *a)
: JSObject(exec->lexicalInterpreter()->builtinArrayPrototype())
using namespace KJS;
using namespace Bindings;
-const ClassInfo RuntimeObjectImp::info = {"RuntimeObject", 0, 0, 0};
+const ClassInfo RuntimeObjectImp::info = { "RuntimeObject", 0, 0 };
RuntimeObjectImp::RuntimeObjectImp(Bindings::Instance *i)
: instance(i)
static const unsigned mergeSortCutoff = 10000;
-const ClassInfo ArrayInstance::info = {"Array", 0, 0, 0};
+const ClassInfo ArrayInstance::info = {"Array", 0, 0};
static inline size_t storageSize(unsigned vectorLength)
{
// ------------------------------ ArrayPrototype ----------------------------
-const ClassInfo ArrayPrototype::info = {"Array", &ArrayInstance::info, &arrayTable, 0};
+const ClassInfo ArrayPrototype::info = {"Array", &ArrayInstance::info, &arrayTable};
/* Source for array_object.lut.h
@begin arrayTable 16
// ------------------------------ BooleanInstance ---------------------------
-const ClassInfo BooleanInstance::info = {"Boolean", 0, 0, 0};
+const ClassInfo BooleanInstance::info = {"Boolean", 0, 0};
BooleanInstance::BooleanInstance(JSObject *proto)
: JSWrapperObject(proto)
// ------------------------------ DateInstance ------------------------------
-const ClassInfo DateInstance::info = {"Date", 0, 0, 0};
+const ClassInfo DateInstance::info = {"Date", 0, 0};
DateInstance::DateInstance(JSObject *proto)
: JSWrapperObject(proto)
// ------------------------------ DatePrototype -----------------------------
-const ClassInfo DatePrototype::info = {"Date", &DateInstance::info, &dateTable, 0};
+const ClassInfo DatePrototype::info = {"Date", &DateInstance::info, &dateTable};
/* Source for date_object.lut.h
We use a negative ID to denote the "UTC" variant.
// ------------------------------ ErrorInstance ----------------------------
-const ClassInfo ErrorInstance::info = {"Error", 0, 0, 0};
+const ClassInfo ErrorInstance::info = {"Error", 0, 0};
ErrorInstance::ErrorInstance(JSObject *proto)
: JSObject(proto)
// ------------------------------ NativeErrorImp -------------------------------
-const ClassInfo NativeErrorImp::info = {"Function", &InternalFunctionImp::info, 0, 0};
+const ClassInfo NativeErrorImp::info = {"Function", &InternalFunctionImp::info, 0};
NativeErrorImp::NativeErrorImp(ExecState* exec, FunctionPrototype* funcProto, JSObject* prot)
: InternalFunctionImp(funcProto)
// ----------------------------- FunctionImp ----------------------------------
-const ClassInfo FunctionImp::info = { "Function", &InternalFunctionImp::info, 0, 0 };
+const ClassInfo FunctionImp::info = { "Function", &InternalFunctionImp::info, 0 };
FunctionImp::FunctionImp(ExecState* exec, const Identifier& name, FunctionBodyNode* b, const ScopeChain& sc)
: InternalFunctionImp(static_cast<FunctionPrototype*>(exec->lexicalInterpreter()->builtinFunctionPrototype()), name)
// ------------------------------ Arguments ---------------------------------
-const ClassInfo Arguments::info = {"Arguments", 0, 0, 0};
+const ClassInfo Arguments::info = { "Arguments", 0, 0 };
// ECMA 10.1.8
Arguments::Arguments(ExecState* exec, FunctionImp* func, const List& args, ActivationImp* act)
// ------------------------------ ActivationImp --------------------------------
-const ClassInfo ActivationImp::info = {"Activation", 0, 0, 0};
+const ClassInfo ActivationImp::info = { "Activation", 0, 0 };
ActivationImp::ActivationImp(ExecState* exec)
: d(new ActivationImpPrivate(exec))
// ------------------------------ InternalFunctionImp --------------------------
-const ClassInfo InternalFunctionImp::info = {"Function", 0, 0, 0};
+const ClassInfo InternalFunctionImp::info = { "Function", 0, 0 };
InternalFunctionImp::InternalFunctionImp()
{
};
#define KJS_IMPLEMENT_PROTOTYPE(ClassName, ClassPrototype, ClassFunction) \
- const ClassInfo ClassPrototype::info = { ClassName"Prototype", 0, &ClassPrototype##Table, 0 }; \
+ const ClassInfo ClassPrototype::info = { ClassName"Prototype", 0, &ClassPrototype##Table }; \
JSObject* ClassPrototype::self(ExecState* exec) \
{ \
static Identifier* prototypeIdentifier = new Identifier("[[" ClassName ".prototype]]"); \
// ------------------------------ MathObjectImp --------------------------------
-const ClassInfo MathObjectImp::info = { "Math", 0, &mathTable, 0 };
+const ClassInfo MathObjectImp::info = { "Math", 0, &mathTable };
/* Source for math_object.lut.h
@begin mathTable 21
// ------------------------------ NumberInstance ----------------------------
-const ClassInfo NumberInstance::info = {"Number", 0, 0, 0};
+const ClassInfo NumberInstance::info = { "Number", 0, 0 };
NumberInstance::NumberInstance(JSObject *proto)
: JSWrapperObject(proto)
// ------------------------------ NumberObjectImp ------------------------------
-const ClassInfo NumberObjectImp::info = {"Function", &InternalFunctionImp::info, &numberTable, 0};
+const ClassInfo NumberObjectImp::info = { "Function", &InternalFunctionImp::info, &numberTable };
/* Source for number_object.lut.h
@begin numberTable 5
* Pointer to the class information of the base class.
* 0L if there is none.
*/
- const ClassInfo *parentClass;
+ const ClassInfo* parentClass;
/**
* Static hash-table of properties.
*/
- const HashTable *propHashTable;
- /**
- * Reserved for future extension.
- */
- void *dummy;
+ const HashTable* propHashTable;
};
// This is an internal value object which stores getter and setter functions
* And in your source file:
*
* \code
- * const ClassInfo BarImp::info = {"Bar", 0, 0, 0}; // no parent class
- * const ClassInfo FooImp::info = {"Foo", &BarImp::info, 0, 0};
+ * const ClassInfo BarImp::info = { "Bar", 0, 0 }; // no parent class
+ * const ClassInfo FooImp::info = { "Foo", &BarImp::info, 0 };
* \endcode
*
* @see inherits()
// ECMA 15.10.5
-const ClassInfo RegExpPrototype::info = {"RegExpPrototype", 0, 0, 0};
+const ClassInfo RegExpPrototype::info = { "RegExpPrototype", 0, 0 };
RegExpPrototype::RegExpPrototype(ExecState *exec,
ObjectPrototype *objProto,
// ------------------------------ RegExpImp ------------------------------------
-const ClassInfo RegExpImp::info = {"RegExp", 0, 0, 0};
+const ClassInfo RegExpImp::info = { "RegExp", 0, 0 };
RegExpImp::RegExpImp(RegExpPrototype* regexpProto, RegExp* exp)
: JSObject(regexpProto)
// ------------------------------ RegExpObjectImp ------------------------------
-const ClassInfo RegExpObjectImp::info = {"Function", &InternalFunctionImp::info, &RegExpTable, 0};
+const ClassInfo RegExpObjectImp::info = { "Function", &InternalFunctionImp::info, &RegExpTable };
/* Source for regexp_object.lut.h
@begin RegExpTable 20
// ------------------------------ StringInstance ----------------------------
-const ClassInfo StringInstance::info = {"String", 0, 0, 0};
+const ClassInfo StringInstance::info = { "String", 0, 0 };
StringInstance::StringInstance(JSObject *proto)
: JSWrapperObject(proto)
}
// ------------------------------ StringPrototype ---------------------------
-const ClassInfo StringPrototype::info = {"String", &StringInstance::info, &stringTable, 0};
+const ClassInfo StringPrototype::info = { "String", &StringInstance::info, &stringTable };
/* Source for string_object.lut.h
@begin stringTable 26
toString StringProtoFunc::ToString DontEnum|Function 0
+2007-11-03 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Oliver.
+
+ Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
+ The variable had been kept around for binary compatibility, but since nothing
+ else is there is no point in continuing to keep it around.
+
+ * bindings/js/JSDOMExceptionConstructor.cpp:
+ (WebCore::):
+ * bindings/js/JSHTMLInputElementBase.cpp:
+ (WebCore::):
+ * bindings/js/JSNamedNodesCollection.cpp:
+ (WebCore::):
+ * bindings/js/JSXMLHttpRequest.cpp:
+ (KJS::):
+ * bindings/js/JSXSLTProcessor.cpp:
+ (KJS::):
+ * bindings/js/kjs_css.cpp:
+ (WebCore::):
+ * bindings/js/kjs_events.cpp:
+ (WebCore::):
+ * bindings/js/kjs_navigator.cpp:
+ (KJS::):
+ * bindings/js/kjs_window.cpp:
+ (KJS::):
+ * bindings/scripts/CodeGeneratorJS.pm:
+
2007-11-03 Kevin Ollivier <kevino@theolliviers.com>
Build fixes to get wx impls. building on trunk.
using namespace KJS;
-const ClassInfo JSDOMExceptionConstructor::info = { "DOMExceptionConstructor", 0, 0, 0 };
+const ClassInfo JSDOMExceptionConstructor::info = { "DOMExceptionConstructor", 0, 0 };
/* Source for DOMExceptionConstructorTable. Use "make hashtables" to regenerate.
@begin JSDOMExceptionConstructorTable 15
return jsUndefined();
}
-const ClassInfo JSHTMLInputElementBase::info = { "JSHTMLInputElementBase", &JSHTMLElement::info, &JSHTMLInputElementBaseTable, 0 };
+const ClassInfo JSHTMLInputElementBase::info = { "JSHTMLInputElementBase", &JSHTMLElement::info, &JSHTMLInputElementBaseTable };
JSHTMLInputElementBase::JSHTMLInputElementBase(ExecState* exec, PassRefPtr<HTMLInputElement> e)
: JSHTMLElement(exec, e.get())
using namespace KJS;
-const ClassInfo JSNamedNodesCollection::info = { "Collection", 0, 0, 0 };
+const ClassInfo JSNamedNodesCollection::info = { "Collection", 0, 0 };
// Such a collection is usually very short-lived, it only exists
// for constructs like document.forms.<name>[1],
return new JSXMLHttpRequest(exec, doc.get());
}
-const ClassInfo JSXMLHttpRequest::info = { "JSXMLHttpRequest", 0, &JSXMLHttpRequestTable, 0 };
+const ClassInfo JSXMLHttpRequest::info = { "JSXMLHttpRequest", 0, &JSXMLHttpRequestTable };
/* Source for JSXMLHttpRequestTable.
@begin JSXMLHttpRequestTable 7
namespace KJS {
-const ClassInfo JSXSLTProcessor::info = { "XSLTProcessor", 0, 0, 0 };
+const ClassInfo JSXSLTProcessor::info = { "XSLTProcessor", 0, 0 };
/*
@begin XSLTProcessorPrototypeTable 7
using namespace KJS;
-const ClassInfo JSRGBColor::info = { "RGBColor", 0, &JSRGBColorTable, 0 };
+const ClassInfo JSRGBColor::info = { "RGBColor", 0, &JSRGBColorTable };
/*
@begin JSRGBColorTable 3
// -------------------------------------------------------------------------
-const ClassInfo JSClipboard::info = { "Clipboard", 0, &JSClipboardTable, 0 };
+const ClassInfo JSClipboard::info = { "Clipboard", 0, &JSClipboardTable };
/* Source for JSClipboardTable. Use "make hashtables" to regenerate.
@begin JSClipboardTable 3
namespace KJS {
-const ClassInfo Plugins::info = { "PluginArray", 0, &PluginsTable, 0 };
-const ClassInfo MimeTypes::info = { "MimeTypeArray", 0, &MimeTypesTable, 0 };
-const ClassInfo Plugin::info = { "Plugin", 0, &PluginTable, 0 };
-const ClassInfo MimeType::info = { "MimeType", 0, &MimeTypeTable, 0 };
+const ClassInfo Plugins::info = { "PluginArray", 0, &PluginsTable };
+const ClassInfo MimeTypes::info = { "MimeTypeArray", 0, &MimeTypesTable };
+const ClassInfo Plugin::info = { "Plugin", 0, &PluginTable };
+const ClassInfo MimeType::info = { "MimeType", 0, &MimeTypeTable };
Vector<PluginInfo*> *KJS::PluginBase::plugins = 0;
Vector<MimeClassInfo*> *KJS::PluginBase::mimes = 0;
int KJS::PluginBase::m_plugInCacheRefCount = 0;
-const ClassInfo Navigator::info = { "Navigator", 0, &NavigatorTable, 0 };
+const ClassInfo Navigator::info = { "Navigator", 0, &NavigatorTable };
/*
@begin NavigatorTable 13
appCodeName Navigator::AppCodeName DontDelete|ReadOnly
////////////////////// Window Object ////////////////////////
-const ClassInfo Window::info = { "Window", 0, &WindowTable, 0 };
+const ClassInfo Window::info = { "Window", 0, &WindowTable };
/*
@begin WindowTable 118
////////////////////// Location Object ////////////////////////
-const ClassInfo Location::info = { "Location", 0, &LocationTable, 0 };
+const ClassInfo Location::info = { "Location", 0, &LocationTable };
/*
@begin LocationTable 12
assign Location::Assign DontDelete|Function 1
\@hashKeys, \@hashValues,
\@hashSpecials, \@hashParameters);
- push(@implContent, "const ClassInfo ${className}Prototype::info = { \"${interfaceName}Prototype\", 0, &${className}PrototypeTable, 0 };\n\n");
+ push(@implContent, "const ClassInfo ${className}Prototype::info = { \"${interfaceName}Prototype\", 0, &${className}PrototypeTable };\n\n");
if ($dataNode->extendedAttributes->{"DoNotCache"}) {
push(@implContent, "JSObject* ${className}Prototype::self()\n");
push(@implContent, "{\n");
}
if ($numAttributes > 0) {
- push(@implContent, "&${className}Table, ");
+ push(@implContent, "&${className}Table ");
} else {
- push(@implContent, "0, ")
+ push(@implContent, "0 ")
}
- push(@implContent, "0 };\n\n");
+ push(@implContent, "};\n\n");
# Get correct pass/store types respecting PODType flag
my $podType = $dataNode->extendedAttributes->{"PODType"};
$implContent .= << "EOF";
};
-const ClassInfo ${className}Constructor::info = { "${interfaceName}Constructor", 0, &${className}ConstructorTable, 0 };
+const ClassInfo ${className}Constructor::info = { "${interfaceName}Constructor", 0, &${className}ConstructorTable };
bool ${className}Constructor::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
{