3 ms·
For a long time the standard way of loading JSON was using eval.
by nswango 7mo ago
For a long time the standard way of loading JSON was using eval.
- _flux 7mo agoAnd why do we not anymore make use of it, but instead implemented separate JSON loading functionality in JavaScript? Can you think of any reasons beyond performance?
- bulbar 7mo agoWhy did you opt in for such a comment while a straight forward response without belittling tone would have achieved the same?
- _flux 7mo agoI actually gave it some thought. I had written the actual reason first, but I realized that the person I was responding to must know this, yet keeps arguing in that eval is just fine. I would say they are arguing that in bad faith, so I wanted to enter a dialogue where they are either forced to agree, or more likely, not respond at all.
- bawolff 7mo agoI'd be surprised if there is a performance benefit of processing json with eval(). Browsers optimize the heck out of JSON.
- fhars 7mo agoYou are arguing against the opposite of what the comment you answered to said.
- bawolff 7mo agoAm i? "Can you think of any reasons beyond performance?" implies that the comment author thinks performance would be a valid reason.
- _flux 7mo agoQuoting my original message: > And why do we not anymore make use of it, but instead implemented separate JSON loading functionality in JavaScript? In other words: I'm asking for reasons why was native JSON JavaScript module created, if we already had eval. > Can you think of any reasons beyond performance? One of the reasons is that native JSON parser is faster than eval: give some other reason.
- bawolff 7mo agoNot that long, browsers implemented JSON.parse() back in 2009. JSON was only invented back in 2001 and took a while to become popular. It was a very short window more than a decade ago when eval made sense here. Eval for json also lead to other security issues like XSSI.
- creatonez 7mo agoProblem is, it took until around 2016 for IE6 to be fully dead, so people continued to justify these hacks for a long time. Horrifying times.
- creatonez 7mo agoFor IE7 support, yes... https://caniuse.com/mdn-javascript_builtins_json_parse https://caniuse.com/mdn-javascript_builtins_json_parse