diff options
| author | Bob Jamison <ishmalius@gmail.com> | 2006-08-29 09:56:23 +0000 |
|---|---|---|
| committer | ishmal <ishmal@users.sourceforge.net> | 2006-08-29 09:56:23 +0000 |
| commit | 4281e6f70b3cfc76d392b493c28cc063fd236a0a (patch) | |
| tree | ba6b86da0cf2520d152345840b26c952a85bb930 /src/dom/jsbind.cpp | |
| parent | added getHaveSSL() (diff) | |
| download | inkscape-4281e6f70b3cfc76d392b493c28cc063fd236a0a.tar.gz inkscape-4281e6f70b3cfc76d392b493c28cc063fd236a0a.zip | |
Start shell. Begin to make prototypes and wrappers.
(bzr r1657)
Diffstat (limited to 'src/dom/jsbind.cpp')
| -rw-r--r-- | src/dom/jsbind.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/dom/jsbind.cpp b/src/dom/jsbind.cpp index 60d7adadc..4e2af1dec 100644 --- a/src/dom/jsbind.cpp +++ b/src/dom/jsbind.cpp @@ -1674,10 +1674,11 @@ public: } + static JSClass classDef; + private: // Standard JS Binding fields - static JSClass classDef; static JSPropertySpec properties[]; enum { @@ -5345,11 +5346,38 @@ JSFunctionSpec ECMA_ProcessingInstruction::methods[] = bool JavascriptEngine::createClasses() { - + nodeProto = + ECMA_Node::JSInit(cx, globalObj); + characterDataProto = + ECMA_CharacterData::JSInit(cx, globalObj, nodeProto); + textProto = + ECMA_Text::JSInit(cx, globalObj, characterDataProto); + cdataProto = + ECMA_CDATASection::JSInit(cx, globalObj, textProto); + documentProto = + ECMA_CDATASection::JSInit(cx, globalObj, cdataProto); return true; } +JSObject *JavascriptEngine::wrapDocument(const Document *doc) +{ + if (!doc) + { + error("wrapDocument: null document parameter"); + return NULL; + } + + JSObject *jsdoc = JS_NewObject(cx, &ECMA_Document::classDef, + documentProto, NULL); + + //Wrap around the document... done! + JS_SetPrivate(cx, jsdoc, (void *)doc); + + return jsdoc; +} + + } // namespace dom } // namespace w3c } // namespace org |
