@Parameters(name = "js={0}, opt={3}, strict={4}") public static Collection<Object[]> test262SuiteValues() throws IOException { List<Object[]> result = new ArrayList<Object[]>(); List<File> tests = getTestFiles(); for (File jsTest : tests) { String jsFileStr = (String) SourceReader.readFileOrUrl(jsTest.getPath(), true, "UTF-8"); List<String> harnessFiles = new ArrayList<String>(); harnessFiles.add("sta.js"); harnessFiles.add("assert.js"); Map header = (Map) YAML.load( jsFileStr.substring( jsFileStr.indexOf("/*---") + 5, jsFileStr.lastIndexOf("---*/"))); if (header.containsKey("includes")) { harnessFiles.addAll((Collection) header.get("includes")); } EcmaErrorType errorType = EcmaErrorType._valueOf((String) header.get("negative")); List<String> flags = header.containsKey("flags") ? (List<String>) header.get("flags") : Collections.EMPTY_LIST; for (int optLevel : OPT_LEVELS) { if (!flags.contains("onlyStrict")) { result.add( new Object[] {jsTest.getPath(), jsFileStr, harnessFiles, optLevel, false, errorType}); } if (!flags.contains("noStrict")) { result.add( new Object[] {jsTest.getPath(), jsFileStr, harnessFiles, optLevel, true, errorType}); } } } return result; }