~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to src/embind/emval.js

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-09-20 22:44:35 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: package-import@ubuntu.com-20130920224435-apuwj4fsl3fqv1a6
Tags: 1.5.6~20130920~6010666-1
* New snapshot release
* Update the list of supported architectures to the same as libv8
  (Closes: #723129)
* emlibtool has been removed from upstream.
* Fix warning syntax-error-in-dep5-copyright
* Refresh of the patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
/*global createNamedFunction*/
5
5
/*global readLatin1String, writeStringToMemory*/
6
6
/*global requireRegisteredType, throwBindingError*/
 
7
/*jslint sub:true*/ /* The symbols 'fromWireType' and 'toWireType' must be accessed via array notation to be closure-safe since craftInvokerFunction crafts functions as strings that can't be closured. */
7
8
 
8
9
var Module = Module || {};
9
10
 
100
101
 
101
102
function __emval_take_value(type, v) {
102
103
    type = requireRegisteredType(type, '_emval_take_value');
103
 
    v = type.fromWireType(v);
 
104
    v = type['fromWireType'](v);
104
105
    return __emval_register(v);
105
106
}
106
107
 
203
204
    returnType = requireRegisteredType(returnType, 'emval::as');
204
205
    var destructors = [];
205
206
    // caller owns destructing
206
 
    return returnType.toWireType(destructors, _emval_handle_array[handle].value);
 
207
    return returnType['toWireType'](destructors, _emval_handle_array[handle].value);
207
208
}
208
209
 
209
210
function parseParameters(argCount, argTypes, argWireTypes) {
212
213
        var argType = requireRegisteredType(
213
214
            HEAP32[(argTypes >> 2) + i],
214
215
            "parameter " + i);
215
 
        a[i] = argType.fromWireType(argWireTypes[i]);
 
216
        a[i] = argType['fromWireType'](argWireTypes[i]);
216
217
    }
217
218
    return a;
218
219
}
223
224
 
224
225
    var args = new Array(argCount);
225
226
    for (var i = 0; i < argCount; ++i) {
226
 
        args[i] = types[i].fromWireType(arguments[3 + i]);
 
227
        args[i] = types[i]['fromWireType'](arguments[3 + i]);
227
228
    }
228
229
 
229
230
    var fn = _emval_handle_array[handle].value;
247
248
    var retType = types[0];
248
249
    var signatureName = retType.name + "_$" + types.slice(1).map(function (t) { return t.name; }).join("_") + "$";
249
250
 
250
 
    var args1 = ["Runtime", "createNamedFunction", "requireHandle", "getStringOrSymbol", "_emval_handle_array", "retType"];
251
 
    var args2 = [Runtime, createNamedFunction, requireHandle, getStringOrSymbol, _emval_handle_array, retType];
 
251
    var args1 = ["addFunction", "createNamedFunction", "requireHandle", "getStringOrSymbol", "_emval_handle_array", "retType"];
 
252
    var args2 = [Runtime.addFunction, createNamedFunction, requireHandle, getStringOrSymbol, _emval_handle_array, retType];
252
253
 
253
254
    var argsList = ""; // 'arg0, arg1, arg2, ... , argN'
254
255
    var argsListWired = ""; // 'arg0Wired, ..., argNWired'
260
261
    }
261
262
 
262
263
    var invokerFnBody =
263
 
        "return Runtime.addFunction(createNamedFunction('" + signatureName + "', function (handle, name" + argsListWired + ") {\n" +
 
264
        "return addFunction(createNamedFunction('" + signatureName + "', function (handle, name" + argsListWired + ") {\n" +
264
265
        "requireHandle(handle);\n" +
265
266
        "name = getStringOrSymbol(name);\n";
266
267