718f743750
Part of the improve error messages initiative. Based on a resource of JSON.parse() errors found at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse Previously JSON.parse(NaN) would output: SyntaxError: Unexpected token N in JSON at position 0 Now the output is: SyntaxError: "NaN" is not valid JSON Previously JSON.parse("{a:1}") would output: SyntaxError: Unexpected token a in JSON at position 1 Now the output is: SyntaxError: Expected property name or '}' in JSON at position 1 Bug: v8:6551 Change-Id: Ic9fad1fdbd295e1302805b81e6603fc526121960 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3513684 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Issack John <issackjohn@microsoft.com> Cr-Commit-Position: refs/heads/main@{#80567}
31 lines
851 B
JavaScript
31 lines
851 B
JavaScript
// Copyright 2017 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
function TryParse(s, message) {
|
|
try {
|
|
JSON.parse(s);
|
|
assertUnreachable();
|
|
} catch(e) {
|
|
assertEquals(message, e.message);
|
|
}
|
|
}
|
|
|
|
var s = `{"a\\\\b `;
|
|
TryParse(s, "Unterminated string in JSON at position 7");
|
|
|
|
var s = `{"a\\\\\u03A9 `;
|
|
TryParse(s, "Unterminated string in JSON at position 7");
|
|
|
|
var s = `{"ab `;
|
|
TryParse(s, "Unterminated string in JSON at position 5");
|
|
|
|
var s = `{"a\u03A9 `;
|
|
TryParse(s, "Unterminated string in JSON at position 5");
|
|
|
|
var s = `{"a\nb":"b"}`;
|
|
TryParse(s, "Unexpected token '\n', \"{\"a\nb\":\"b\"}\" is not valid JSON");
|
|
|
|
var s = `{"a\nb":"b\u03A9"}`;
|
|
TryParse(s, "Unexpected token '\n', \"{\"a\nb\":\"b\u03A9\"}\" is not valid JSON");
|