diff --git a/tools/webidl_binder.py b/tools/webidl_binder.py index 9f8d81dd58cb2..4fd0dac1e2bff 100644 --- a/tools/webidl_binder.py +++ b/tools/webidl_binder.py @@ -586,14 +586,14 @@ def render_function(class_name, func_name, sigs, return_type, non_pointer, if not constructor: if i == max_args: dec_args = ', '.join([type_to_cdec(raw[j]) + ' ' + args[j] for j in range(i)]) - js_call_args = ', '.join(['%s%s' % (('(int)' if sig[j] in interfaces else '') + take_addr_if_nonpointer(raw[j]), args[j]) for j in range(i)]) + js_call_args = ', '.join(['%s%s' % (('(ptrdiff_t)' if sig[j] in interfaces else '') + take_addr_if_nonpointer(raw[j]), args[j]) for j in range(i)]) js_impl_methods.append(r''' %s %s(%s) %s { %sEM_ASM_%s({ var self = Module['getCache'](Module['%s'])[$0]; if (!self.hasOwnProperty('%s')) throw 'a JSImplementation must implement all functions, you forgot %s::%s.'; %sself['%s'](%s)%s; - }, (int)this%s); + }, (ptrdiff_t)this%s); }''' % (c_return_type, func_name, dec_args, maybe_const, basic_return, 'INT' if c_return_type not in C_FLOATS else 'DOUBLE', class_name,