CREATE_DOM_NODE_WRAPPER(exec, globalObject, Text, text);
- #define CREATE_DOM_NODE_WRAPPER(exec, globalObject, className, object) createDOMNodeWrapper<JS##className>(exec, globalObject, static_cast<className*>(object))
- template<class WrapperClass, class DOMClass> inline JSNode* createDOMNodeWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* node)
- {
- ASSERT(node);
- ASSERT(!getCachedDOMNodeWrapper(exec, node->document(), node));
- WrapperClass* wrapper = new (exec) WrapperClass(getDOMStructure<WrapperClass>(exec, globalObject), globalObject, node);
- // FIXME: The entire function can be removed, once we fix caching.
- // This function is a one-off hack to make Nodes cache in the right global object.
- cacheDOMNodeWrapper(exec, node->document(), node, wrapper);
- return wrapper;
- }