patch 7.4.1976
Problem:    Number variables are not 64 bits while they could be.
Solution:   Add the num64 feature. (Ken Takata)
diff --git a/src/json.c b/src/json.c
index aa168ec..89c2fd2 100644
--- a/src/json.c
+++ b/src/json.c
@@ -201,8 +201,8 @@
 	    break;
 
 	case VAR_NUMBER:
-	    vim_snprintf((char *)numbuf, NUMBUFLEN, "%ld",
-						    (long)val->vval.v_number);
+	    vim_snprintf((char *)numbuf, NUMBUFLEN, "%lld",
+						    val->vval.v_number);
 	    ga_concat(gap, numbuf);
 	    break;
 
@@ -538,7 +538,7 @@
     int		len;
     char_u	*p;
     int		c;
-    long	nr;
+    varnumber_T	nr;
 
     if (res != NULL)
 	ga_init2(&ga, 1, 200);
@@ -600,7 +600,7 @@
 			    && (int)(reader->js_end - p) >= 6
 			    && *p == '\\' && *(p+1) == 'u')
 		    {
-			long	nr2 = 0;
+			varnumber_T	nr2 = 0;
 
 			/* decode surrogate pair: \ud812\u3456 */
 			len = 0;
@@ -620,7 +620,7 @@
 			buf[utf_char2bytes((int)nr, buf)] = NUL;
 			ga_concat(&ga, buf);
 #else
-			ga_append(&ga, nr);
+			ga_append(&ga, (int)nr);
 #endif
 		    }
 		    break;
@@ -766,7 +766,7 @@
 		else
 #endif
 		{
-		    long nr;
+		    varnumber_T nr;
 
 		    vim_str2nr(reader->js_buf + reader->js_used,
 			    NULL, &len, 0, /* what */