[Pkg-javascript-commits] [json-js] 65/85: Anticipating new JSLint

Jonas Smedegaard dr at jones.dk
Mon Mar 14 10:39:43 UTC 2016


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository json-js.

commit 4982ffbecf8175f233b0c9626bc8629c70faf5a2
Author: Douglas Crockford <douglas at crockford.com>
Date:   Wed Feb 25 10:21:21 2015 -0800

    Anticipating new JSLint
---
 cycle.js            |  18 ++++-----
 json.js             |  97 ++++++++++++++++++++++++++++---------------------
 json2.js            | 103 ++++++++++++++++++++++++++++++++--------------------
 json_parse.js       |  61 +++++++++++++++++--------------
 json_parse_state.js |  36 ++++++++++--------
 5 files changed, 181 insertions(+), 134 deletions(-)

diff --git a/cycle.js b/cycle.js
index 5312e38..0839437 100644
--- a/cycle.js
+++ b/cycle.js
@@ -1,6 +1,6 @@
 /*
     cycle.js
-    2013-02-19
+    2015-02-25
 
     Public Domain.
 
@@ -13,9 +13,10 @@
     NOT CONTROL.
 */
 
-/*jslint evil: true, regexp: true */
+/*jslint eval, for */
 
-/*members $ref, apply, call, decycle, hasOwnProperty, length, prototype, push,
+/*property 
+    $ref, apply, call, decycle, hasOwnProperty, length, prototype, push,
     retrocycle, stringify, test, toString
 */
 
@@ -55,9 +56,9 @@ if (typeof JSON.decycle !== 'function') {
 
             if (typeof value === 'object' && value !== null &&
                     !(value instanceof Boolean) &&
-                    !(value instanceof Date)    &&
-                    !(value instanceof Number)  &&
-                    !(value instanceof RegExp)  &&
+                    !(value instanceof Date) &&
+                    !(value instanceof Number) &&
+                    !(value instanceof RegExp) &&
                     !(value instanceof String)) {
 
 // If the value is an object or array, look to see if we have already
@@ -90,7 +91,7 @@ if (typeof JSON.decycle !== 'function') {
                     for (name in value) {
                         if (Object.prototype.hasOwnProperty.call(value, name)) {
                             nu[name] = derez(value[name],
-                                path + '[' + JSON.stringify(name) + ']');
+                                    path + '[' + JSON.stringify(name) + ']');
                         }
                     }
                 }
@@ -125,8 +126,7 @@ if (typeof JSON.retrocycle !== 'function') {
 //      return JSON.retrocycle(JSON.parse(s));
 // produces an array containing a single element which is the array itself.
 
-        var px =
-            /^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/;
+        var px = /^\$(?:\[(?:\d+|\"(?:[^\\\"\u0000-\u001f]|\\([\\\"\/bfnrt]|u[0-9a-zA-Z]{4}))*\")\])*$/;
 
         (function rez(value) {
 
diff --git a/json.js b/json.js
index ef41ecd..8f5d91e 100644
--- a/json.js
+++ b/json.js
@@ -1,6 +1,6 @@
 /*
     json.js
-    2014-02-04
+    2014-02-25
 
     Public Domain
 
@@ -183,16 +183,15 @@
     redistribute.
 */
 
-/*jslint evil: true, regexp: true, unparam: true */
+/*jslint eval, for, this */
 
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+/*property
+    JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
     getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
     lastIndex, length, parse, parseJSON, prototype, push, replace, slice,
     stringify, test, toJSON, toJSONString, toString, valueOf
 */
 
-
 // Create a JSON object only if one does not already exist. We create the
 // methods in a closure to avoid creating global variables.
 
@@ -205,28 +204,32 @@ if (typeof JSON !== 'object') {
 
     function f(n) {
         // Format integers to have at least two digits.
-        return n < 10 ? '0' + n : n;
+        return n < 10 
+        ? '0' + n 
+        : n;
+    }
+    
+    function this_value() {
+        return this.valueOf();
     }
 
     if (typeof Date.prototype.toJSON !== 'function') {
 
-        Date.prototype.toJSON = function (key) {
+        Date.prototype.toJSON = function (ignore) {
 
             return isFinite(this.valueOf())
-                ?     this.getUTCFullYear()   + '-' +
+            ? this.getUTCFullYear() + '-' +
                     f(this.getUTCMonth() + 1) + '-' +
-                    f(this.getUTCDate())      + 'T' +
-                    f(this.getUTCHours())     + ':' +
-                    f(this.getUTCMinutes())   + ':' +
-                    f(this.getUTCSeconds())   + 'Z'
-                : null;
+                    f(this.getUTCDate()) + 'T' +
+                    f(this.getUTCHours()) + ':' +
+                    f(this.getUTCMinutes()) + ':' +
+                    f(this.getUTCSeconds()) + 'Z'
+            : null;
         };
 
-        String.prototype.toJSON      =
-            Number.prototype.toJSON  =
-            Boolean.prototype.toJSON = function (key) {
-                return this.valueOf();
-            };
+        Boolean.prototype.toJSON = this_value;
+        Number.prototype.toJSON = this_value;
+        String.prototype.toJSON = this_value;
     }
 
     var cx,
@@ -245,12 +248,14 @@ if (typeof JSON !== 'object') {
 // sequences.
 
         escapable.lastIndex = 0;
-        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
+        return escapable.test(string) 
+        ? '"' + string.replace(escapable, function (a) {
             var c = meta[a];
             return typeof c === 'string'
-                ? c
-                : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-        }) + '"' : '"' + string + '"';
+            ? c
+            : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+        }) + '"' 
+        : '"' + string + '"';
     }
 
 
@@ -290,7 +295,9 @@ if (typeof JSON !== 'object') {
 
 // JSON numbers must be finite. Encode non-finite numbers as null.
 
-            return isFinite(value) ? String(value) : 'null';
+            return isFinite(value) 
+            ? String(value) 
+            : 'null';
 
         case 'boolean':
         case 'null':
@@ -334,10 +341,10 @@ if (typeof JSON !== 'object') {
 // brackets.
 
                 v = partial.length === 0
-                    ? '[]'
-                    : gap
-                    ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
-                    : '[' + partial.join(',') + ']';
+                ? '[]'
+                : gap
+                ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
+                : '[' + partial.join(',') + ']';
                 gap = mind;
                 return v;
             }
@@ -351,7 +358,9 @@ if (typeof JSON !== 'object') {
                     if (typeof k === 'string') {
                         v = str(k, value);
                         if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                            partial.push(quote(k) + (gap 
+                            ? ': ' 
+                            : ':') + v);
                         }
                     }
                 }
@@ -363,7 +372,9 @@ if (typeof JSON !== 'object') {
                     if (Object.prototype.hasOwnProperty.call(value, k)) {
                         v = str(k, value);
                         if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                            partial.push(quote(k) + (gap 
+                            ? ': ' 
+                            : ':') + v);
                         }
                     }
                 }
@@ -372,10 +383,11 @@ if (typeof JSON !== 'object') {
 // Join all of the member texts together, separated with commas,
 // and wrap them in braces.
 
-            v = partial.length === 0 ? '{}'
-                : gap
-                ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
-                : '{' + partial.join(',') + '}';
+            v = partial.length === 0 
+            ? '{}'
+            : gap
+            ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
+            : '{' + partial.join(',') + '}';
             gap = mind;
             return v;
         }
@@ -384,14 +396,14 @@ if (typeof JSON !== 'object') {
 // If the JSON object does not yet have a stringify method, give it one.
 
     if (typeof JSON.stringify !== 'function') {
-        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+        escapable = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
         meta = {    // table of character substitutions
             '\b': '\\b',
             '\t': '\\t',
             '\n': '\\n',
             '\f': '\\f',
             '\r': '\\r',
-            '"' : '\\"',
+            '"': '\\"',
             '\\': '\\\\'
         };
         JSON.stringify = function (value, replacer, space) {
@@ -480,7 +492,7 @@ if (typeof JSON !== 'object') {
             if (cx.test(text)) {
                 text = text.replace(cx, function (a) {
                     return '\\u' +
-                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+                            ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                 });
             }
 
@@ -497,10 +509,11 @@ if (typeof JSON !== 'object') {
 // we look to see that the remaining characters are only whitespace or ']' or
 // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
 
-            if (/^[\],:{}\s]*$/
-                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
-                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+            if (/^[\],:{}\s]*$/.test(
+                text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
+                    .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
+                    .replace(/(?:^|:|,)(?:\s*\[)+/g, '')
+            )) {
 
 // In the third stage we use the eval function to compile the text into a
 // JavaScript structure. The '{' operator is subject to a syntactic ambiguity
@@ -513,8 +526,8 @@ if (typeof JSON !== 'object') {
 // each name/value pair to a reviver function for possible transformation.
 
                 return typeof reviver === 'function'
-                    ? walk({'': j}, '')
-                    : j;
+                ? walk({'': j}, '')
+                : j;
             }
 
 // If the text is not JSON parseable, then a SyntaxError is thrown.
diff --git a/json2.js b/json2.js
index deb88ec..d403181 100644
--- a/json2.js
+++ b/json2.js
@@ -1,6 +1,6 @@
 /*
     json2.js
-    2014-02-04
+    2015-02-25
 
     Public Domain.
 
@@ -48,7 +48,9 @@
                 Date.prototype.toJSON = function (key) {
                     function f(n) {
                         // Format integers to have at least two digits.
-                        return n < 10 ? '0' + n : n;
+                        return n < 10 
+                        ? '0' + n 
+                        : n;
                     }
 
                     return this.getUTCFullYear()   + '-' +
@@ -146,10 +148,12 @@
     redistribute.
 */
 
-/*jslint evil: true, regexp: true */
+/*jslint 
+    eval, for, this 
+*/
 
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+/*property
+    JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
     getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
     lastIndex, length, parse, prototype, push, replace, slice, stringify,
     test, toJSON, toString, valueOf
@@ -168,7 +172,13 @@ if (typeof JSON !== 'object') {
 
     function f(n) {
         // Format integers to have at least two digits.
-        return n < 10 ? '0' + n : n;
+        return n < 10 
+        ? '0' + n 
+        : n;
+    }
+    
+    function this_value() {
+        return this.valueOf();
     }
 
     if (typeof Date.prototype.toJSON !== 'function') {
@@ -176,20 +186,18 @@ if (typeof JSON !== 'object') {
         Date.prototype.toJSON = function () {
 
             return isFinite(this.valueOf())
-                ? this.getUTCFullYear()     + '-' +
+            ? this.getUTCFullYear() + '-' +
                     f(this.getUTCMonth() + 1) + '-' +
-                    f(this.getUTCDate())      + 'T' +
-                    f(this.getUTCHours())     + ':' +
-                    f(this.getUTCMinutes())   + ':' +
-                    f(this.getUTCSeconds())   + 'Z'
-                : null;
+                    f(this.getUTCDate()) + 'T' +
+                    f(this.getUTCHours()) + ':' +
+                    f(this.getUTCMinutes()) + ':' +
+                    f(this.getUTCSeconds()) + 'Z'
+            : null;
         };
 
-        String.prototype.toJSON      =
-            Number.prototype.toJSON  =
-            Boolean.prototype.toJSON = function () {
-                return this.valueOf();
-            };
+        Boolean.prototype.toJSON = this_value;
+        Number.prototype.toJSON = this_value;
+        String.prototype.toJSON = this_value;
     }
 
     var cx,
@@ -208,12 +216,14 @@ if (typeof JSON !== 'object') {
 // sequences.
 
         escapable.lastIndex = 0;
-        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
+        return escapable.test(string) 
+        ? '"' + string.replace(escapable, function (a) {
             var c = meta[a];
             return typeof c === 'string'
-                ? c
-                : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-        }) + '"' : '"' + string + '"';
+            ? c
+            : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+        }) + '"' 
+        : '"' + string + '"';
     }
 
 
@@ -253,7 +263,9 @@ if (typeof JSON !== 'object') {
 
 // JSON numbers must be finite. Encode non-finite numbers as null.
 
-            return isFinite(value) ? String(value) : 'null';
+            return isFinite(value) 
+            ? String(value) 
+            : 'null';
 
         case 'boolean':
         case 'null':
@@ -297,10 +309,10 @@ if (typeof JSON !== 'object') {
 // brackets.
 
                 v = partial.length === 0
-                    ? '[]'
-                    : gap
-                    ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
-                    : '[' + partial.join(',') + ']';
+                ? '[]'
+                : gap
+                ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
+                : '[' + partial.join(',') + ']';
                 gap = mind;
                 return v;
             }
@@ -314,7 +326,11 @@ if (typeof JSON !== 'object') {
                         k = rep[i];
                         v = str(k, value);
                         if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                            partial.push(quote(k) + (
+                                gap 
+                                ? ': ' 
+                                : ':'
+                            ) + v);
                         }
                     }
                 }
@@ -326,7 +342,11 @@ if (typeof JSON !== 'object') {
                     if (Object.prototype.hasOwnProperty.call(value, k)) {
                         v = str(k, value);
                         if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                            partial.push(quote(k) + (
+                                gap 
+                                ? ': ' 
+                                : ':'
+                            ) + v);
                         }
                     }
                 }
@@ -336,10 +356,10 @@ if (typeof JSON !== 'object') {
 // and wrap them in braces.
 
             v = partial.length === 0
-                ? '{}'
-                : gap
-                ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
-                : '{' + partial.join(',') + '}';
+            ? '{}'
+            : gap
+            ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
+            : '{' + partial.join(',') + '}';
             gap = mind;
             return v;
         }
@@ -348,14 +368,14 @@ if (typeof JSON !== 'object') {
 // If the JSON object does not yet have a stringify method, give it one.
 
     if (typeof JSON.stringify !== 'function') {
-        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+        escapable = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
         meta = {    // table of character substitutions
             '\b': '\\b',
             '\t': '\\t',
             '\n': '\\n',
             '\f': '\\f',
             '\r': '\\r',
-            '"' : '\\"',
+            '"': '\\"',
             '\\': '\\\\'
         };
         JSON.stringify = function (value, replacer, space) {
@@ -444,7 +464,7 @@ if (typeof JSON !== 'object') {
             if (cx.test(text)) {
                 text = text.replace(cx, function (a) {
                     return '\\u' +
-                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+                            ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                 });
             }
 
@@ -461,10 +481,13 @@ if (typeof JSON !== 'object') {
 // we look to see that the remaining characters are only whitespace or ']' or
 // ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
 
-            if (/^[\],:{}\s]*$/
-                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
+            if (
+                /^[\],:{}\s]*$/.test(
+                    text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
                         .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+                        .replace(/(?:^|:|,)(?:\s*\[)+/g, '')
+                )
+            ) {
 
 // In the third stage we use the eval function to compile the text into a
 // JavaScript structure. The '{' operator is subject to a syntactic ambiguity
@@ -477,8 +500,8 @@ if (typeof JSON !== 'object') {
 // each name/value pair to a reviver function for possible transformation.
 
                 return typeof reviver === 'function'
-                    ? walk({'': j}, '')
-                    : j;
+                ? walk({'': j}, '')
+                : j;
             }
 
 // If the text is not JSON parseable, then a SyntaxError is thrown.
diff --git a/json_parse.js b/json_parse.js
index 89b8b77..cd96c3c 100644
--- a/json_parse.js
+++ b/json_parse.js
@@ -1,6 +1,6 @@
 /*
     json_parse.js
-    2012-06-20
+    2015-02-25
 
     Public Domain.
 
@@ -46,8 +46,11 @@
     NOT CONTROL.
 */
 
-/*members "", "\"", "\/", "\\", at, b, call, charAt, f, fromCharCode,
-    hasOwnProperty, message, n, name, prototype, push, r, t, text
+/*jslint for */
+
+/*property 
+    at, b, call, charAt, f, fromCharCode, hasOwnProperty, message, n, name, 
+    prototype, push, r, t, text
 */
 
 var json_parse = (function () {
@@ -64,14 +67,14 @@ var json_parse = (function () {
     var at,     // The index of the current character
         ch,     // The current character
         escapee = {
-            '"':  '"',
+            '"': '"',
             '\\': '\\',
-            '/':  '/',
-            b:    '\b',
-            f:    '\f',
-            n:    '\n',
-            r:    '\r',
-            t:    '\t'
+            '/': '/',
+            b: '\b',
+            f: '\f',
+            n: '\n',
+            r: '\r',
+            t: '\t'
         },
         text,
 
@@ -80,10 +83,10 @@ var json_parse = (function () {
 // Call error when something is wrong.
 
             throw {
-                name:    'SyntaxError',
+                name: 'SyntaxError',
                 message: m,
-                at:      at,
-                text:    text
+                at: at,
+                text: text
             };
         },
 
@@ -302,7 +305,9 @@ var json_parse = (function () {
         case '-':
             return number();
         default:
-            return ch >= '0' && ch <= '9' ? number() : word();
+            return ch >= '0' && ch <= '9' 
+            ? number() 
+            : word();
         }
     };
 
@@ -328,22 +333,22 @@ var json_parse = (function () {
 // result.
 
         return typeof reviver === 'function'
-            ? (function walk(holder, key) {
-                var k, v, value = holder[key];
-                if (value && typeof value === 'object') {
-                    for (k in value) {
-                        if (Object.prototype.hasOwnProperty.call(value, k)) {
-                            v = walk(value, k);
-                            if (v !== undefined) {
-                                value[k] = v;
-                            } else {
-                                delete value[k];
-                            }
+        ? (function walk(holder, key) {
+            var k, v, value = holder[key];
+            if (value && typeof value === 'object') {
+                for (k in value) {
+                    if (Object.prototype.hasOwnProperty.call(value, k)) {
+                        v = walk(value, k);
+                        if (v !== undefined) {
+                            value[k] = v;
+                        } else {
+                            delete value[k];
                         }
                     }
                 }
-                return reviver.call(holder, key, value);
-            }({'': result}, ''))
-            : result;
+            }
+            return reviver.call(holder, key, value);
+        }({'': result}, ''))
+        : result;
     };
 }());
diff --git a/json_parse_state.js b/json_parse_state.js
index 7424fcc..163631d 100644
--- a/json_parse_state.js
+++ b/json_parse_state.js
@@ -1,6 +1,6 @@
 /*
     json_parse_state.js
-    2013-05-26
+    2015-02-25
 
     Public Domain.
 
@@ -46,13 +46,13 @@
     NOT CONTROL.
 */
 
-/*jslint regexp: true, unparam: true */
+/*jslint for */
 
-/*members "", "\"", ",", "\/", ":", "[", "\\", "]", acomma, avalue, b,
-    call, colon, container, exec, f, false, firstavalue, firstokey,
-    fromCharCode, go, hasOwnProperty, key, length, n, null, ocomma, okey,
-    ovalue, pop, prototype, push, r, replace, slice, state, t, test, true,
-    value, "{", "}"
+/*property
+    acomma, avalue, b, call, colon, container, exec, f, false, firstavalue,
+    firstokey, fromCharCode, go, hasOwnProperty, key, length, n, null, ocomma,
+    okey, ovalue, pop, prototype, push, r, replace, slice, state, t, test,
+    true
 */
 
 var json_parse = (function () {
@@ -287,8 +287,10 @@ var json_parse = (function () {
 
 // Remove and replace any backslash escapement.
 
-        return text.replace(/\\(?:u(.{4})|([^u]))/g, function (a, b, c) {
-            return b ? String.fromCharCode(parseInt(b, 16)) : escapes[c];
+        return text.replace(/\\(?:u(.{4})|([^u]))/g, function (ignore, b, c) {
+            return b 
+            ? String.fromCharCode(parseInt(b, 16)) 
+            : escapes[c];
         });
     }
 
@@ -298,7 +300,7 @@ var json_parse = (function () {
 // The extraction process is cautious.
 
         var r,          // The result of the exec method.
-            tx = /^[\x20\t\n\r]*(?:([,:\[\]{}]|true|false|null)|(-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)|"((?:[^\r\n\t\\\"]|\\(?:["\\\/trnfb]|u[0-9a-fA-F]{4}))*)")/;
+            tx = /^[\u0020\t\n\r]*(?:([,:\[\]{}]|true|false|null)|(-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)|"((?:[^\r\n\t\\\"]|\\(?:["\\\/trnfb]|u[0-9a-fA-F]{4}))*)")/;
 
 // Set the starting state.
 
@@ -315,7 +317,7 @@ var json_parse = (function () {
 
 // For each token...
 
-            for (;;) {
+            while (true) {
                 r = tx.exec(source);
                 if (!r) {
                     break;
@@ -367,8 +369,10 @@ var json_parse = (function () {
 // remaining source contains anything except whitespace, then we did not have
 //a well-formed JSON text.
 
-        if (state !== 'ok' || /[^\x20\t\n\r]/.test(source)) {
-            throw state instanceof SyntaxError ? state : new SyntaxError('JSON');
+        if (state !== 'ok' || (/[^\u0020\t\n\r]/.test(source))) {
+            throw state instanceof SyntaxError 
+            ? state 
+            : new SyntaxError('JSON');
         }
 
 // If there is a reviver function, we recursively walk the new structure,
@@ -377,7 +381,8 @@ var json_parse = (function () {
 // value in an empty key. If there is not a reviver function, we simply return
 // that value.
 
-        return typeof reviver === 'function' ? (function walk(holder, key) {
+        return typeof reviver === 'function' 
+        ? (function walk(holder, key) {
             var k, v, value = holder[key];
             if (value && typeof value === 'object') {
                 for (k in value) {
@@ -392,6 +397,7 @@ var json_parse = (function () {
                 }
             }
             return reviver.call(holder, key, value);
-        }({'': value}, '')) : value;
+        }({'': value}, '')) 
+        : value;
     };
 }());

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/json-js.git



More information about the Pkg-javascript-commits mailing list