source: frontend/node_modules/core-js-pure/modules/es.json.raw-json.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 11 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 1.5 KB
Line 
1'use strict';
2var $ = require('../internals/export');
3var FREEZING = require('../internals/freezing');
4var NATIVE_RAW_JSON = require('../internals/native-raw-json');
5var getBuiltIn = require('../internals/get-built-in');
6var uncurryThis = require('../internals/function-uncurry-this');
7var toString = require('../internals/to-string');
8var createProperty = require('../internals/create-property');
9var setInternalState = require('../internals/internal-state').set;
10
11var $SyntaxError = SyntaxError;
12var parse = getBuiltIn('JSON', 'parse');
13var create = getBuiltIn('Object', 'create');
14var freeze = getBuiltIn('Object', 'freeze');
15var at = uncurryThis(''.charAt);
16
17var ERROR_MESSAGE = 'Unacceptable as raw JSON';
18
19var isWhitespace = function (it) {
20 return it === ' ' || it === '\t' || it === '\n' || it === '\r';
21};
22
23// `JSON.rawJSON` method
24// https://tc39.es/proposal-json-parse-with-source/#sec-json.rawjson
25// https://github.com/tc39/proposal-json-parse-with-source
26$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {
27 rawJSON: function rawJSON(text) {
28 var jsonString = toString(text);
29 if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {
30 throw new $SyntaxError(ERROR_MESSAGE);
31 }
32 var parsed = parse(jsonString);
33 if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);
34 var obj = create(null);
35 setInternalState(obj, { type: 'RawJSON' });
36 createProperty(obj, 'rawJSON', jsonString);
37 return FREEZING ? freeze(obj) : obj;
38 }
39});
Note: See TracBrowser for help on using the repository browser.