diff --git a/test/runner.py b/test/runner.py index c6e542bd773cd8bd656e212cb1a130ac47566207..c0e04a08c99c4fb94efd9dd33f24d68b157a2897 100755 --- a/test/runner.py +++ b/test/runner.py @@ -76,7 +76,7 @@ def get_args(): '--update', action='store_true', dest='update', default=False, help='update skiplist') parser.add_argument( - '--no-run-gc-in-place', action='store_true', dest='no_gip', default=False, + '--run-gc-in-place', action='store_true', dest='run_gc_in_place', default=False, help='enable --run-gc-in-place mode') parser.add_argument( '--filter', '-f', action='store', dest='filter', @@ -487,8 +487,12 @@ class Test262Runner(Runner): '--gc-type=%s' % args.gc_type, ] - if not args.no_gip: + if args.run_gc_in_place: self.runtime_args += ['--run-gc-in-place'] + if args.gc_type == "g1-gc": + # Workaround. If don't specify this option G1 may access a deleted class while + # iterating over all objects in a region. + self.runtime_args += ['--g1-track-freed-objects=false'] if args.aot: self.arkaot = path.join(args.build_dir, 'bin', 'ark_aot') @@ -502,7 +506,7 @@ class Test262Runner(Runner): '--gc-type=%s' % args.gc_type, ] - if not args.no_gip: + if args.run_gc_in_place: self.aot_args += ['--run-gc-in-place'] self.aot_args += args.aot_args