|  | @@ -461,6 +461,9 @@ void Call::Init(Handle<Object> exports) {
 | 
	
		
			
				|  |  |                            NanNew<FunctionTemplate>(StartBatch)->GetFunction());
 | 
	
		
			
				|  |  |    NanSetPrototypeTemplate(tpl, "cancel",
 | 
	
		
			
				|  |  |                            NanNew<FunctionTemplate>(Cancel)->GetFunction());
 | 
	
		
			
				|  |  | +  NanSetPrototypeTemplate(
 | 
	
		
			
				|  |  | +      tpl, "cancelWithStatus",
 | 
	
		
			
				|  |  | +      NanNew<FunctionTemplate>(CancelWithStatus)->GetFunction());
 | 
	
		
			
				|  |  |    NanSetPrototypeTemplate(tpl, "getPeer",
 | 
	
		
			
				|  |  |                            NanNew<FunctionTemplate>(GetPeer)->GetFunction());
 | 
	
		
			
				|  |  |    NanAssignPersistent(fun_tpl, tpl);
 | 
	
	
		
			
				|  | @@ -643,6 +646,26 @@ NAN_METHOD(Call::Cancel) {
 | 
	
		
			
				|  |  |    NanReturnUndefined();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +NAN_METHOD(Call::CancelWithStatus) {
 | 
	
		
			
				|  |  | +  NanScope();
 | 
	
		
			
				|  |  | +  if (!HasInstance(args.This())) {
 | 
	
		
			
				|  |  | +    return NanThrowTypeError("cancel can only be called on Call objects");
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  if (!args[0]->IsUint32()) {
 | 
	
		
			
				|  |  | +    return NanThrowTypeError(
 | 
	
		
			
				|  |  | +        "cancelWithStatus's first argument must be a status code");
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  if (!args[1]->IsString()) {
 | 
	
		
			
				|  |  | +    return NanThrowTypeError(
 | 
	
		
			
				|  |  | +        "cancelWithStatus's second argument must be a string");
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  Call *call = ObjectWrap::Unwrap<Call>(args.This());
 | 
	
		
			
				|  |  | +  grpc_status_code code = static_cast<grpc_status_code>(args[0]->Uint32Value());
 | 
	
		
			
				|  |  | +  NanUtf8String details(args[0]);
 | 
	
		
			
				|  |  | +  grpc_call_cancel_with_status(call->wrapped_call, code, *details, NULL);
 | 
	
		
			
				|  |  | +  NanReturnUndefined();
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  NAN_METHOD(Call::GetPeer) {
 | 
	
		
			
				|  |  |    NanScope();
 | 
	
		
			
				|  |  |    if (!HasInstance(args.This())) {
 |