| 109 | |
| 110 | template <class Parent> |
| 111 | void JSCallbackObject<Parent>::init(ExecState* exec) |
| 112 | { |
| 113 | ASSERT(exec); |
| 114 | |
| 115 | Vector<JSObjectInitializeCallback, 16> initRoutines; |
| 116 | JSClassRef jsClass = classRef(); |
| 117 | do { |
| 118 | if (JSObjectInitializeCallback initialize = jsClass->initialize) |
| 119 | initRoutines.append(initialize); |
| 120 | } while ((jsClass = jsClass->parentClass)); |
| 121 | |
| 122 | // initialize from base to derived |
| 123 | for (int i = static_cast<int>(initRoutines.size()) - 1; i >= 0; i--) { |
| 124 | JSLock::DropAllLocks dropAllLocks(exec); |
| 125 | JSObjectInitializeCallback initialize = initRoutines[i]; |
| 126 | initialize(toRef(exec), toRef(this)); |
| 127 | } |
| 128 | |
| 129 | m_classInfo = this->classInfo(); |
| 130 | } |
| 131 | |
| 132 | template <class Parent> |
| 133 | String JSCallbackObject<Parent>::className(const JSObject* object, VM& vm) |
nothing calls this directly
no test coverage detected