From: hsbt@... Date: 2016-12-25T11:59:49+00:00 Subject: [ruby-core:78829] [Ruby trunk Bug#13070][Third Party's Issue] Parsing JSON with `quirks_mode: false` parses as if it is `true` and does not warn me. Issue #13070 has been updated by Hiroshi SHIBATA. Status changed from Open to Third Party's Issue Can you request it to [upstream repository](https://github.com/flori/json) ? ---------------------------------------- Bug #13070: Parsing JSON with `quirks_mode: false` parses as if it is `true` and does not warn me. https://bugs.ruby-lang.org/issues/13070#change-62236 * Author: Josh Cheek * Status: Third Party's Issue * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Previously you could parse toplevel strings in JSON by setting `quirks_mode` to `true` ```sh $ ruby -rjson -v -e 'p JSON.parse JSON.dump("a"), quirks_mode: true' ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15] "a" ``` If you set it to `false`, it would not parse them ```sh $ ruby -rjson -v -e 'p JSON.parse JSON.dump("a"), quirks_mode: false' ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15] /Users/josh/.rubies/ruby-2.3.1/lib/ruby/2.3.0/json/common.rb:156:in `parse': 784: unexpected token at '"a"' (JSON::ParserError) from /Users/josh/.rubies/ruby-2.3.1/lib/ruby/2.3.0/json/common.rb:156:in `parse' from -e:1:in `
' ``` In Ruby 2.4.0, it always parses them, no matter how I set `quirks_mode`, but it does not warn me that it is going to ignore my instruction to disallow this behaviour. ```sh $ ruby -rjson -v -e 'p JSON.parse JSON.dump("a"), quirks_mode: true' ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin15] "a" $ ruby -rjson -v -e 'p JSON.parse JSON.dump("a"), quirks_mode: false' ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin15] "a" ``` I think it should warn me as explicitly setting it to false implies that I rely on this behaviour (this was my case). The changelog should probably also mention something about it, I didn't understand what had happened until I located [the commit](https://github.com/ruby/ruby/commit/1130658), looked up its references, realized the specification may have changed, and then checked the RFC. -- https://bugs.ruby-lang.org/ Unsubscribe: