v8/test/mjsunit/harmony
Shu-yu Guo 80fd0b3d8a Fix the receiver when calling parenthesized optional chains
Correctly passing the receiver depends on the Call AST node's type.
Calling a parenthesized optional chain expression is parsed as a Call of
an OptionalChain of a Property.  Currently the computation of the type
does not take optional chains of property loads into consideration, so
calls of parenthesized optional chain expressions always get passed an
undefined receiver.

Bug: v8:10024
Change-Id: I904b0eeca2df30160def674fb32adf821403aef9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1938571
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65252}
2019-11-29 00:44:06 +00:00
..
bigint [turbofan] Push BigInt truncation over addition and heap constants 2019-07-12 09:05:29 +00:00
regress Remove always-true --harmony-object-from-entries runtime flag 2019-06-24 15:01:01 +00:00
weakrefs [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
array-concat-array-proto-getter.js
array-concat-array-proto.js
array-concat-object-proto-dict-getter.js
array-concat-object-proto-dict.js
array-concat-object-proto-generic-dict.js
array-concat-object-proto.js
array-flat-species.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-flat.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-flatMap-species.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-flatMap.js Remove always-true --harmony-array-flat runtime flag 2019-02-02 17:54:27 +00:00
array-sort-comparefn.js [js] Remove CHECK_OBJECT_COERCIBLE for Array methods 2017-10-20 19:29:36 +00:00
async-await-optimization.js [async-await] Refactor await optimization and include async generators 2018-10-05 13:25:56 +00:00
async-for-of-non-iterable.js Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
async-from-sync-iterator-next-tick-count.js [await] Add async iterator tests for await optimization 2019-04-03 17:42:51 +00:00
async-from-sync-iterator-return-tick-count.js [await] Add async iterator tests for await optimization 2019-04-03 17:42:51 +00:00
async-from-sync-iterator-throw-tick-count.js [await] Add async iterator tests for await optimization 2019-04-03 17:42:51 +00:00
async-from-sync-iterator.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
async-generators-basic.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
async-generators-resume-return.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
async-generators-return.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
async-generators-yield.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
async-iterators-resolve.js [await] Update async iterators to return a rejected promise on error 2019-03-18 18:32:58 +00:00
atomics-notify.js [Atomics] Add use counter for Atomics.{wake, notify} 2018-09-20 21:31:33 +00:00
atomics-value-check.js [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
atomics.js [atomics] Make IsLockFree handle 8 bytes 2019-08-06 13:03:47 +00:00
bigintarray-keyedstore-tobigint.js Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
block-lazy-compile.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
dataview-accessors.js Reland of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #2 id:170001 of https://codereview.chromium.org/2113593002/ ) 2016-08-17 17:38:56 +00:00
for-await-of.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
function-tostring.js Remove always-true --harmony-function-tostring runtime flag 2018-10-03 15:04:16 +00:00
futex.js [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
generators-reduced.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
generators.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
global-configurable.js Remove always-true --harmony-global runtime flag 2019-06-26 09:47:14 +00:00
global-writable.js Remove always-true --harmony-global runtime flag 2019-06-26 09:47:14 +00:00
global.js Remove always-true --harmony-global runtime flag 2019-06-26 09:47:14 +00:00
harmony-string-pad-end.js [builtins] Port String.prototype.{padStart, padEnd} to CSA 2017-10-16 14:19:19 +00:00
harmony-string-pad-start.js [builtins] Port String.prototype.{padStart, padEnd} to CSA 2017-10-16 14:19:19 +00:00
hashbang-eval.js Remove always-enabled --harmony-hashbang flag 2019-06-11 15:47:08 +00:00
import-from-compilation-errored.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
import-from-evaluation-errored.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
import-from-fetch-errored.js Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
import-from-instantiation-errored.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
module-parsing-eval.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-1.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-2.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-3.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-4.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-5.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-6.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-7.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-8.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-9.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-10.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-11.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-12.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-13.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-14.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-15-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-15.mjs [top-level-await] Add support for top level await to d8 2019-09-20 16:04:49 +00:00
modules-import-16.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-17.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-large.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-meta.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-namespace.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-import-rqstd-order-top-level-await-1.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-2.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-3.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-4.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-5.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-6.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-7.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-rqstd-order-top-level-await-8.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-1.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-2.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-3.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-4.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-5.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-6.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-7.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-8.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-cycle.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-exception-1.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-exception-2.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-import-top-level-await-exception-3.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-rqstd-order-indirect-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-rqstd-order-indirect-unreached-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-rqstd-order-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-rqstd-order-unreached-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-rqstd-order.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-top-level-await-cycle.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-1.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-2-rqstd-order-indirect-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-2-rqstd-order-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-2-rqstd-order.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-2-top-level-await-cycle.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-2-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-2.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-3-rqstd-order-indirect-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-3-rqstd-order-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-3-rqstd-order.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-3-top-level-await-cycle.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-3-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-3.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-4-rqstd-order-indirect-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-4-rqstd-order-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-4-rqstd-order.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-4-top-level-await-cycle.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-4-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-4.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-5-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-5.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-6-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-6.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-7-top-level-await.mjs [top-level-await] Add support for parsing top level await 2019-09-24 14:01:32 +00:00
modules-skip-7.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-8.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-9.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-10.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-11.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-12.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-13.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-empty.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-export-import-meta.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-large1.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
modules-skip-large2.mjs [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
nullish.js [nullish] Add support for nullish operator 2019-08-21 15:48:34 +00:00
numeric-separator.js [harmony-numeric-separator] remove flag 2019-08-01 10:10:24 +00:00
object-fromentries.js Remove always-true --harmony-object-from-entries runtime flag 2019-06-24 15:01:01 +00:00
optional-catch-binding-breaks.js Remove always-true --harmony-optional-catch-binding runtime flag 2018-06-05 16:24:20 +00:00
optional-catch-binding.js Remove always-true --harmony-optional-catch-binding runtime flag 2018-06-05 16:24:20 +00:00
optional-chaining-this.js Fix the receiver when calling parenthesized optional chains 2019-11-29 00:44:06 +00:00
optional-chaining.js [optional-chaining] Disallow optional chaining with private names. 2019-10-21 15:18:00 +00:00
private-accessors.js [class] fix undefined private name access in computed property keys 2019-10-10 19:43:01 +00:00
private-fields-ic.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
private-fields-special-object.js [test] Remove module pragma in favor of .mjs 2019-06-27 13:25:48 +00:00
private-fields-static.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
private-fields.js [class] fix undefined private name access in computed property keys 2019-10-10 19:43:01 +00:00
private-methods.js [class] fix undefined private name access in computed property keys 2019-10-10 19:43:01 +00:00
private-name-scopes.js [class] Fix private name scope chain 2019-09-06 00:52:07 +00:00
private-symbols.js [builtins] Port Proxy has trap to CSA 2017-08-16 13:05:45 +00:00
private.js Remove %_ClassOf and SharedFunctionInfo::instance_class_name 2018-02-15 11:52:08 +00:00
promise-all-settled.js [ESNext] Implement Promise.allSettled 2019-04-12 17:49:17 +00:00
promise-prototype-finally.js [mjsunit] Move the implementation of testAsync into a separate file 2018-08-01 08:46:24 +00:00
public-instance-class-fields.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
public-static-class-fields.js [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
regexp-change-exec.js
regexp-dotall.js Ship RegExp dotAll mode / s flag 2017-07-28 08:17:38 +00:00
regexp-match-indices.js [regexp] Add additional test for match indices. 2019-11-25 16:32:21 +00:00
regexp-named-captures.js [regexp] Fix the order of named captures on the groups object 2019-10-16 07:37:05 +00:00
regexp-overriden-exec.js [turbofan] Brokerize reduction of RegExp.prototype.test 2019-07-17 11:40:51 +00:00
regexp-property-binary.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-char-class.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-emoji-flag-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-keycap-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-modifier-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-tag-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-emoji-zwj-sequence-generated.js [regexp] Update RegExp property sequence data to Unicode 12 2019-03-06 10:59:12 +00:00
regexp-property-enumerated.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-exact-match.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-general-category.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-invalid.js Reland "[regexp] implement regexp property sequence proposal" 2018-09-19 08:39:22 +00:00
regexp-property-lu-ui0.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui1.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui2.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui3.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui4.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui5.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui6.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui7.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui8.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui9.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-lu-ui.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
regexp-property-script-extensions.js Roll ICU to ICU 62.1 2018-07-11 10:24:26 +00:00
regexp-property-scripts.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-property-sequence.js [regexp] Expand test coverage for sequence properties 2018-09-20 13:00:35 +00:00
regexp-property-special.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regress-generators-resume.js [Test] Add PrepareForOptimization to some mjsunit tests. 2019-05-03 13:32:32 +00:00
set-prototype-of.js
sharedarraybuffer-stress.js [ubsan] Make ARM and ARM64 UBSan-clean 2019-09-16 15:03:45 +00:00
sharedarraybuffer-worker-gc-stress.js [mjsunit] Add more tests for shared array buffers / memories 2019-07-17 14:08:38 +00:00
sharedarraybuffer.js [test] Update TypedArray tests 2019-11-14 15:32:26 +00:00
static-private-methods.js [class] implement static private methods 2019-10-10 15:34:44 +00:00
string-matchAll-deleted-matchAll.js Remove always-true --harmony-string-matchall runtime flag 2019-04-25 10:46:05 +00:00
string-matchAll.js [regexp] Modify matchAll to throw on non-globals. 2019-10-16 13:34:15 +00:00
string-replaceAll.js [replaceAll] Fix DCHECK hit in runtime with replaceAll. 2019-11-27 15:53:27 +00:00
symbol-async-iterator.js Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
symbol-description.js Remove always-true --harmony-symbol-description runtime flag 2019-02-14 10:36:05 +00:00
to-length.js
to-name.js [intrinsics] Remove obsolete intrinsics. 2016-07-12 06:41:23 +00:00
to-number.js [cleanup] Remove a lot of dead intrinsics/runtime functions. 2018-09-20 12:48:57 +00:00
to-string.js Port ToString to Torque 2019-04-23 13:55:11 +00:00
trailing-commas-length.js [cleanup] Remove on-by-default --harmony-trailing-commas flag 2017-06-13 00:09:23 +00:00
well-formed-json-stringify-checked.js Remove always-true --harmony-json-stringify runtime flag 2019-04-24 14:51:09 +00:00
well-formed-json-stringify-unchecked.js Remove always-true --harmony-json-stringify runtime flag 2019-04-24 14:51:09 +00:00