{
  "owners": ["jarin@chromium.org", "mvstanton@chromium.org"],
  "name": "JSTests",
  "run_count": 3,
  "run_count_arm": 1,
  "run_count_arm64": 1,
  "timeout": 120,
  "timeout_arm64": 240,
  "units": "score",
  "total": true,
  "resources": ["base.js"],
  "tests": [
    {
      "name": "Proxies",
      "path": ["Proxies"],
      "main": "run.js",
      "resources": ["proxies.js"],
      "results_regexp": "^%s\\-Proxies\\(Score\\): (.+)$",
      "tests": [
        {"name": "GetStringWithoutTrap"},
        {"name": "GetStringWithTrap"},
        {"name": "GetIndexWithoutTrap"},
        {"name": "GetIndexWithTrap"},
        {"name": "GetSymbolWithoutTrap"},
        {"name": "GetSymbolWithTrap"},
        {"name": "HasStringWithoutTrap"},
        {"name": "HasStringWithTrap"},
        {"name": "HasSymbolWithoutTrap"},
        {"name": "HasSymbolWithTrap"},
        {"name": "SetStringWithoutTrap"},
        {"name": "SetStringWithTrap"},
        {"name": "SetIndexWithoutTrap"},
        {"name": "SetIndexWithTrap"},
        {"name": "SetSymbolWithoutTrap"},
        {"name": "SetSymbolWithTrap"},
        {"name": "HasInIdiom"},
        {"name": "IsExtensibleWithoutTrap"},
        {"name": "IsExtensibleWithTrap"},
        {"name": "PreventExtensionsWithoutTrap"},
        {"name": "PreventExtensionsWithTrap"},
        {"name": "GetPrototypeOfWithoutTrap"},
        {"name": "GetPrototypeOfWithTrap"},
        {"name": "SetPrototypeOfWithoutTrap"},
        {"name": "SetPrototypeOfWithTrap"},
        {"name": "CallProxyWithoutTrap"},
        {"name": "CallProxyWithTrap"},
        {"name": "ConstructProxyWithoutTrap"},
        {"name": "ConstructProxyWithTrap"}
      ]
    },
    {
      "name": "ArrayLiteralInitialSpreadSmallHoley",
      "path": ["ArrayLiteralInitialSpreadSmallHoley"],
      "main": "run.js",
      "resources": [],
      "results_regexp": "^%s\\-ArrayLiteralInitialSpreadSmallHoley\\(Score\\): (.+)$",
      "tests": [
        {"name": "Spread"},
        {"name": "ForLength"},
        {"name": "ForLengthEmpty"},
        {"name": "Slice"},
        {"name": "Slice0"},
        {"name": "ConcatReceive"},
        {"name": "ConcatArg"},
        {"name": "ForOfPush"},
        {"name": "MapId"}
      ]
    },
    {
      "name": "ArrayLiteralInitialSpreadSmallDoublePacked",
      "path": ["ArrayLiteralInitialSpreadSmallDoublePacked"],
      "main": "run.js",
      "resources": [],
      "results_regexp": "^%s\\-ArrayLiteralInitialSpreadSmallDoublePacked\\(Score\\): (.+)$",
      "tests": [
        {"name": "Spread"},
        {"name": "ForLength"},
        {"name": "ForLengthEmpty"},
        {"name": "Slice"},
        {"name": "Slice0"},
        {"name": "ConcatReceive"},
        {"name": "ConcatArg"},
        {"name": "ForOfPush"},
        {"name": "MapId"}
      ]
    },
    {
      "name": "ArrayLiteralInitialSpreadSmallSmiSet",
      "path": ["ArrayLiteralInitialSpreadSmallSmiSet"],
      "main": "run.js",
      "resources": [],
      "results_regexp": "^%s\\-ArrayLiteralInitialSpreadSmallSmiSet\\(Score\\): (.+)$",
      "tests": [
        {"name": "ForOf"},
        {"name": "ForOfKeys"},
        {"name": "ForOfValues"},
        {"name": "Spread"},
        {"name": "SpreadKeys"},
        {"name": "SpreadValues"}
      ]
    },
    {
      "name": "ArrayLiteralInitialSpreadLargeSmiSet",
      "path": ["ArrayLiteralInitialSpreadLargeSmiSet"],
      "main": "run.js",
      "resources": [],
      "results_regexp": "^%s\\-ArrayLiteralInitialSpreadLargeSmiSet\\(Score\\): (.+)$",
      "tests": [
        {"name": "ForOf"},
        {"name": "ForOfKeys"},
        {"name": "ForOfValues"},
        {"name": "Spread"},
        {"name": "SpreadKeys"},
        {"name": "SpreadValues"}
      ]
    },
    {
      "name": "Object",
      "path": ["Object"],
      "main": "run.js",
      "flags": ["--harmony"],
      "resources": [
        "assign.js",
        "create.js",
        "entries.js",
        "values.js"
      ],
      "results_regexp": "^%s\\-Object\\(Score\\): (.+)$",
      "tests": [
        {"name": "Assign"},
        {"name": "Create"},
        {"name": "Entries"},
        {"name": "EntriesMegamorphic"},
        {"name": "Values"},
        {"name": "ValuesMegamorphic"}
      ]
    },
    {
      "name": "Keys",
      "path": ["Keys"],
      "main": "run.js",
      "resources": ["keys.js"],
      "results_regexp": "^%s\\-Keys\\(Score\\): (.+)$",
      "tests": [
        {"name": "Object.keys()"},
        {"name": "for-in"},
        {"name": "for-in hasOwnProperty()"},
        {"name": "for (i < Object.keys().length)"},
        {"name": "Object.keys().forEach()"},
        {"name": "for (i < array.length)"},
        {"name": "for (i < length)"}
      ]
    },
    {
      "name": "ArraySortPreSorted",
      "path": ["ArraySort"],
      "main": "run.js",
      "resources": ["sort-base.js", "sort-presorted.js"],
      "test_flags": ["sort-presorted"],
      "results_regexp": "^%s\\-ArraySort\\(Score\\): (.+)$",
      "flags": [
        "--allow-natives-syntax"
      ],
      "tests": [
        {"name": "Random"},
        {"name": "Up"},
        {"name": "Down"},
        {"name": "Saw1000"},
        {"name": "Saw500"},
        {"name": "Saw200"},
        {"name": "Saw200Symmetric"},
        {"name": "Saw200Down"},
        {"name": "UpDown"},
        {"name": "UpUp"},
        {"name": "DownDown"},
        {"name": "DownUp"}
      ]
    },
    {
      "name": "ArraySortDifferentLengths",
      "path": ["ArraySort"],
      "main": "run.js",
      "resources": ["sort-base.js", "sort-lengths.js"],
      "test_flags": ["sort-lengths"],
      "results_regexp": "^%s\\-ArraySort\\(Score\\): (.+)$",
      "flags": [
        "--allow-natives-syntax"
      ],
      "tests": [
        {"name": "Random10"},
        {"name": "Sorted10"},
        {"name": "Random100"},
        {"name": "Sorted100"},
        {"name": "Random1000"},
        {"name": "Sorted1000"},
        {"name": "Random10000"},
        {"name": "Sorted10000"},
        {"name": "Random100000"},
        {"name": "Sorted100000"}
      ]
    },
    {
      "name": "Compiler",
      "path": ["Compiler"],
      "main": "run.js",
      "resources": ["small.js", "medium.js", "large.js"],
      "run_count": 1,
      "timeout": 360,
      "flags": [ "--allow-natives-syntax" ],
      "variants": [
        {"name": "default", "flags": []},
        {"name": "turboshaft",  "flags": ["--turboshaft"]}
      ],
      "results_regexp": "^%s-Compile\\(Score\\): (.+)$",
      "tests": [
        {"name": "Small-Empty"},
        {"name": "Small-Constant"},
        {"name": "Small-Add"},
        {"name": "Small-Load"},
        {"name": "Medium-Copy"},
        {"name": "Medium-Fact"},
        {"name": "Medium-Prime"},
        {"name": "Medium-Eratosthenes"},
        {"name": "Large-Copy"}
      ]
    },
    {
      "name": "Accessors",
      "path": ["Accessors"],
      "main": "run.js",
      "variants": [
        {"name": "default", "flags": []},
        {"name": "jitless", "flags": ["--jitless"]},
        {"name": "maglev", "flags": ["--maglev", "--no-turbofan"]},
        {"name": "turbofan", "flags": ["--no-maglev"]}
      ],
      "resources": ["accessors.js"],
      "results_regexp": "^%s\\-Accessors\\(Score\\): (.+)$",
      "tests": [
        {"name": "Monomorphic"},
        {"name": "Polymorphic"},
        {"name": "PrototypeConst"}
      ]
    }
  ]
}
