lua/lua.vm.js
// Internal function that does a C call using a function, not an identifier
Internal function that does a C call using a function, not an identifier
Internal function that does a C call using a function not an identifier
function ccallFunc(func, returnType, argTypes, args) {
  var stack = 0;
  function toC(value, type) {
    if (type == 'string') {
      if (value === null || value === undefined || value === 0) return 0; 
      if (!stack) stack = Runtime.stackSave();
      var ret = Runtime.stackAlloc(value.length+1);
      writeStringToMemory(value, ret);
      return ret;
    } else if (type == 'array') {
      if (!stack) stack = Runtime.stackSave();
      var ret = Runtime.stackAlloc(value.length);
      writeArrayToMemory(value, ret);
      return ret;
    }
    return value;
  }
  function fromC(value, type) {
    if (type == 'string') {
      return Pointer_stringify(value);
    }
    assert(type != 'array');
    return value;
  }
  var i = 0;
  var cArgs = args ? args.map(function(arg) {
    return toC(arg, argTypes[i++]);
  }) : [];
  var ret = fromC(func.apply(null, cArgs), returnType);
  if (stack) Runtime.stackRestore(stack);
  return ret;
}
function ccallFunc ( func , returnType , argTypes , args ) { var stack = 0 ; function toC ( value , type ) { if ( type == 'string' ) { if ( value === null || value === undefined || value === 0 ) return 0 ; if ( ! stack ) stack = Runtime . stackSave ( ) ; var ret = Runtime . stackAlloc ( value . length + 1 ) ; writeStringToMemory ( value , ret ) ; return ret ; } else if ( type == 'array' ) { if ( ! stack ) stack = Runtime . stackSave ( ) ; var ret = Runtime . stackAlloc ( value . length ) ; writeArrayToMemory ( value , ret ) ; return ret ; } return value ; } function fromC ( value , type ) { if ( type == 'string' ) { return Pointer_stringify ( value ) ; } assert ( type != 'array' ) ; return value ; } var i = 0 ; var cArgs = args ? args . map ( function ( arg ) { return toC ( arg , argTypes [ i ++ ] ) ; } ) : [ ] ; var ret = fromC ( func . apply ( null , cArgs ) , returnType ) ; if ( stack ) Runtime . stackRestore ( stack ) ; return ret ; }
Internal function that does a C call using a function, not an identifier
Internal function that does a C call using a function not an identifier
// null string