emscripten-library-decorator
Advanced tools
Comparing version 0.1.2 to 0.1.3
17
index.ts
@@ -42,4 +42,6 @@ // @dep decorator. | ||
var namespaceBodyTbl: { [name: string]: string } = {}; | ||
// @exportNamespace decorator. | ||
// Apply to a class named "_" and defined at the end of the namespace, | ||
// Apply to an empty, named dummy class defined at the end of the namespace, | ||
// to export the entire namespace. | ||
@@ -51,4 +53,13 @@ | ||
var body = '(' + __decorate.caller.caller.toString().replace(/var +_ *= *[^]*/, '}') + ')'; | ||
var body = __decorate.caller.caller.toString(); | ||
var prefix = new RegExp('^[ (]*function *\\( *' + name + ' *\\) *\\{'); | ||
var suffix = new RegExp('var +' + target.name + ' *= *[^]*$'); | ||
body = (namespaceBodyTbl[name] || '') + body.replace(prefix, '').replace(suffix, ''); | ||
namespaceBodyTbl[name] = body; | ||
var bodyWrapped = '(function(' + name + '){' + body + '})' + '(' + name + ')'; | ||
eval(name + '={};'); | ||
@@ -63,3 +74,3 @@ | ||
lib[exportName + '__deps'] = Object.keys(lib); | ||
lib[exportName + '__postset'] = body + '(' + name + ')'; | ||
lib[exportName + '__postset'] = bodyWrapped; | ||
@@ -66,0 +77,0 @@ mergeInto(LibraryManager.library, lib); |
{ | ||
"name": "emscripten-library-decorator", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"description": "Decorators for writing Emscripten libraries", | ||
@@ -5,0 +5,0 @@ "homepage": "https://github.com/charto/emscripten-library-decorator", |
5899
77