diff options
author | Chad Austin <chad@chadaustin.me> | 2012-09-25 23:35:44 -0700 |
---|---|---|
committer | Chad Austin <chad@chadaustin.me> | 2012-09-25 23:35:44 -0700 |
commit | 58056b5383b1cdcd4f537fad82f9d4a03fb2556e (patch) | |
tree | 5c7bc667dcb82041c5ddcd2d792be0b08f722733 | |
parent | 5208548e7f1db587491e91309ea883917545ba67 (diff) |
Break IMVU dependencies in embind javascript
-rw-r--r-- | src/embind/embind.js | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/embind/embind.js b/src/embind/embind.js index 824058ee..fff19d86 100644 --- a/src/embind/embind.js +++ b/src/embind/embind.js @@ -4,6 +4,16 @@ /*global Pointer_stringify, writeStringToMemory*/ /*global __emval_register, _emval_handle_array, __emval_decref*/ +function createNamedFunction(name, body) { + /*jshint evil:true*/ + return new Function( + "body", + "return function " + name + "() {\n" + + " return body.apply(this, arguments);\n" + + "};\n" + )(body); +} + function _embind_repr(v) { var t = typeof v; if (t === 'object' || t === 'array' || t === 'function') { @@ -352,7 +362,7 @@ function __embind_register_class( name = Pointer_stringify(name); destructor = FUNCTION_TABLE[destructor]; - var Handle = IMVU.createNamedFunction(name, function(ptr) { + var Handle = createNamedFunction(name, function(ptr) { this.count = {value: 1}; this.ptr = ptr; }); @@ -388,7 +398,7 @@ function __embind_register_class( this.ptr = undefined; }; - var constructor = IMVU.createNamedFunction(name, function() { + var constructor = createNamedFunction(name, function() { var body = constructor.body; body.apply(this, arguments); }); @@ -580,7 +590,7 @@ function __embind_register_enum_value( var Value = Object.create(enumType.constructor.prototype, { value: {value: enumValue}, - constructor: {value: IMVU.createNamedFunction(enumType.name + '_' + name, function() {})}, + constructor: {value: createNamedFunction(enumType.name + '_' + name, function() {})}, }); Enum.values[enumValue] = Value; Enum[name] = Value; |