THRIFT-4010 Q.fcall messing up with *this* pointer inside called function
Client: js
Patch: Bruno Fonseca
This closes #1143
diff --git a/compiler/cpp/src/thrift/generate/t_js_generator.cc b/compiler/cpp/src/thrift/generate/t_js_generator.cc
index 3ccd248..985ee0c 100644
--- a/compiler/cpp/src/thrift/generate/t_js_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_js_generator.cc
@@ -1118,7 +1118,7 @@
f_service_ << indent() << "if (this._handler." << tfunction->get_name()
<< ".length === " << fields.size() << ") {" << endl;
indent_up();
- indent(f_service_) << "Q.fcall(this._handler." << tfunction->get_name();
+ indent(f_service_) << "Q.fcall(this._handler." << tfunction->get_name() << ".bind(this._handler)";
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
f_service_ << ", args." << (*f_iter)->get_name();