Граф коммитов

129 Коммитов

Автор SHA1 Сообщение Дата
Étienne Barrié f4883e7904 [flori/json] Use the compiled extension in test
https://github.com/flori/json/commit/148afef84c
2024-09-03 11:51:51 +09:00
Hiroshi SHIBATA 7c8f9603b1 [flori/json] Make OpenStruct support as optional
https://github.com/flori/json/commit/202ffe2335
2024-01-31 14:56:00 +09:00
Hiroshi SHIBATA 84654bfbba [flori/json] cosmetics
https://github.com/flori/json/commit/39d6c854a4
2023-12-05 12:04:11 +09:00
Hiroshi SHIBATA abc3d124f7 [flori/json] The modern Ruby uses utf-8 encodings by default
https://github.com/flori/json/commit/11b31210ac
2023-12-05 12:04:10 +09:00
tompng 70740deea7 [flori/json] Fix JSON.dump overload combination
https://github.com/flori/json/commit/41c2712a3b
2023-12-05 12:04:08 +09:00
Takashi Kokubun e6b35e8a6d [flori/json] Overload kwargs in JSON.dump
https://github.com/flori/json/commit/936f280f9f
2023-12-05 12:04:08 +09:00
Jean Boussier a22ed89438 [flori/json] JSON.dump: handle unenclosed hashes regression
Fix: https://github.com/flori/json/issues/553

We can never add keyword arguments to `dump` otherwise
existing code using unenclosed hash will break.

https://github.com/flori/json/commit/8e0076a3f2
2023-12-05 12:04:07 +09:00
Hiroshi SHIBATA 7d142c08cb
lib/helper only needs on flori/json repo 2023-12-01 16:47:06 +09:00
Hiroshi SHIBATA 86045fca24
Manually merged from flori/json
> https://github.com/flori/json/pull/525
  > Rename escape_slash in script_safe and also escape E+2028 and E+2029

  Co-authored-by: Jean Boussier <jean.boussier@gmail.com>

  > https://github.com/flori/json/pull/454
  > Remove unnecessary initialization of create_id in JSON.parse()

  Co-authored-by: Watson <watson1978@gmail.com>
2023-12-01 16:47:06 +09:00
Jean Boussier 0dfeb17296
Rename escape_slash in script_safe and also escape E+2028 and E+2029
It is rather common to directly interpolate JSON string inside
<script> tags in HTML as to provide configuration or parameters to a
script.

However this may lead to XSS vulnerabilities, to prevent that 3
characters need to be escaped:

  - `/` (forward slash)
  - `U+2028` (LINE SEPARATOR)
  - `U+2029` (PARAGRAPH SEPARATOR)

The forward slash need to be escaped to prevent closing the script
tag early, and the other two are valid JSON but invalid Javascript
and can be used to break JS parsing.

Given that the intent of escaping forward slash is the same than escaping
U+2028 and U+2029, I chos to rename and repurpose the existing `escape_slash`
option.
2023-12-01 16:47:06 +09:00
John Hawthorn 4b770527c2
[flori/json] Fix "unexpected token" offset for Infinity
Previously in the JSON::Ext parser, when we encountered an "Infinity"
token (and weren't allowing NaN/Infinity) we would try to display the
"unexpected token" at the character before.

https://github.com/flori/json/commit/42ac170712
2023-12-01 16:47:06 +09:00
Lucas Kanashiro 854e6559b6
[flori/json] tests/ractor_test.rb: make assert_separately available
Require tests/lib/helper.rb to avoid:

NoMethodError: undefined method `assert_separately'

https://github.com/flori/json/commit/a81bcc0328
2023-12-01 16:47:06 +09:00
Hiroshi SHIBATA b17ae88894
[flori/json] skip TruffleRuby
https://github.com/flori/json/commit/bab704eb49
2023-10-11 15:45:17 +09:00
Hiroshi SHIBATA e42df781d9
[flori/json] define_method is also private at Ruby 2.3 and 2.4
https://github.com/flori/json/commit/3804f38bf4
2023-10-11 15:45:17 +09:00
Hiroshi SHIBATA 1b19e9198d
[flori/json] remove_method of Module is private at Ruby 2.3 and 2.4
https://github.com/flori/json/commit/6cbadf6b6e
2023-10-11 15:45:17 +09:00
Hiroshi SHIBATA c75d54a36c
Fixup 1851824b1c 2023-09-13 16:23:18 +09:00
Hiroshi SHIBATA 1851824b1c [flori/json] alias_method is private on Ruby 2.3 and 2.4
https://github.com/flori/json/commit/573ef94bc5
2023-09-13 16:01:19 +09:00
Yusuke Endoh 77db0ca6c8 Prevent a warning: method redefined; discarding old included
```
[ 3463/25719] JSONGeneratorTest#test_string_ext_included_calls_super/home/chkbuild/chkbuild/tmp/build/20230905T063003Z/ruby/test/json/json_generator_test.rb:411: warning: method redefined; discarding old included
/home/chkbuild/chkbuild/tmp/build/20230905T063003Z/ruby/test/json/json_generator_test.rb:399: warning: previous definition of included was here
```

http://rubyci.s3.amazonaws.com/debian10/ruby-master/log/20230905T063003Z.log.html.gz
2023-09-05 17:29:53 +09:00
Hiroshi SHIBATA 923d3517f1 [flori/json] Removed code for Ruby 1.8
https://github.com/flori/json/commit/7f9c29038d
2023-09-05 14:29:46 +09:00
Peter Zhu 91de37c23e Remove --disable-gems in assert_in_out_err
assert_in_out_err adds --disable=gems so we don't need to add
--disable-gems in the args list.
2023-08-28 15:05:19 -04:00
Takashi Kokubun 96a809f621 Use require_relative in JSON tests
to prevent them from conflicting with yarp/test_helper
2023-08-25 15:32:14 -07:00
Hiroshi SHIBATA 56c8dab468 [flori/json] Skip BigDecimal tests when it's missing to load
https://github.com/flori/json/commit/3dd36c6077
2023-07-18 12:25:55 +09:00
Nobuyoshi Nakada 9f51810f34 [flori/json] Skip unsupported test on JRuby
https://github.com/flori/json/commit/7138bf32c7
2023-07-18 12:25:54 +09:00
Ufuk Kayserilioglu 12dfd9d1c9
[flori/json] Call `super` in `included` hook
The C extension defines an `included` hook for the
`JSON::Ext::Generator::GeneratorMethods::String` module but neglects to
call `super` in the hook. This can break the functionality of various
other code that rely on the fact that `included` on `Module` will always
be called.

https://github.com/flori/json/commit/cd8bbe56a3
2023-05-24 09:37:30 +09:00
Ethan b2cc74a50d [flori/json] test parsing of unicode, mixing literal characters with escaped
https://github.com/flori/json/commit/82fe866da2
2022-07-29 19:10:10 +09:00
Andrew Bromwich a15d0e267a
[flori/json] Fix parser bug for empty string allocation
When `HAVE_RB_ENC_INTERNED_STR` is enabled it is possible to
pass through a null pointer to `rb_enc_interned_str` resulting
in a segfault

Fixes #495

https://github.com/flori/json/commit/b59368a8c2
2022-05-20 17:49:13 +09:00
Charles Oliver Nutter a37051ef3b
[flori/json] Remove unknown keyword arg from DateTime.parse
This snuck in while addding tests for the `create_additions`
feature. Caught by JRuby when we added the `limit` option to the
Date/DateTime parsing methods, which causes this to be rejected as
an unknown keyword.

https://github.com/flori/json/commit/b1007dff66
2022-05-20 17:49:13 +09:00
Hiroshi SHIBATA edb76e8765 Prepare to release json-2.5.0 2020-12-22 19:44:27 +09:00
Kenta Murata 14d7d1df25
[json] Make json Ractor safe 2020-12-21 22:10:43 +09:00
Kenta Murata 98cc15ed1e
[json] Stop using prototype objects 2020-12-21 22:10:33 +09:00
Hiroshi SHIBATA b06ffce4ae
SortedSet was removed at a3db08d7b6 2020-12-04 19:36:12 +09:00
Yusuke Endoh 762be87759 test/json/json_parser_test.rb: suppress warnings
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20201021T123003Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20201021T123003Z/ruby/test/json/json_parser_test.rb:227: warning: ambiguous first argument; put parentheses or a space even after `-' operator
/home/chkbuild/chkbuild/tmp/build/20201021T123003Z/ruby/test/json/json_parser_test.rb:228: warning: ambiguous first argument; put parentheses or a space even after `-' operator
```
2020-10-21 23:37:42 +09:00
Nobuyoshi Nakada d915e7ee00
strip trailing spaces [ci skip] 2020-10-20 23:52:19 +09:00
Chris Seaton 451836f582
Fix an issue with generate_pretty and empty objects in the Ruby and Java implementations 2020-10-20 21:46:54 +09:00
Jean Boussier 520e0916af
Implement a freeze: parser option
If set to true all parsed objects will be
immediately frozen, and strings will be
deduplicated if the Ruby implementation
allows it.
2020-10-20 21:40:25 +09:00
Kazuhiro NISHIYAMA ce986b41ca
Remove unneeded `begin` and `end` 2020-09-30 15:55:07 +09:00
Kazuhiro NISHIYAMA 30bb040ea4
Fix `Leaked tempfile`s
http://rubyci.s3.amazonaws.com/debian10/ruby-master/log/20200930T033004Z.diff.html.gz
```
 [n/n] JSONCommonInterfaceTest#test_load = <elapsed> s
 [n/n] JSONCommonInterfaceTest#test_load_file = <elapsed> s
+Leaked tempfile: JSONCommonInterfaceTest#test_load_file: #<Tempfile:<build-dir>/tmp/20200930-7601-ptnv6i (closed)>
 [n/n] JSONCommonInterfaceTest#test_load_file! = <elapsed> s
+Leaked tempfile: JSONCommonInterfaceTest#test_load_file!: #<Tempfile:<build-dir>/tmp/20200930-7601-1la6m9 (closed)>
 [n/n] JSONCommonInterfaceTest#test_load_file_with_option = <elapsed> s
+Leaked tempfile: JSONCommonInterfaceTest#test_load_file_with_option: #<Tempfile:<build-dir>/tmp/20200930-7601-blf9hz (closed)>
 [n/n] JSONCommonInterfaceTest#test_load_file_with_option! = <elapsed> s
+Leaked tempfile: JSONCommonInterfaceTest#test_load_file_with_option!: #<Tempfile:<build-dir>/tmp/20200930-7601-b5gsdb (closed)>
```
2020-09-30 15:41:14 +09:00
Kazuhiro NISHIYAMA ac414139ec
Remove unnecessary executable bit [ci skip] 2020-09-28 23:07:43 +09:00
Yusuke Endoh e4b2c4fca5 t/json/json_common_interface_test.rb: fix wrong indentation
to prevent:

```
test/json/json_common_interface_test.rb:182: warning: mismatched indentations at 'end' with 'def' at 169
```
2020-09-25 23:37:12 +09:00
Hiroshi SHIBATA 6eeacbbc36
Extract assert assertion to assert_include and assert_not_include. 2020-09-25 20:28:31 +09:00
Hiroshi SHIBATA 81dc37b1b4 assert_true is not provided by test-unit 2020-09-25 17:28:42 +09:00
Marc-Andre Lafortune e30d1b0923 Fix pure parser with unclosed arrays / objects [Fix #314] 2020-09-25 17:28:42 +09:00
Karol Bucek 0089854fc5 [test] properly 'skip' test on JRuby
an early return still caused ensure to execute,
setting JSON constant to `nil` for later tests!
2020-09-25 17:28:42 +09:00
Keith Bennett c3614877d2 [flori/json] Add `load_file` and `load_file!` methods, with tests. Fixes issue #386.
https://github.com/flori/json/commit/0be363c99b
2020-09-25 17:28:42 +09:00
Jean Boussier e1659af372 Add an option to escape forward slash character
Squashed commit of the following:

commit 26d181059989279a79c433cedcd893b4f52e42ee
Author: Francois Chagnon <francois.chagnon@jadedpixel.com>
Date:   Tue Sep 15 21:17:34 2015 +0000

    add config options for escape_slash

commit fa282334051b16df91ca097dd7304b46f3bc7719
Author: Francois Chagnon <francois.chagnon@jadedpixel.com>
Date:   Mon Feb 9 21:09:33 2015 +0000

    add forward slash to escape character
2020-09-25 17:28:42 +09:00
Yusuke Endoh 1e039474a2 test/json/json_fixtures_test.rb: Prevent an "out of range" warning
```
/home/mame/work/ruby/.ext/common/json/common.rb:263: warning: Float 23456789012E666 out of range
```
2020-07-03 11:47:09 +09:00
Yusuke Endoh e6a8590aa4 Reintroduce c565dfb09a 2020-07-03 11:05:08 +09:00
Hiroshi SHIBATA 0aac138e0b
Merge json-2.3.1 from flori/json 2020-07-01 18:50:39 +09:00
Marc-Andre Lafortune fe10323a35
[flori/json] Fix test that wasn't testing anything
https://github.com/flori/json/commit/d5c6566b41
2020-07-01 18:47:51 +09:00
Yusuke Endoh c565dfb09a test/json/test_helper.rb: Do not add a relative path to $LOAD_PATH
... because it conflicts with test/ruby/test_m17n.rb.

An exception `incompatible character encodings: UTF-8 and UTF-16BE`
occurs when:

* a non-existence relative path is added to $LOAD_PATH,
* ASCII-incompatible encoding is set to default_external, and
* some file is loaded.

```
$LOAD_PATH << "no_existing_dir"
Encoding.default_external = Encoding::UTF_16BE
load "dummy.rb" #=> incompatible character encodings: UTF-8 and UTF-16BE
```

This issue can be actually observed by a combination of out-of-place
build and the following command:

make test-all TESTS="json ruby/m17n -n test_object_inspect_external"

http://ci.rvm.jp/logfiles/brlog.trunk-test-random.20200322-221411

ASCII-incompatible default external encoding assumes that the cwd is the
encoding, and it is attempted to beconcatenated with a non-existence
relative LOAD_PATH UTF-8 string, which causes the exception.

This changeset avoids a relative path.
2020-03-24 10:45:52 +09:00