diff --git a/.taskcluster.yml b/.taskcluster.yml index 0289a1e25d1f..ced50c02df21 100644 --- a/.taskcluster.yml +++ b/.taskcluster.yml @@ -98,7 +98,7 @@ tasks: TASKCLUSTER_CACHES: /builds/worker/checkouts - $if: 'tasks_for == "action"' then: - ACTION_TASK_GROUP_ID: '${action.taskGroupId}' + ACTION_TASK_GROUP_ID: '${ownTaskId}' ACTION_TASK_ID: {$json: {$eval: 'taskId'}} ACTION_TASK: {$json: {$eval: 'task'}} ACTION_INPUT: {$json: {$eval: 'input'}} @@ -185,4 +185,7 @@ tasks: taskId: {$eval: 'taskId'} input: {$eval: 'input'} parameters: {$eval: 'parameters'} + - $if: 'tasks_for == "cron"' + then: + cron: {$json: {$eval: 'cron'}} - tasks_for: '${tasks_for}' diff --git a/browser/base/content/tab-content.js b/browser/base/content/tab-content.js index d385d4493b80..3605605befb5 100644 --- a/browser/base/content/tab-content.js +++ b/browser/base/content/tab-content.js @@ -602,98 +602,6 @@ addMessageListener("Browser:AppTab", function(message) { } }); -let PrerenderContentHandler = { - init() { - this._pending = []; - this._idMonotonic = 0; - this._initialized = true; - addMessageListener("Prerender:Canceled", this); - addMessageListener("Prerender:Swapped", this); - }, - - get initialized() { - return !!this._initialized; - }, - - receiveMessage(aMessage) { - switch (aMessage.name) { - case "Prerender:Canceled": { - for (let i = 0; i < this._pending.length; ++i) { - if (this._pending[i].id === aMessage.data.id) { - if (this._pending[i].failure) { - this._pending[i].failure.run(); - } - // Remove the item from the array - this._pending.splice(i, 1); - break; - } - } - break; - } - case "Prerender:Swapped": { - for (let i = 0; i < this._pending.length; ++i) { - if (this._pending[i].id === aMessage.data.id) { - if (this._pending[i].success) { - this._pending[i].success.run(); - } - // Remove the item from the array - this._pending.splice(i, 1); - break; - } - } - break; - } - } - }, - - startPrerenderingDocument(aHref, aReferrer, aTriggeringPrincipal) { - // XXX: Make this constant a pref - if (this._pending.length >= 2) { - return; - } - - let id = ++this._idMonotonic; - sendAsyncMessage("Prerender:Request", { - href: aHref.spec, - referrer: aReferrer ? aReferrer.spec : null, - id, - triggeringPrincipal: Utils.serializePrincipal(aTriggeringPrincipal), - }); - - this._pending.push({ - href: aHref, - referrer: aReferrer, - id, - success: null, - failure: null, - }); - }, - - shouldSwitchToPrerenderedDocument(aHref, aReferrer, aSuccess, aFailure) { - // Check if we think there is a prerendering document pending for the given - // href and referrer. If we think there is one, we will send a message to - // the parent process asking it to do a swap, and hook up the success and - // failure listeners. - for (let i = 0; i < this._pending.length; ++i) { - let p = this._pending[i]; - if (p.href.equals(aHref) && p.referrer.equals(aReferrer)) { - p.success = aSuccess; - p.failure = aFailure; - sendAsyncMessage("Prerender:Swap", {id: p.id}); - return true; - } - } - - return false; - } -}; - -if (Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_CONTENT) { - // We only want to initialize the PrerenderContentHandler in the content - // process. Outside of the content process, this should be unused. - PrerenderContentHandler.init(); -} - var WebBrowserChrome = { onBeforeLinkTraversal(originalTarget, linkURI, linkNode, isAppTab) { return BrowserUtils.onBeforeLinkTraversal(originalTarget, linkURI, linkNode, isAppTab); @@ -717,20 +625,6 @@ var WebBrowserChrome = { reloadInFreshProcess(aDocShell, aURI, aReferrer, aTriggeringPrincipal, aLoadFlags) { E10SUtils.redirectLoad(aDocShell, aURI, aReferrer, aTriggeringPrincipal, true, aLoadFlags); return true; - }, - - startPrerenderingDocument(aHref, aReferrer, aTriggeringPrincipal) { - if (PrerenderContentHandler.initialized) { - PrerenderContentHandler.startPrerenderingDocument(aHref, aReferrer, aTriggeringPrincipal); - } - }, - - shouldSwitchToPrerenderedDocument(aHref, aReferrer, aSuccess, aFailure) { - if (PrerenderContentHandler.initialized) { - return PrerenderContentHandler.shouldSwitchToPrerenderedDocument( - aHref, aReferrer, aSuccess, aFailure); - } - return false; } }; diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index 4aa0aa87eaa4..f514da1467a1 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -1732,7 +1732,6 @@ var aOriginPrincipal; var aOpener; var aOpenerBrowser; - var aIsPrerendered; var aCreateLazyBrowser; var aNextTabParentId; var aFocusUrlBar; @@ -1760,7 +1759,6 @@ aOriginPrincipal = params.originPrincipal; aOpener = params.opener; aOpenerBrowser = params.openerBrowser; - aIsPrerendered = params.isPrerendered; aCreateLazyBrowser = params.createLazyBrowser; aNextTabParentId = params.nextTabParentId; aFocusUrlBar = params.focusUrlBar; @@ -1792,7 +1790,6 @@ sameProcessAsFrameLoader: aSameProcessAsFrameLoader, opener: aOpener, openerBrowser: aOpenerBrowser, - isPrerendered: aIsPrerendered, nextTabParentId: aNextTabParentId, focusUrlBar: aFocusUrlBar, name: aName }); @@ -2201,7 +2198,7 @@ { - browser.frameloader.messageManager. - sendAsyncMessage("Prerender:Canceled", { id: data.id }); - }; - - let tab = this.getTabForBrowser(browser); - if (!tab) { - // No tab? - sendCancelPrerendering(); - break; - } - - if (tab.hidden) { - // Skip prerender on hidden tab. - sendCancelPrerendering(); - break; - } - - if (browser.canGoForward) { - // Skip prerender on history navigation as we don't support it - // yet. Remove this check once bug 1323650 is implemented. - sendCancelPrerendering(); - break; - } - - if (!data.href) { - // If we don't have data.href, loadOneTab will load about:blank - // which is meaningless for prerendering. - sendCancelPrerendering(); - break; - } - - let groupedSHistory = browser.frameLoader.ensureGroupedSHistory(); - - let newTab = this.loadOneTab(data.href, { - referrerURI: (data.referrer ? makeURI(data.referrer) : null), - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - postData: null, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Utils.deserializePrincipal(data.triggeringPrincipal), - }); - let partialSHistory = newTab.linkedBrowser.frameLoader.partialSHistory; - groupedSHistory.addPrerenderingPartialSHistory(partialSHistory, data.id); - break; - } - - case "Prerender:Cancel": { - let groupedSHistory = browser.frameLoader.groupedSHistory; - if (groupedSHistory) { - groupedSHistory.cancelPrerendering(data.id); - } - break; - } - - case "Prerender:Swap": { - let frameloader = browser.frameLoader; - let groupedSHistory = browser.frameLoader.groupedSHistory; - if (groupedSHistory) { - groupedSHistory.activatePrerendering(data.id).then( - () => frameloader.messageManager.sendAsyncMessage("Prerender:Swapped", data), - () => frameloader.messageManager.sendAsyncMessage("Prerender:Canceled", data), - ); - } - break; - } - } return undefined; ]]> @@ -6060,11 +5976,6 @@ Services.prefs.addObserver("accessibility.typeaheadfind", this); messageManager.addMessageListener("Findbar:Keypress", this); - // Add listeners for prerender messages - messageManager.addMessageListener("Prerender:Request", this); - messageManager.addMessageListener("Prerender:Cancel", this); - messageManager.addMessageListener("Prerender:Swap", this); - XPCOMUtils.defineLazyPreferenceGetter(this, "animationsEnabled", "toolkit.cosmeticAnimations.enabled", true); XPCOMUtils.defineLazyPreferenceGetter(this, "schedulePressureDefaultCount", diff --git a/browser/base/content/test/general/browser.ini b/browser/base/content/test/general/browser.ini index 0c05c6a9e6b3..a9777df2c260 100644 --- a/browser/base/content/test/general/browser.ini +++ b/browser/base/content/test/general/browser.ini @@ -588,6 +588,3 @@ skip-if = (os == "linux" && !e10s) # Bug 1263254 - Perma fails on Linux without # DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD. [browser_bug1299667.js] # DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD. -[browser_close_dependent_tabs.js] -skip-if = !e10s # GroupedSHistory is e10s-only -# DO NOT ADD MORE TESTS HERE. USE A TOPICAL DIRECTORY INSTEAD. diff --git a/browser/base/content/test/general/browser_close_dependent_tabs.js b/browser/base/content/test/general/browser_close_dependent_tabs.js deleted file mode 100644 index 11ca5aa470e9..000000000000 --- a/browser/base/content/test/general/browser_close_dependent_tabs.js +++ /dev/null @@ -1,78 +0,0 @@ -add_task(async function() { - await SpecialPowers.pushPrefEnv({ - set: [["browser.groupedhistory.enabled", true], - ["dom.linkPrerender.enabled", true]] - }); - - // Wait for a process change and then fulfil the promise. - function awaitProcessChange(browser) { - return new Promise(resolve => { - browser.addEventListener("BrowserChangedProcess", function(e) { - ok(true, "The browser changed process!"); - resolve(); - }, {once: true}); - }); - } - - // Wait for given number tabs being closed. - function awaitTabClose(number) { - return new Promise(resolve => { - let seen = 0; - gBrowser.tabContainer.addEventListener("TabClose", function f() { - if (++seen == number) { - gBrowser.tabContainer.removeEventListener("TabClose", f); - resolve(); - } - }); - }); - } - - // Test 1: Create prerendered browser, and don't switch to it, then close the tab - let closed1 = awaitTabClose(2); - await BrowserTestUtils.withNewTab({ gBrowser, url: "data:text/html,a" }, async function(browser1) { - // Set up the grouped SHEntry setup - - let requestMade = new Promise(resolve => { - browser1.messageManager.addMessageListener("Prerender:Request", function f() { - browser1.messageManager.removeMessageListener("Prerender:Request", f); - ok(true, "Successfully received the prerender request"); - resolve(); - }); - }); - - is(gBrowser.tabs.length, 2); - await ContentTask.spawn(browser1, null, function() { - let link = content.document.createElement("link"); - link.setAttribute("rel", "prerender"); - link.setAttribute("href", "data:text/html,b"); - content.document.body.appendChild(link); - }); - await requestMade; - - is(gBrowser.tabs.length, 3); - }); - await closed1; - - // At this point prerendered tab should be closed - is(gBrowser.tabs.length, 1, "The new tab and the prerendered 'tab' should be closed"); - - // Test 2: Create prerendered browser, switch to it, then close the tab - let closed2 = awaitTabClose(2); - await BrowserTestUtils.withNewTab({ gBrowser, url: "data:text/html,a" }, async function(browser1) { - // Set up the grouped SHEntry setup - let tab2 = gBrowser.loadOneTab("data:text/html,b", { - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), - }); - await BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - browser1.frameLoader.appendPartialSHistoryAndSwap(tab2.linkedBrowser.frameLoader); - await awaitProcessChange(browser1); - }); - await closed2; - - // At this point prerendered tab should be closed - is(gBrowser.tabs.length, 1, "The new tab and the prerendered 'tab' should be closed"); -}); diff --git a/browser/components/sessionstore/SessionStore.jsm b/browser/components/sessionstore/SessionStore.jsm index 3f43028a17b4..8af590d50d96 100644 --- a/browser/components/sessionstore/SessionStore.jsm +++ b/browser/components/sessionstore/SessionStore.jsm @@ -3898,11 +3898,7 @@ var SessionStoreInternal = { this.markTabAsRestoring(aTab); - // We need a new frameloader if we are reloading into a browser with a - // grouped session history (as we don't support restoring into browsers - // with grouped session histories directly). - let newFrameloader = - aOptions.newFrameloader || !!browser.frameLoader.groupedSHistory; + let newFrameloader = aOptions.newFrameloader; let isRemotenessUpdate; if (aOptions.remoteType !== undefined) { diff --git a/browser/components/sessionstore/content/content-sessionStore.js b/browser/components/sessionstore/content/content-sessionStore.js index dd66d66a6fbe..98430a8bc2a9 100644 --- a/browser/components/sessionstore/content/content-sessionStore.js +++ b/browser/components/sessionstore/content/content-sessionStore.js @@ -233,16 +233,7 @@ var MessageListener = { this.flush(data); break; case "SessionStore:becomeActiveProcess": - let shistory = docShell.QueryInterface(Ci.nsIWebNavigation).sessionHistory; - // Check if we are at the end of the current session history, if we are, - // it is safe for us to collect and transmit our session history, so - // transmit all of it. Otherwise, we only want to transmit our index changes, - // so collect from kLastIndex. - if (shistory.globalCount - shistory.globalIndexOffset == shistory.count) { - SessionHistoryListener.collect(); - } else { - SessionHistoryListener.collectFrom(kLastIndex); - } + SessionHistoryListener.collect(); break; default: debug("received unknown message '" + name + "'"); diff --git a/browser/components/sessionstore/test/browser.ini b/browser/components/sessionstore/test/browser.ini index 7376ea88aaba..79486d6c738d 100644 --- a/browser/components/sessionstore/test/browser.ini +++ b/browser/components/sessionstore/test/browser.ini @@ -258,8 +258,6 @@ run-if = e10s && crashreporter [browser_undoCloseById.js] skip-if = debug [browser_docshell_uuid_consistency.js] -[browser_grouped_session_store.js] -skip-if = !e10s # GroupedSHistory is e10s-only [browser_closed_objects_changed_notifications_tabs.js] [browser_closed_objects_changed_notifications_windows.js] diff --git a/browser/components/sessionstore/test/browser_grouped_session_store.js b/browser/components/sessionstore/test/browser_grouped_session_store.js deleted file mode 100644 index 62c975812864..000000000000 --- a/browser/components/sessionstore/test/browser_grouped_session_store.js +++ /dev/null @@ -1,143 +0,0 @@ -add_task(async function() { - const URIs = [ - "data:text/html,1", - "data:text/html,2", - "data:text/html,3", - "data:text/html,4", - "data:text/html,5", - ]; - - const {TabStateCache} = Cu.import("resource:///modules/sessionstore/TabStateCache.jsm", {}); - const {TabStateFlusher} = Cu.import("resource:///modules/sessionstore/TabStateFlusher.jsm", {}); - - await SpecialPowers.pushPrefEnv({ - set: [["browser.groupedhistory.enabled", true]] - }); - - // Check that the data stored in the TabStateCache is correct for the current state. - async function validate(browser, length, index) { - await TabStateFlusher.flush(browser); - let {history} = TabStateCache.get(browser); - is(history.entries.length, length, "Lengths match"); - for (let i = 0; i < length; ++i) { - is(history.entries[i].url, URIs[i], "URI at index " + i + " matches"); - } - is(history.index, index, "Index matches"); - await ContentTask.spawn(browser, [index, length], async function([expectedIndex, expectedLength]) { - let webNav = content.window.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation); - is(webNav.sessionHistory.globalIndexOffset + webNav.sessionHistory.index, - expectedIndex - 1, "In content index matches"); - is(webNav.canGoForward, expectedIndex < expectedLength, "canGoForward is correct"); - is(webNav.canGoBack, expectedIndex > 1, "canGoBack is correct"); - }); - } - - // Wait for a process change, followed by a locationchange event, and then - // fulfil the promise. - function awaitProcessChange(browser) { - return new Promise(resolve => { - let locChangeListener = { - onLocationChange: () => { - gBrowser.removeProgressListener(locChangeListener); - resolve(); - }, - }; - - browser.addEventListener("BrowserChangedProcess", function(e) { - gBrowser.addProgressListener(locChangeListener); - }, {once: true}); - }); - } - - // Order of events: - // Load [0], load [1], prerender [2], load [2], load [3] - // Back [2], Back [1], Forward [2], Back [0], Forward [3] - // Prerender [4], Back [0], Forward [2], Load [3'], Back [0]. - await BrowserTestUtils.withNewTab({ gBrowser, url: URIs[0] }, async function(browser1) { - await validate(browser1, 1, 1); - - browser1.loadURI(URIs[1], null, null); - await BrowserTestUtils.browserLoaded(browser1); - await validate(browser1, 2, 2); - - // Create a new hidden prerendered tab to swap to. - let tab2 = gBrowser.loadOneTab(URIs[2], { - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), - }); - await BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - browser1.frameLoader.appendPartialSHistoryAndSwap(tab2.linkedBrowser.frameLoader); - await awaitProcessChange(browser1); - await validate(browser1, 3, 3); - - browser1.loadURI(URIs[3], null, null); - await BrowserTestUtils.browserLoaded(browser1); - await validate(browser1, 4, 4); - - // In process navigate back. - let p = BrowserTestUtils.waitForContentEvent(browser1, "pageshow"); - browser1.goBack(); - await p; - await validate(browser1, 4, 3); - - // Cross process navigate back. - browser1.goBack(); - await awaitProcessChange(browser1); - await validate(browser1, 4, 2); - - // Cross process navigate forward. - browser1.goForward(); - await awaitProcessChange(browser1); - await validate(browser1, 4, 3); - - // Navigate across process to a page which was not recently loaded. - browser1.gotoIndex(0); - await awaitProcessChange(browser1); - await validate(browser1, 4, 1); - - // Navigate across process to a page which was not recently loaded in the other direction. - browser1.gotoIndex(3); - await awaitProcessChange(browser1); - await validate(browser1, 4, 4); - - // Create a new hidden prerendered tab to swap to - let tab3 = gBrowser.loadOneTab(URIs[4], { - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), - }); - await BrowserTestUtils.browserLoaded(tab3.linkedBrowser); - browser1.frameLoader.appendPartialSHistoryAndSwap(tab3.linkedBrowser.frameLoader); - await awaitProcessChange(browser1); - await validate(browser1, 5, 5); - - browser1.gotoIndex(0); - await awaitProcessChange(browser1); - await validate(browser1, 5, 1); - - browser1.gotoIndex(2); - await awaitProcessChange(browser1); - await validate(browser1, 5, 3); - - // Load a new page and make sure it throws out all of the following entries. - URIs[3] = "data:text/html,NEW"; - browser1.loadURI(URIs[3]); - await BrowserTestUtils.browserLoaded(browser1); - await validate(browser1, 4, 4); - - browser1.gotoIndex(0); - await awaitProcessChange(browser1); - await validate(browser1, 4, 1); - - // XXX: This will be removed automatically by the owning tab closing in the - // future, but this is not supported yet. - gBrowser.removeTab(tab2); - gBrowser.removeTab(tab3); - }); -}); diff --git a/browser/extensions/pdfjs/README.mozilla b/browser/extensions/pdfjs/README.mozilla index 6d5bd5ada968..0b1a17f64c5a 100644 --- a/browser/extensions/pdfjs/README.mozilla +++ b/browser/extensions/pdfjs/README.mozilla @@ -1,5 +1,5 @@ This is the PDF.js project output, https://github.com/mozilla/pdf.js -Current extension version is: 2.0.250 +Current extension version is: 2.0.258 -Taken from upstream commit: 6b2ed504 +Taken from upstream commit: 5a52ee0a diff --git a/browser/extensions/pdfjs/content/build/pdf.js b/browser/extensions/pdfjs/content/build/pdf.js index 6492eda29b82..f85f214a8127 100644 --- a/browser/extensions/pdfjs/content/build/pdf.js +++ b/browser/extensions/pdfjs/content/build/pdf.js @@ -1936,7 +1936,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { if (worker.destroyed) { return Promise.reject(new Error('Worker was destroyed')); } - let apiVersion = '2.0.250'; + let apiVersion = '2.0.258'; source.disableRange = (0, _dom_utils.getDefaultSetting)('disableRange'); source.disableAutoFetch = (0, _dom_utils.getDefaultSetting)('disableAutoFetch'); source.disableStream = (0, _dom_utils.getDefaultSetting)('disableStream'); @@ -2144,11 +2144,8 @@ var PDFPageProxy = function PDFPageProxyClosure() { get view() { return this.pageInfo.view; }, - getViewport: function PDFPageProxy_getViewport(scale, rotate) { - if (arguments.length < 2) { - rotate = this.rotate; - } - return new _util.PageViewport(this.view, scale, rotate, 0, 0); + getViewport(scale, rotate = this.rotate, dontFlip = false) { + return new _util.PageViewport(this.view, scale, rotate, 0, 0, dontFlip); }, getAnnotations: function PDFPageProxy_getAnnotations(params) { var intent = params && params.intent || null; @@ -3233,8 +3230,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() { }(); var version, build; { - exports.version = version = '2.0.250'; - exports.build = build = '6b2ed504'; + exports.version = version = '2.0.258'; + exports.build = build = '5a52ee0a'; } exports.getDocument = getDocument; exports.LoopbackPort = LoopbackPort; @@ -4621,8 +4618,8 @@ exports.SVGGraphics = SVGGraphics; "use strict"; -var pdfjsVersion = '2.0.250'; -var pdfjsBuild = '6b2ed504'; +var pdfjsVersion = '2.0.258'; +var pdfjsBuild = '5a52ee0a'; var pdfjsSharedUtil = __w_pdfjs_require__(0); var pdfjsDisplayGlobal = __w_pdfjs_require__(12); var pdfjsDisplayAPI = __w_pdfjs_require__(3); @@ -7744,8 +7741,8 @@ if (!_global_scope2.default.PDFJS) { } var PDFJS = _global_scope2.default.PDFJS; { - PDFJS.version = '2.0.250'; - PDFJS.build = '6b2ed504'; + PDFJS.version = '2.0.258'; + PDFJS.build = '5a52ee0a'; } PDFJS.pdfBug = false; if (PDFJS.verbosity !== undefined) { diff --git a/browser/extensions/pdfjs/content/build/pdf.worker.js b/browser/extensions/pdfjs/content/build/pdf.worker.js index 2ec091212887..e7ab9ba5fb9e 100644 --- a/browser/extensions/pdfjs/content/build/pdf.worker.js +++ b/browser/extensions/pdfjs/content/build/pdf.worker.js @@ -20784,8 +20784,8 @@ exports.PostScriptCompiler = PostScriptCompiler; "use strict"; -var pdfjsVersion = '2.0.250'; -var pdfjsBuild = '6b2ed504'; +var pdfjsVersion = '2.0.258'; +var pdfjsBuild = '5a52ee0a'; var pdfjsCoreWorker = __w_pdfjs_require__(19); exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler; @@ -20980,7 +20980,7 @@ var WorkerMessageHandler = { var cancelXHRs = null; var WorkerTasks = []; let apiVersion = docParams.apiVersion; - let workerVersion = '2.0.250'; + let workerVersion = '2.0.258'; if (apiVersion !== null && apiVersion !== workerVersion) { throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`); } @@ -32533,6 +32533,10 @@ var Font = function FontClosure() { var header = file.peekBytes(4); return (0, _util.readUint32)(header, 0) === 0x00010000; } + function isTrueTypeCollectionFile(file) { + let header = file.peekBytes(4); + return (0, _util.bytesToString)(header) === 'ttcf'; + } function isOpenTypeFile(file) { var header = file.peekBytes(4); return (0, _util.bytesToString)(header) === 'OTTO'; @@ -32941,6 +32945,29 @@ var Font = function FontClosure() { this.fontType = getFontType(type, subtype); }, checkAndRepair: function Font_checkAndRepair(name, font, properties) { + const VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF ']; + function readTables(file, numTables) { + let tables = Object.create(null); + tables['OS/2'] = null; + tables['cmap'] = null; + tables['head'] = null; + tables['hhea'] = null; + tables['hmtx'] = null; + tables['maxp'] = null; + tables['name'] = null; + tables['post'] = null; + for (let i = 0; i < numTables; i++) { + let table = readTableEntry(font); + if (VALID_TABLES.indexOf(table.tag) < 0) { + continue; + } + if (table.length === 0) { + continue; + } + tables[table.tag] = table; + } + return tables; + } function readTableEntry(file) { var tag = (0, _util.bytesToString)(file.getBytes(4)); var checksum = file.getInt32() >>> 0; @@ -32972,6 +32999,58 @@ var Font = function FontClosure() { rangeShift: ttf.getUint16() }; } + function readTrueTypeCollectionHeader(ttc) { + let ttcTag = (0, _util.bytesToString)(ttc.getBytes(4)); + (0, _util.assert)(ttcTag === 'ttcf', 'Must be a TrueType Collection font.'); + let majorVersion = ttc.getUint16(); + let minorVersion = ttc.getUint16(); + let numFonts = ttc.getInt32() >>> 0; + let offsetTable = []; + for (let i = 0; i < numFonts; i++) { + offsetTable.push(ttc.getInt32() >>> 0); + } + let header = { + ttcTag, + majorVersion, + minorVersion, + numFonts, + offsetTable + }; + switch (majorVersion) { + case 1: + return header; + case 2: + header.dsigTag = ttc.getInt32() >>> 0; + header.dsigLength = ttc.getInt32() >>> 0; + header.dsigOffset = ttc.getInt32() >>> 0; + return header; + } + throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`); + } + function readTrueTypeCollectionData(ttc, fontName) { + let { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc); + for (let i = 0; i < numFonts; i++) { + ttc.pos = (ttc.start || 0) + offsetTable[i]; + let potentialHeader = readOpenTypeHeader(ttc); + let potentialTables = readTables(ttc, potentialHeader.numTables); + if (!potentialTables['name']) { + throw new _util.FormatError('TrueType Collection font must contain a "name" table.'); + } + let nameTable = readNameTable(potentialTables['name']); + for (let j = 0, jj = nameTable.length; j < jj; j++) { + for (let k = 0, kk = nameTable[j].length; k < kk; k++) { + let nameEntry = nameTable[j][k]; + if (nameEntry && nameEntry.replace(/\s/g, '') === fontName) { + return { + header: potentialHeader, + tables: potentialTables + }; + } + } + } + } + throw new _util.FormatError(`TrueType Collection does not contain "${fontName}" font.`); + } function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) { if (!cmap) { (0, _util.warn)('No cmap table available.'); @@ -33687,30 +33766,16 @@ var Font = function FontClosure() { return ttContext.hintsValid; } font = new _stream.Stream(new Uint8Array(font.getBytes())); - var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF ']; - var header = readOpenTypeHeader(font); - var numTables = header.numTables; - var cff, cffFile; - var tables = Object.create(null); - tables['OS/2'] = null; - tables['cmap'] = null; - tables['head'] = null; - tables['hhea'] = null; - tables['hmtx'] = null; - tables['maxp'] = null; - tables['name'] = null; - tables['post'] = null; - var table; - for (var i = 0; i < numTables; i++) { - table = readTableEntry(font); - if (VALID_TABLES.indexOf(table.tag) < 0) { - continue; - } - if (table.length === 0) { - continue; - } - tables[table.tag] = table; + let header, tables; + if (isTrueTypeCollectionFile(font)) { + let ttcData = readTrueTypeCollectionData(font, this.name); + header = ttcData.header; + tables = ttcData.tables; + } else { + header = readOpenTypeHeader(font); + tables = readTables(font, header.numTables); } + let cff, cffFile; var isTrueType = !tables['CFF ']; if (!isTrueType) { if (header.version === 'OTTO' && !(properties.composite && properties.cidToGidMap) || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) { @@ -33865,7 +33930,7 @@ var Font = function FontClosure() { unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName); } var found = false; - for (i = 0; i < cmapMappingsLength; ++i) { + for (let i = 0; i < cmapMappingsLength; ++i) { if (cmapMappings[i].charCode !== unicodeOrCharCode) { continue; } @@ -33884,11 +33949,11 @@ var Font = function FontClosure() { } } } else if (cmapPlatformId === 0 && cmapEncodingId === 0) { - for (i = 0; i < cmapMappingsLength; ++i) { + for (let i = 0; i < cmapMappingsLength; ++i) { charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId; } } else { - for (i = 0; i < cmapMappingsLength; ++i) { + for (let i = 0; i < cmapMappingsLength; ++i) { charCode = cmapMappings[i].charCode; if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) { charCode &= 0xFF; diff --git a/browser/extensions/pdfjs/content/web/viewer.js b/browser/extensions/pdfjs/content/web/viewer.js index ba78ab4e2dc8..8ce6f66da42a 100644 --- a/browser/extensions/pdfjs/content/web/viewer.js +++ b/browser/extensions/pdfjs/content/web/viewer.js @@ -2305,6 +2305,7 @@ function webViewerKeyDown(evt) { handled = true; } break; + case 13: case 40: case 34: case 32: @@ -2349,6 +2350,7 @@ function webViewerKeyDown(evt) { } if (cmd === 4) { switch (evt.keyCode) { + case 13: case 32: if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== 'page-fit') { break; diff --git a/docshell/base/PendingGlobalHistoryEntry.cpp b/docshell/base/PendingGlobalHistoryEntry.cpp deleted file mode 100644 index 72eaf07c974f..000000000000 --- a/docshell/base/PendingGlobalHistoryEntry.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "mozilla/dom/PendingGlobalHistoryEntry.h" - -namespace mozilla { - -namespace dom { - -void -PendingGlobalHistoryEntry::VisitURI(nsIURI* aURI, - nsIURI* aLastVisitedURI, - nsIURI* aReferrerURI, - uint32_t aFlags) -{ - URIVisit visit; - visit.mURI = aURI; - visit.mLastVisitedURI = aLastVisitedURI; - visit.mReferrerURI = aReferrerURI; - visit.mFlags = aFlags; - mVisits.AppendElement(Move(visit)); -} - -void -PendingGlobalHistoryEntry::SetURITitle(nsIURI* aURI, - const nsAString& aTitle) -{ - URITitle title; - title.mURI = aURI; - title.mTitle.Assign(aTitle); - mTitles.AppendElement(title); -} - -nsresult -PendingGlobalHistoryEntry::ApplyChanges(IHistory* aHistory) -{ - nsresult rv; - for (const URIVisit& visit : mVisits) { - rv = aHistory->VisitURI(visit.mURI, visit.mLastVisitedURI, visit.mFlags); - NS_ENSURE_SUCCESS(rv, rv); - } - mVisits.Clear(); - - for (const URITitle& title : mTitles) { - rv = aHistory->SetURITitle(title.mURI, title.mTitle); - NS_ENSURE_SUCCESS(rv, rv); - } - mTitles.Clear(); - - return NS_OK; -} - -nsresult -PendingGlobalHistoryEntry::ApplyChanges(nsIGlobalHistory2* aHistory) -{ - nsresult rv; - for (const URIVisit& visit : mVisits) { - bool redirect = (visit.mFlags & IHistory::REDIRECT_TEMPORARY) || - (visit.mFlags & IHistory::REDIRECT_PERMANENT); - bool toplevel = (visit.mFlags & IHistory::TOP_LEVEL); - - rv = aHistory->AddURI(visit.mURI, redirect, toplevel, visit.mReferrerURI); - NS_ENSURE_SUCCESS(rv, rv); - } - mVisits.Clear(); - - for (const URITitle& title : mTitles) { - rv = aHistory->SetPageTitle(title.mURI, title.mTitle); - NS_ENSURE_SUCCESS(rv, rv); - } - mTitles.Clear(); - - return NS_OK; -} - -} // namespace dom - -} // namespace mozilla diff --git a/docshell/base/PendingGlobalHistoryEntry.h b/docshell/base/PendingGlobalHistoryEntry.h deleted file mode 100644 index 0b783d7cebd5..000000000000 --- a/docshell/base/PendingGlobalHistoryEntry.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef mozilla_dom_PendingGlobalHistoryEntry_h_ -#define mozilla_dom_PendingGlobalHistoryEntry_h_ - -#include "mozilla/IHistory.h" -#include "nsIGlobalHistory2.h" -#include "nsIURI.h" -#include "nsCOMPtr.h" -#include "nsString.h" -#include "nsTArray.h" - -namespace mozilla { - -namespace dom { - -// This class acts as a wrapper around a IHistory, in that it can be used to -// record a series of operations on the IHistory, and then play them back at a -// later time. This is used in Prerendering in order to record the Global -// History changes being made by the prerendering docshell and then play them -// back when the docshell is finished rendering. -// -// This class also handles applying the changes to nsIGlobalHistory2. -class PendingGlobalHistoryEntry -{ -public: - void VisitURI(nsIURI* aURI, - nsIURI* aLastVisitedURI, - nsIURI* aReferrerURI, - uint32_t aFlags); - - void SetURITitle(nsIURI* aURI, - const nsAString& aTitle); - - nsresult ApplyChanges(IHistory* aHistory); - - nsresult ApplyChanges(nsIGlobalHistory2* aHistory); - -private: - struct URIVisit - { - nsCOMPtr mURI; - nsCOMPtr mLastVisitedURI; - nsCOMPtr mReferrerURI; - uint32_t mFlags = 0; - }; - struct URITitle - { - nsCOMPtr mURI; - nsString mTitle; - }; - nsTArray mVisits; - nsTArray mTitles; -}; - -} // namespace dom - -} // namespace mozilla - -#endif // mozilla_dom_PendingGlobalHistoryEntry_h_ - diff --git a/docshell/base/moz.build b/docshell/base/moz.build index a7f09a7e8359..e8eb51539281 100644 --- a/docshell/base/moz.build +++ b/docshell/base/moz.build @@ -80,10 +80,6 @@ EXPORTS.mozilla += [ 'LoadContext.h', ] -EXPORTS.mozilla.dom += [ - 'PendingGlobalHistoryEntry.h', -] - UNIFIED_SOURCES += [ 'LoadContext.cpp', 'nsAboutRedirector.cpp', @@ -98,7 +94,6 @@ UNIFIED_SOURCES += [ 'nsPingListener.cpp', 'nsRefreshTimer.cpp', 'nsWebNavigationInfo.cpp', - 'PendingGlobalHistoryEntry.cpp', 'SerializedLoadContext.cpp', ] diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index 1a5490dd4aaa..4b1cf99ba3e8 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -41,7 +41,6 @@ #include "mozilla/dom/DocGroup.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/HTMLAnchorElement.h" -#include "mozilla/dom/PendingGlobalHistoryEntry.h" #include "mozilla/dom/PerformanceNavigation.h" #include "mozilla/dom/PermissionMessageUtils.h" #include "mozilla/dom/ProfileTimelineMarkerBinding.h" @@ -367,7 +366,6 @@ nsDocShell::nsDocShell() , mIsOffScreenBrowser(false) , mIsActive(true) , mDisableMetaRefreshWhenInactive(false) - , mIsPrerendered(false) , mIsAppTab(false) , mUseGlobalHistory(false) , mUseRemoteTabs(false) @@ -1026,7 +1024,6 @@ nsDocShell::LoadURI(nsIURI* aURI, srcdoc, sourceDocShell, baseURI, - false, nullptr, // No nsIDocShell nullptr); // No nsIRequest } @@ -2991,12 +2988,8 @@ nsDocShell::SetDocLoaderParent(nsDocLoader* aParent) } SetAllowContentRetargeting(mAllowContentRetargeting && parentAsDocShell->GetAllowContentRetargetingOnChildren()); - if (parentAsDocShell->GetIsPrerendered()) { - SetIsPrerendered(); - } if (NS_SUCCEEDED(parentAsDocShell->GetIsActive(&value))) { - // a prerendered docshell is not active yet - SetIsActive(value && !mIsPrerendered); + SetIsActive(value); } if (NS_SUCCEEDED(parentAsDocShell->GetCustomUserAgent(customUserAgent)) && !customUserAgent.IsEmpty()) { @@ -5024,7 +5017,7 @@ nsDocShell::LoadErrorPage(nsIURI* aURI, const char16_t* aURL, INTERNAL_LOAD_FLAGS_NONE, EmptyString(), nullptr, VoidString(), nullptr, -1, nullptr, LOAD_ERROR_PAGE, nullptr, true, VoidString(), this, - nullptr, false, nullptr, nullptr); + nullptr, nullptr, nullptr); } NS_IMETHODIMP @@ -5133,7 +5126,6 @@ nsDocShell::Reload(uint32_t aReloadFlags) srcdoc, // srcdoc argument for iframe this, // For reloads we are the source baseURI, - false, nullptr, // No nsIDocShell nullptr); // No nsIRequest } @@ -5846,21 +5838,6 @@ nsDocShell::SetIsActive(bool aIsActive) // Keep track ourselves. mIsActive = aIsActive; - // Clear prerender flag if necessary. - if (mIsPrerendered && aIsActive) { - MOZ_ASSERT(mPrerenderGlobalHistory.get()); - mIsPrerendered = false; - nsCOMPtr history = services::GetHistoryService(); - nsresult rv = NS_OK; - if (history) { - rv = mPrerenderGlobalHistory->ApplyChanges(history); - } else if (mGlobalHistory) { - rv = mPrerenderGlobalHistory->ApplyChanges(mGlobalHistory); - } - mPrerenderGlobalHistory = nullptr; - NS_ENSURE_SUCCESS(rv, rv); - } - // Tell the PresShell about it. nsCOMPtr pshell = GetPresShell(); if (pshell) { @@ -5933,24 +5910,6 @@ nsDocShell::GetIsActive(bool* aIsActive) return NS_OK; } -NS_IMETHODIMP -nsDocShell::SetIsPrerendered() -{ - MOZ_ASSERT(!mIsPrerendered, - "SetIsPrerendered() called on already prerendered docshell"); - SetIsActive(false); - mIsPrerendered = true; - mPrerenderGlobalHistory = mozilla::MakeUnique(); - return NS_OK; -} - -NS_IMETHODIMP -nsDocShell::GetIsPrerendered(bool* aIsPrerendered) -{ - *aIsPrerendered = mIsPrerendered; - return NS_OK; -} - NS_IMETHODIMP nsDocShell::SetIsAppTab(bool aIsAppTab) { @@ -8573,8 +8532,7 @@ nsDocShell::RestoreFromHistory() // this.AddChild(child) calls child.SetDocLoaderParent(this), meaning that // the child inherits our state. Among other things, this means that the - // child inherits our mIsActive, mIsPrerendered and mPrivateBrowsingId, - // which is what we want. + // child inherits our mIsActive mPrivateBrowsingId, which is what we want. AddChild(childItem); childShell->SetAllowPlugins(allowPlugins); @@ -9264,8 +9222,7 @@ public: bool aFirstParty, const nsAString& aSrcdoc, nsIDocShell* aSourceDocShell, - nsIURI* aBaseURI, - bool aCheckForPrerender) + nsIURI* aBaseURI) : mozilla::Runnable("InternalLoadEvent") , mSrcdoc(aSrcdoc) , mDocShell(aDocShell) @@ -9286,7 +9243,6 @@ public: , mFirstParty(aFirstParty) , mSourceDocShell(aSourceDocShell) , mBaseURI(aBaseURI) - , mCheckForPrerender(aCheckForPrerender) { // Make sure to keep null things null as needed if (aTypeHint) { @@ -9310,7 +9266,7 @@ public: VoidString(), mPostData, mPostDataLength, mHeadersData, mLoadType, mSHEntry, mFirstParty, mSrcdoc, mSourceDocShell, - mBaseURI, mCheckForPrerender, nullptr, + mBaseURI, nullptr, nullptr); } @@ -9336,7 +9292,6 @@ private: bool mFirstParty; nsCOMPtr mSourceDocShell; nsCOMPtr mBaseURI; - bool mCheckForPrerender; }; /** @@ -9388,7 +9343,6 @@ nsDocShell::InternalLoad(nsIURI* aURI, const nsAString& aSrcdoc, nsIDocShell* aSourceDocShell, nsIURI* aBaseURI, - bool aCheckForPrerender, nsIDocShell** aDocShell, nsIRequest** aRequest) { @@ -9768,7 +9722,6 @@ nsDocShell::InternalLoad(nsIURI* aURI, aSrcdoc, aSourceDocShell, aBaseURI, - aCheckForPrerender, aDocShell, aRequest); if (rv == NS_ERROR_NO_CONTENT) { @@ -9854,7 +9807,7 @@ nsDocShell::InternalLoad(nsIURI* aURI, aTriggeringPrincipal, principalToInherit, aFlags, aTypeHint, aPostData, aPostDataLength, aHeadersData, aLoadType, aSHEntry, aFirstParty, - aSrcdoc, aSourceDocShell, aBaseURI, false); + aSrcdoc, aSourceDocShell, aBaseURI); return DispatchToTabGroup(TaskCategory::Other, ev.forget()); } @@ -10233,25 +10186,6 @@ nsDocShell::InternalLoad(nsIURI* aURI, } } - if (browserChrome3 && aCheckForPrerender) { - nsCOMPtr ev = - new InternalLoadEvent(this, aURI, aOriginalURI, aResultPrincipalURI, - aLoadReplace, aReferrer, aReferrerPolicy, - aTriggeringPrincipal, principalToInherit, - aFlags, aTypeHint, aPostData, aPostDataLength, - aHeadersData, aLoadType, aSHEntry, aFirstParty, - aSrcdoc, aSourceDocShell, aBaseURI, false); - // We don't need any success handler since in that case - // OnPartialSHistoryDeactive would be called, and it would ensure - // docshell loads about:blank. - bool shouldSwitch = false; - rv = browserChrome3->ShouldSwitchToPrerenderedDocument( - aURI, mCurrentURI, nullptr, ev, &shouldSwitch); - if (NS_SUCCEEDED(rv) && shouldSwitch) { - return NS_OK; - } - } - // Whenever a top-level browsing context is navigated, the user agent MUST // lock the orientation of the document to the document's default // orientation. We don't explicitly check for a top-level browsing context @@ -12478,7 +12412,6 @@ nsDocShell::LoadHistoryEntry(nsISHEntry* aEntry, uint32_t aLoadType) srcdoc, nullptr, // Source docshell, see comment above baseURI, - false, nullptr, // No nsIDocShell nullptr); // No nsIRequest return rv; @@ -12780,7 +12713,7 @@ nsDocShell::AddURIVisit(nsIURI* aURI, nsCOMPtr history = services::GetHistoryService(); - if (mPrerenderGlobalHistory || history) { + if (history) { uint32_t visitURIFlags = 0; if (!IsFrame()) { @@ -12810,14 +12743,7 @@ nsDocShell::AddURIVisit(nsIURI* aURI, visitURIFlags |= IHistory::UNRECOVERABLE_ERROR; } - if (mPrerenderGlobalHistory) { - mPrerenderGlobalHistory->VisitURI(aURI, - aPreviousURI, - aReferrerURI, - visitURIFlags); - } else { - (void)history->VisitURI(aURI, aPreviousURI, visitURIFlags); - } + (void)history->VisitURI(aURI, aPreviousURI, visitURIFlags); } else if (mGlobalHistory) { // Falls back to sync global history interface. (void)mGlobalHistory->AddURI(aURI, @@ -13785,7 +13711,6 @@ nsDocShell::OnLinkClickSync(nsIContent* aContent, VoidString(), // No srcdoc this, // We are the source nullptr, // baseURI not needed - true, // Check for prerendered doc aDocShell, // DocShell out-param aRequest); // Request out-param if (NS_SUCCEEDED(rv)) { @@ -14215,9 +14140,7 @@ nsDocShell::UpdateGlobalHistoryTitle(nsIURI* aURI) { if (mUseGlobalHistory && !UsePrivateBrowsing()) { nsCOMPtr history = services::GetHistoryService(); - if (mPrerenderGlobalHistory) { - mPrerenderGlobalHistory->SetURITitle(aURI, mTitle); - } else if (history) { + if (history) { history->SetURITitle(aURI, mTitle); } else if (mGlobalHistory) { mGlobalHistory->SetPageTitle(aURI, nsString(mTitle)); diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h index a170550927eb..801f3e243fcc 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -71,7 +71,6 @@ namespace dom { class ClientInfo; class ClientSource; class EventTarget; -class PendingGlobalHistoryEntry; typedef uint32_t ScreenOrientationInternal; } // namespace dom } // namespace mozilla @@ -911,7 +910,6 @@ private: // data members nsTObserverArray mReflowObservers; nsTObserverArray mScrollObservers; mozilla::OriginAttributes mOriginAttributes; - mozilla::UniquePtr mPrerenderGlobalHistory; mozilla::UniquePtr mInitialClientSource; RefPtr mTiming; RefPtr mContentListener; @@ -1113,7 +1111,6 @@ private: // data members bool mIsOffScreenBrowser : 1; bool mIsActive : 1; bool mDisableMetaRefreshWhenInactive : 1; - bool mIsPrerendered : 1; bool mIsAppTab : 1; bool mUseGlobalHistory : 1; bool mUseRemoteTabs : 1; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl index 508b54eb9939..3e567e8df9b7 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -219,7 +219,6 @@ interface nsIDocShell : nsIDocShellTreeItem in AString aSrcdoc, in nsIDocShell aSourceDocShell, in nsIURI aBaseURI, - in boolean aCheckForPrerender, out nsIDocShell aDocShell, out nsIRequest aRequest); @@ -677,17 +676,6 @@ interface nsIDocShell : nsIDocShellTreeItem */ attribute boolean isActive; - /** - * Puts the docshell in prerendering mode. noscript because we want only - * native code to be able to put a docshell in prerendering. - */ - [noscript] void SetIsPrerendered(); - - /** - * Whether this docshell is in prerender mode. - */ - [infallible] readonly attribute boolean isPrerendered; - /** * The ID of the docshell in the session history. */ diff --git a/docshell/shistory/moz.build b/docshell/shistory/moz.build index 2f7b44ee8018..f02324470506 100644 --- a/docshell/shistory/moz.build +++ b/docshell/shistory/moz.build @@ -6,9 +6,6 @@ XPIDL_SOURCES += [ 'nsIBFCacheEntry.idl', - 'nsIGroupedSHistory.idl', - 'nsIPartialSHistory.idl', - 'nsIPartialSHistoryListener.idl', 'nsISHContainer.idl', 'nsISHEntry.idl', 'nsISHistory.idl', diff --git a/docshell/shistory/nsIGroupedSHistory.idl b/docshell/shistory/nsIGroupedSHistory.idl deleted file mode 100644 index 52c73dfd2812..000000000000 --- a/docshell/shistory/nsIGroupedSHistory.idl +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "nsISupports.idl" - -interface nsIFrameLoader; -interface nsIPartialSHistory; - -/** - * nsIGroupedSHistory represent a combined session history across multiple - * root docshells (usually browser tabs). The participating nsISHistory can - * either be in chrome process or in content process, but nsIGroupedSHistory - * itself lives in chrome process. The communication is proxyed through - * nsIPartialSHistory. - */ -[scriptable, builtinclass, uuid(813e498d-73a8-449a-be09-6187e62c5352)] -interface nsIGroupedSHistory : nsISupports -{ - // The total number of entries of all its partial session histories. - [infallible] readonly attribute unsigned long count; - - /** - * The currently active frameloader controlled by this nsIGroupedSHistory. - */ - readonly attribute nsIFrameLoader activeFrameLoader; - - /** - * Remove all partial histories after currently active one (if any) and then - * append the given partial session history to the end of the list. - */ - void appendPartialSHistory(in nsIPartialSHistory aPartialHistory); - - /** - * Notify the grouped session history that the active partial session history - * has been modified. - * - * @param aPartialHistory The partial history which was updated - * @param aTruncate If this parameter is true, all partial session histories - * after this one will be removed. - */ - void handleSHistoryUpdate(in nsIPartialSHistory aPartialHistory, in boolean aTruncate); - - /** - * Find the proper partial session history and navigate to the entry - * corresponding to the given global index. Note it doesn't swap frameloaders, - * but rather return the target loader for the caller to swap. - * - * This function may throw NS_ERROR_NOT_AVAILABLE if the frameloader to swap - * to is dead. - * - * @param aGlobalIndex - * The global index to navigate to. - * @return The frameloader which needs to be swapped in, or null if no - * frameloader needs to be swapped. - */ - nsIFrameLoader gotoIndex(in unsigned long aGlobalIndex); - - /** - * Close the FrameLoaderOwners of the inactive PartialSHistories in this GlobalSHistory. - * This does not remove the PartialSHistories from the GroupedSHistory. - */ - void closeInactiveFrameLoaderOwners(); - - /** - * Add a partialSHistory as a "prerendering" partialSHistory. This - * partialSHistory's tab will have its lifetime managed by the - * GroupedSHistory, and will be closed when closeInactiveFrameLoaderOwners is - * called, or whenever a SHistory update is received. - */ - void addPrerenderingPartialSHistory(in nsIPartialSHistory aPrerendering, in long aId); - - /** - * Switch to the prerendering partialSHistory identified by aId, appending it after the current partialSHistory. - */ - [implicit_jscontext] nsISupports activatePrerendering(in long aId); - - /** - * Cancel the prerendering with the given ID. - */ - void cancelPrerendering(in long aId); -}; diff --git a/docshell/shistory/nsIPartialSHistory.idl b/docshell/shistory/nsIPartialSHistory.idl deleted file mode 100644 index 7d2ec5be4163..000000000000 --- a/docshell/shistory/nsIPartialSHistory.idl +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "nsISupports.idl" - -interface nsIGroupedSHistory; -interface nsIFrameLoader; - -/** - * nsIPartialSHistory represents a part of nsIGroupedSHistory. It associates to - * a "partial" nsISHistory in either local or remote process. - */ -[scriptable, builtinclass, uuid(5cd75e28-838c-4a0a-972e-6005f736ef7a)] -interface nsIPartialSHistory : nsISupports -{ - // The number of entries of its corresponding nsISHistory. - [infallible] readonly attribute unsigned long count; - - // The current global index of the active shentry in this partialSHistory. - [infallible] readonly attribute long globalIndex; - - // If it's part of a grouped session history, globalIndexOffset denotes the - // number of entries ahead. - [infallible] readonly attribute unsigned long globalIndexOffset; - - // The frameloader which owns this partial session history. - readonly attribute nsIFrameLoader ownerFrameLoader; - - // The groupedSHistory which this partialSHistory is a part of, or null. - readonly attribute nsIGroupedSHistory groupedSHistory; - - // The current state of the nsIPartialSHistory, whether it is active, - // inactive, or currently prerendering. - const long STATE_INACTIVE = 0; - const long STATE_ACTIVE = 1; - const long STATE_PRERENDER = 2; - - [infallible] attribute long activeState; - - /** - * Notify that it's been added to a grouped session history. It also implies - * it's becoming the active partial history of the group. - * - * @param aGroup The GroupedSHistory which this partialSHistory - * is joining. - * - * @param aOffset The number of entries in preceding partial - * session histories. - */ - void onAttachGroupedSHistory(in nsIGroupedSHistory aGroup, in unsigned long aOffset); - - /** - * This method is used by the TabParent to notify the PartialSHistory - * that the state of its corresponding nsISHistory in the content process - * has been updated. It is unused in the in-process case. - * - * @param aCount The number of entries in the associated session history. - * @param aLocalIndex The local index of the currently active entry in the - * associated session history - */ - void handleSHistoryUpdate(in unsigned long aCount, in unsigned long aLocalIndex, in boolean aTruncate); - - /** - * Notify that the partial session history has been swapped in as the active - * session history. Only an active session history can possibly add / remove / - * replace its history entries. - * - * @param aGlobalLength The up-to-date global length. - * @param aTargetLocalIndex The local index to navigate to. - */ - void onActive(in unsigned long aGlobalLength, in unsigned long aTargetLocalIndex); - - /** - * Notify that the partial session history has been swapped out and is no - * longer active. - */ - void onDeactive(); -}; diff --git a/docshell/shistory/nsIPartialSHistoryListener.idl b/docshell/shistory/nsIPartialSHistoryListener.idl deleted file mode 100644 index f0cdfd7e4d44..000000000000 --- a/docshell/shistory/nsIPartialSHistoryListener.idl +++ /dev/null @@ -1,24 +0,0 @@ -/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include "nsISupports.idl" - -/** - * Listener to handle cross partial nsISHistory navigation requests. - */ -[scriptable, uuid(be0cd2b6-6f03-4366-9fe2-184c914ff3df)] -interface nsIPartialSHistoryListener : nsISupports -{ - /** - * Called when the navigation target belongs to another nsISHistory within - * the same nsIGroupedSHistory, and it needs to initiate cross nsISHistory - * navigation. - * - * @param aIndex The index of complete history to navigate to. - */ - void onRequestCrossBrowserNavigation(in unsigned long aIndex); -}; diff --git a/docshell/shistory/nsISHistory.idl b/docshell/shistory/nsISHistory.idl index d4612ba7d061..e987c86a21b6 100644 --- a/docshell/shistory/nsISHistory.idl +++ b/docshell/shistory/nsISHistory.idl @@ -8,7 +8,6 @@ interface nsISHEntry; interface nsISHistoryListener; interface nsISimpleEnumerator; -interface nsIPartialSHistoryListener; /** * An interface to the primary properties of the Session History @@ -41,20 +40,6 @@ interface nsISHistory: nsISupports */ const long VIEWER_WINDOW = 3; - /** - * An attribute denoting whether the nsISHistory is associated to a grouped - * session history. - * - * The abstraction of grouped session history is implemented at - * nsIWebNavigation level, so those canGoBack / canGoForward / gotoIndex - * functions work transparently; - * - * On the other hand, nsISHistory works on partial session history directly. - * Unless otherwise specified, count / index attributes and parameters all - * indicate local count / index, so we won't mess up docshell. - */ - readonly attribute bool isPartial; - /** * A readonly property of the interface that returns * the number of toplevel documents currently available @@ -62,30 +47,12 @@ interface nsISHistory: nsISupports */ readonly attribute long count; - /** - * If isPartial, globalCount denotes the total number of entries in the - * grouped session history; Otherwise it has the same value as count. - */ - readonly attribute long globalCount; - - /** - * A readonly property which represents the difference between global indices - * of grouped session history and local indices of this particular session - * history object. - */ - readonly attribute long globalIndexOffset; - /** * A readonly property of the interface that returns * the index of the current document in session history. */ readonly attribute long index; - /** - * A readonly property which equals index + globalIndexOffset. - */ - readonly attribute long globalIndex; - /** * A readonly property of the interface that returns * the index of the last document that started to load and @@ -173,12 +140,6 @@ interface nsISHistory: nsISupports */ void removeSHistoryListener(in nsISHistoryListener aListener); - /** - * Set the listener to handle cross nsISHistory navigation when it works - * in "partial" mode. - */ - void setPartialSHistoryListener(in nsIPartialSHistoryListener aListener); - /** * Called to obtain a enumerator for all the documents stored in * session history. The enumerator object thus returned by this method @@ -215,28 +176,4 @@ interface nsISHistory: nsISupports * index for the given history entry. */ long getIndexOfEntry(in nsISHEntry aEntry); - - /** - * Called when this nsISHistory has became the active history of a grouped - * session history. - * - * @param globalLength The up to date number of entries in the grouped - * session history. - * @param targetIndex The local index to navigate to. - */ - void onPartialSHistoryActive(in long globalLength, in long targetIndex); - - /** - * Called when this nsISHistory has became inactive history of a grouped - * session history. - */ - void onPartialSHistoryDeactive(); - - /** - * Called when it's attached to a nsIGroupedSHistory instance. - * - * @param offset The number of entries in the grouped session - * history before this session history object. - */ - void onAttachGroupedSHistory(in long offset); }; diff --git a/docshell/shistory/nsSHistory.cpp b/docshell/shistory/nsSHistory.cpp index 81a6c0249c31..0e71607af210 100644 --- a/docshell/shistory/nsSHistory.cpp +++ b/docshell/shistory/nsSHistory.cpp @@ -235,10 +235,7 @@ nsSHistory::nsSHistory() : mIndex(-1) , mLength(0) , mRequestedIndex(-1) - , mGlobalIndexOffset(0) - , mEntriesInFollowingPartialHistories(0) , mRootDocShell(nullptr) - , mIsPartial(false) { // Add this new SHistory object to the list gSHistoryList.insertBack(this); @@ -666,10 +663,6 @@ nsSHistory::AddEntry(nsISHEntry* aSHEntry, bool aPersist) NOTIFY_LISTENERS(OnLengthChanged, (mLength)); NOTIFY_LISTENERS(OnIndexChanged, (mIndex)); - // Much like how mLength works above, when changing our entries, all following - // partial histories should be purged, so we just reset the number to zero. - mEntriesInFollowingPartialHistories = 0; - // If this is the very first transaction, initialize the list if (!mListRoot) { mListRoot = txn; @@ -683,14 +676,6 @@ nsSHistory::AddEntry(nsISHEntry* aSHEntry, bool aPersist) return NS_OK; } -NS_IMETHODIMP -nsSHistory::GetIsPartial(bool* aResult) -{ - NS_ENSURE_ARG_POINTER(aResult); - *aResult = mIsPartial; - return NS_OK; -} - /* Get size of the history list */ NS_IMETHODIMP nsSHistory::GetCount(int32_t* aResult) @@ -700,60 +685,6 @@ nsSHistory::GetCount(int32_t* aResult) return NS_OK; } -NS_IMETHODIMP -nsSHistory::GetGlobalCount(int32_t* aResult) -{ - NS_ENSURE_ARG_POINTER(aResult); - *aResult = mGlobalIndexOffset + mLength + mEntriesInFollowingPartialHistories; - return NS_OK; -} - -NS_IMETHODIMP -nsSHistory::GetGlobalIndexOffset(int32_t* aResult) -{ - NS_ENSURE_ARG_POINTER(aResult); - *aResult = mGlobalIndexOffset; - return NS_OK; -} - -NS_IMETHODIMP -nsSHistory::OnPartialSHistoryActive(int32_t aGlobalLength, int32_t aTargetIndex) -{ - NS_ENSURE_TRUE(mRootDocShell && mIsPartial, NS_ERROR_UNEXPECTED); - - int32_t extraLength = aGlobalLength - mLength - mGlobalIndexOffset; - NS_ENSURE_TRUE(extraLength >= 0, NS_ERROR_UNEXPECTED); - - if (extraLength != mEntriesInFollowingPartialHistories) { - mEntriesInFollowingPartialHistories = extraLength; - } - - return RestoreToEntryAtIndex(aTargetIndex); -} - -NS_IMETHODIMP -nsSHistory::OnPartialSHistoryDeactive() -{ - NS_ENSURE_TRUE(mRootDocShell && mIsPartial, NS_ERROR_UNEXPECTED); - - // Ensure the deactive docshell loads about:blank. - nsCOMPtr webNav = do_QueryInterface(mRootDocShell); - nsCOMPtr currentURI; - webNav->GetCurrentURI(getter_AddRefs(currentURI)); - if (NS_IsAboutBlank(currentURI)) { - return NS_OK; - } - - // At this point we've swapped out to an invisble tab, and can not prompt here. - // The check should have been done in nsDocShell::InternalLoad, so we'd - // just force docshell to load about:blank. - if (NS_FAILED(mRootDocShell->ForceCreateAboutBlankContentViewer(nullptr))) { - return NS_ERROR_FAILURE; - } - - return NS_OK; -} - /* Get index of the history list */ NS_IMETHODIMP nsSHistory::GetIndex(int32_t* aResult) @@ -763,14 +694,6 @@ nsSHistory::GetIndex(int32_t* aResult) return NS_OK; } -NS_IMETHODIMP -nsSHistory::GetGlobalIndex(int32_t* aResult) -{ - NS_PRECONDITION(aResult, "null out param?"); - *aResult = mIndex + mGlobalIndexOffset; - return NS_OK; -} - /* Get the requestedIndex */ NS_IMETHODIMP nsSHistory::GetRequestedIndex(int32_t* aResult) @@ -1022,9 +945,6 @@ nsSHistory::PurgeHistory(int32_t aEntries) mLength -= cnt; mIndex -= cnt; - // All following partial histories will be deleted in this case. - mEntriesInFollowingPartialHistories = 0; - // Now if we were not at the end of the history, mIndex could have // become far too negative. If so, just set it to -1. if (mIndex < -1) { @@ -1068,13 +988,6 @@ nsSHistory::RemoveSHistoryListener(nsISHistoryListener* aListener) return NS_OK; } -NS_IMETHODIMP -nsSHistory::SetPartialSHistoryListener(nsIPartialSHistoryListener* aListener) -{ - mPartialHistoryListener = do_GetWeakReference(aListener); - return NS_OK; -} - /* Replace an entry in the History list at a particular index. * Do not update index or count. */ @@ -1153,11 +1066,6 @@ nsSHistory::GetCanGoBack(bool* aCanGoBack) { NS_ENSURE_ARG_POINTER(aCanGoBack); - if (mGlobalIndexOffset) { - *aCanGoBack = true; - return NS_OK; - } - int32_t index = -1; NS_ENSURE_SUCCESS(GetIndex(&index), NS_ERROR_FAILURE); if (index > 0) { @@ -1174,11 +1082,6 @@ nsSHistory::GetCanGoForward(bool* aCanGoForward) { NS_ENSURE_ARG_POINTER(aCanGoForward); - if (mEntriesInFollowingPartialHistories) { - *aCanGoForward = true; - return NS_OK; - } - int32_t index = -1; int32_t count = -1; NS_ENSURE_SUCCESS(GetIndex(&index), NS_ERROR_FAILURE); @@ -1771,7 +1674,6 @@ nsSHistory::RemoveDuplicate(int32_t aIndex, bool aKeepNext) mRequestedIndex = mRequestedIndex - 1; } --mLength; - mEntriesInFollowingPartialHistories = 0; NOTIFY_LISTENERS(OnLengthChanged, (mLength)); return true; } @@ -1931,12 +1833,9 @@ nsSHistory::LoadURI(const char16_t* aURI, } NS_IMETHODIMP -nsSHistory::GotoIndex(int32_t aGlobalIndex) +nsSHistory::GotoIndex(int32_t aIndex) { - // We provide abstraction of grouped session history for nsIWebNavigation - // functions, so the index passed in here is global index. - return LoadEntry(aGlobalIndex - mGlobalIndexOffset, nsIDocShellLoadInfo::loadHistory, - HIST_CMD_GOTOINDEX); + return LoadEntry(aIndex, nsIDocShellLoadInfo::loadHistory, HIST_CMD_GOTOINDEX); } nsresult @@ -1963,50 +1862,35 @@ nsSHistory::LoadEntry(int32_t aIndex, long aLoadType, uint32_t aHistCmd) nsCOMPtr nextURI; nsCOMPtr prevEntry; nsCOMPtr nextEntry; - bool isCrossBrowserNavigation = false; if (aIndex < 0 || aIndex >= mLength) { - if (aIndex + mGlobalIndexOffset < 0) { - // The global index is negative. - return NS_ERROR_FAILURE; - } - - if (aIndex - mLength >= mEntriesInFollowingPartialHistories) { - // The global index exceeds max possible value. - return NS_ERROR_FAILURE; - } - - // The global index is valid. Mark that we're going to navigate to another - // partial history, but wait until we've notified all listeners before - // actually do so. - isCrossBrowserNavigation = true; - } else { - // This is a normal local history navigation. - // Keep note of requested history index in mRequestedIndex. - mRequestedIndex = aIndex; - - GetEntryAtIndex(mIndex, false, getter_AddRefs(prevEntry)); - GetEntryAtIndex(mRequestedIndex, false, getter_AddRefs(nextEntry)); - if (!nextEntry || !prevEntry) { - mRequestedIndex = -1; - return NS_ERROR_FAILURE; - } - - // Remember that this entry is getting loaded at this point in the sequence - nsCOMPtr entryInternal = do_QueryInterface(nextEntry); - - if (entryInternal) { - entryInternal->SetLastTouched(++gTouchCounter); - } - - // Get the uri for the entry we are about to visit - nextEntry->GetURI(getter_AddRefs(nextURI)); + // The index is out of range + return NS_ERROR_FAILURE; } - MOZ_ASSERT(isCrossBrowserNavigation || (prevEntry && nextEntry && nextURI), - "prevEntry, nextEntry and nextURI can be null only if isCrossBrowserNavigation is set"); + // This is a normal local history navigation. + // Keep note of requested history index in mRequestedIndex. + mRequestedIndex = aIndex; - // Send appropriate listener notifications. Note nextURI could be null in case - // of grouped session history navigation. + GetEntryAtIndex(mIndex, false, getter_AddRefs(prevEntry)); + GetEntryAtIndex(mRequestedIndex, false, getter_AddRefs(nextEntry)); + if (!nextEntry || !prevEntry) { + mRequestedIndex = -1; + return NS_ERROR_FAILURE; + } + + // Remember that this entry is getting loaded at this point in the sequence + nsCOMPtr entryInternal = do_QueryInterface(nextEntry); + + if (entryInternal) { + entryInternal->SetLastTouched(++gTouchCounter); + } + + // Get the uri for the entry we are about to visit + nextEntry->GetURI(getter_AddRefs(nextURI)); + + MOZ_ASSERT((prevEntry && nextEntry && nextURI), "prevEntry, nextEntry and nextURI can't be null"); + + // Send appropriate listener notifications. bool canNavigate = true; if (aHistCmd == HIST_CMD_BACK) { // We are going back one entry. Send GoBack notifications @@ -2029,23 +1913,6 @@ nsSHistory::LoadEntry(int32_t aIndex, long aLoadType, uint32_t aHistCmd) return NS_OK; // XXX Maybe I can return some other error code? } - if (isCrossBrowserNavigation) { - nsCOMPtr listener = - do_QueryReferent(mPartialHistoryListener); - if (!listener) { - return NS_ERROR_FAILURE; - } - - // CreateAboutBlankContentViewer would check for permit unload, fire proper - // pagehide / unload events and transfer content viewer ownership to SHEntry. - if (NS_FAILED(mRootDocShell->CreateAboutBlankContentViewer(nullptr))) { - return NS_ERROR_FAILURE; - } - - return listener->OnRequestCrossBrowserNavigation(aIndex + - mGlobalIndexOffset); - } - if (mRequestedIndex == mIndex) { // Possibly a reload case return InitiateLoad(nextEntry, mRootDocShell, aLoadType); @@ -2236,25 +2103,6 @@ nsSHistory::GetSHistoryEnumerator(nsISimpleEnumerator** aEnumerator) return NS_OK; } -NS_IMETHODIMP -nsSHistory::OnAttachGroupedSHistory(int32_t aOffset) -{ - NS_ENSURE_TRUE(!mIsPartial && mRootDocShell, NS_ERROR_UNEXPECTED); - NS_ENSURE_TRUE(aOffset >= 0, NS_ERROR_ILLEGAL_VALUE); - - mIsPartial = true; - mGlobalIndexOffset = aOffset; - - // The last attached history is always at the end of the group. - mEntriesInFollowingPartialHistories = 0; - - // Setting grouped history info may change canGoBack / canGoForward. - // Send a location change to update these values. - mRootDocShell->DispatchLocationChangeEvent(); - return NS_OK; - -} - nsSHEnumerator::nsSHEnumerator(nsSHistory* aSHistory) : mIndex(-1) { mSHistory = aSHistory; diff --git a/docshell/shistory/nsSHistory.h b/docshell/shistory/nsSHistory.h index 9839c5cd3d57..e2a581e09474 100644 --- a/docshell/shistory/nsSHistory.h +++ b/docshell/shistory/nsSHistory.h @@ -9,7 +9,6 @@ #include "nsCOMPtr.h" #include "nsExpirationTracker.h" -#include "nsIPartialSHistoryListener.h" #include "nsISHistory.h" #include "nsISHistoryInternal.h" #include "nsISimpleEnumerator.h" @@ -182,24 +181,12 @@ private: int32_t mLength; int32_t mRequestedIndex; - // The number of entries before this session history object. - int32_t mGlobalIndexOffset; - - // The number of entries after this session history object. - int32_t mEntriesInFollowingPartialHistories; - // Session History listeners nsAutoTObserverArray mListeners; - // Partial session history listener - nsWeakPtr mPartialHistoryListener; - // Weak reference. Do not refcount this. nsIDocShell* mRootDocShell; - // Set to true if attached to a grouped session history. - bool mIsPartial; - // Max viewers allowed total, across all SHistory objects static int32_t sHistoryMaxTotalViewers; }; diff --git a/docshell/test/browser/browser.ini b/docshell/test/browser/browser.ini index 2788674813a8..ed2aa08fbce5 100644 --- a/docshell/test/browser/browser.ini +++ b/docshell/test/browser/browser.ini @@ -106,11 +106,5 @@ skip-if = true # Bug 1220415 [browser_timelineMarkers-04.js] [browser_timelineMarkers-05.js] [browser_ua_emulation.js] -[browser_grouped_shistory_dead_navigate.js] -skip-if = !e10s -[browser_grouped_shistory_crossproc.js] -skip-if = !e10s -[browser_grouped_shistory_bfcache_cleaning.js] -skip-if = !e10s [browser_history_triggeringprincipal_viewsource.js] [browser_click_link_within_view_source.js] diff --git a/docshell/test/browser/browser_grouped_shistory_bfcache_cleaning.js b/docshell/test/browser/browser_grouped_shistory_bfcache_cleaning.js deleted file mode 100644 index 1aab5b24f570..000000000000 --- a/docshell/test/browser/browser_grouped_shistory_bfcache_cleaning.js +++ /dev/null @@ -1,59 +0,0 @@ -add_task(async function() { - await SpecialPowers.pushPrefEnv({ - set: [["browser.groupedhistory.enabled", true]] - }); - - // Wait for a process change and then fulfil the promise. - function awaitProcessChange(browser) { - return new Promise(resolve => { - browser.addEventListener("BrowserChangedProcess", function(e) { - ok(true, "The browser changed process!"); - resolve(); - }, {once: true}); - }); - } - - function isAlive(tab) { - return tab.linkedBrowser && - tab.linkedBrowser.frameLoader && - !tab.linkedBrowser.frameLoader.isDead; - } - - await BrowserTestUtils.withNewTab({ gBrowser, url: "data:text/html,a" }, async function(browser1) { - // Set up the grouped SHEntry setup - let tab2 = gBrowser.loadOneTab("data:text/html,b", { - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), - }); - await BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - browser1.frameLoader.appendPartialSHistoryAndSwap(tab2.linkedBrowser.frameLoader); - await awaitProcessChange(browser1); - ok(isAlive(tab2)); - - // Load some URIs and make sure that we lose the old process once we are 3 history entries away. - browser1.loadURI("data:text/html,c", null, null); - await BrowserTestUtils.browserLoaded(browser1); - ok(isAlive(tab2), "frameloader should still be alive"); - browser1.loadURI("data:text/html,d", null, null); - await BrowserTestUtils.browserLoaded(browser1); - ok(isAlive(tab2), "frameloader should still be alive"); - browser1.loadURI("data:text/html,e", null, null); - await BrowserTestUtils.browserLoaded(browser1); - ok(isAlive(tab2), "frameloader should still be alive"); - - // The 4th navigation should kill the frameloader - browser1.loadURI("data:text/html,f", null, null); - await new Promise(resolve => { - tab2.addEventListener("TabClose", function() { - ok(true, "The tab is being closed!\n"); - resolve(); - }, {once: true}); - }); - // We don't check for !isAlive() as TabClose is called during - // _beginRemoveTab, which means that the frameloader may not be dead yet. We - // avoid races by not checking. - }); -}); diff --git a/docshell/test/browser/browser_grouped_shistory_crossproc.js b/docshell/test/browser/browser_grouped_shistory_crossproc.js deleted file mode 100644 index 548e82338ad2..000000000000 --- a/docshell/test/browser/browser_grouped_shistory_crossproc.js +++ /dev/null @@ -1,52 +0,0 @@ -add_task(async function() { - await SpecialPowers.pushPrefEnv({ - set: [["browser.groupedhistory.enabled", true]] - }); - - // Wait for a process change and then fulfil the promise. - function awaitProcessChange(browser) { - return new Promise(resolve => { - browser.addEventListener("BrowserChangedProcess", function(e) { - ok(true, "The browser changed process!"); - resolve(); - }, {once: true}); - }); - } - - // Wait for the given tab being closed. - function awaitTabClose(tab) { - return new Promise(resolve => { - tab.addEventListener("TabClose", function() { - ok(true, "The tab is being closed!\n"); - resolve(); - }, {once: true}); - }); - } - - await BrowserTestUtils.withNewTab({ gBrowser, url: "data:text/html,a" }, async function(browser1) { - // Set up the grouped SHEntry setup - let tab2 = gBrowser.loadOneTab("data:text/html,b", { - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), - }); - await BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - browser1.frameLoader.appendPartialSHistoryAndSwap(tab2.linkedBrowser.frameLoader); - await awaitProcessChange(browser1); - - // Load a URI which will involve loading in the parent process - let tabClose = awaitTabClose(tab2); - browser1.loadURI("about:config", Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null); - await BrowserTestUtils.browserLoaded(browser1); - let docshell = browser1.frameLoader.docShell.QueryInterface(Ci.nsIWebNavigation); - ok(docshell, "The browser should be loaded in the chrome process"); - is(docshell.canGoForward, false, "canGoForward is correct"); - is(docshell.canGoBack, true, "canGoBack is correct"); - is(docshell.sessionHistory.count, 3, "Count is correct"); - is(browser1.frameLoader.groupedSHistory, null, - "browser1's session history is now complete"); - await tabClose; - }); -}); diff --git a/docshell/test/browser/browser_grouped_shistory_dead_navigate.js b/docshell/test/browser/browser_grouped_shistory_dead_navigate.js deleted file mode 100644 index 43e1e46c165a..000000000000 --- a/docshell/test/browser/browser_grouped_shistory_dead_navigate.js +++ /dev/null @@ -1,45 +0,0 @@ -add_task(async function() { - await SpecialPowers.pushPrefEnv({ - set: [["browser.groupedhistory.enabled", true], - ["dom.ipc.processCount", 1]] - }); - - // Wait for a process change and then fulfil the promise. - function awaitProcessChange(browser) { - return new Promise(resolve => { - browser.addEventListener("BrowserChangedProcess", function(e) { - ok(true, "The browser changed process!"); - resolve(); - }, {once: true}); - }); - } - - await BrowserTestUtils.withNewTab({ gBrowser, url: "data:text/html,a" }, async function(browser1) { - // Set up the grouped SHEntry setup - let tab2 = gBrowser.loadOneTab("data:text/html,b", { - referrerPolicy: Ci.nsIHttpChannel.REFERRER_POLICY_UNSET, - allowThirdPartyFixup: true, - relatedToCurrent: true, - isPrerendered: true, - triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), - }); - await BrowserTestUtils.browserLoaded(tab2.linkedBrowser); - browser1.frameLoader.appendPartialSHistoryAndSwap(tab2.linkedBrowser.frameLoader); - await awaitProcessChange(browser1); - - // Close tab2 such that the back frameloader is dead - await BrowserTestUtils.removeTab(tab2); - await BrowserTestUtils.waitForCondition(() => browser1.canGoBack); - browser1.goBack(); - await BrowserTestUtils.browserLoaded(browser1); - await ContentTask.spawn(browser1, null, function() { - is(content.window.location + "", "data:text/html,a"); - let webNav = content.window.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation); - is(webNav.canGoForward, true, "canGoForward is correct"); - is(webNav.canGoBack, false, "canGoBack is correct"); - }); - is(browser1.frameLoader.groupedSHistory, null, - "browser1's session history is now complete"); - }); -}); diff --git a/dom/base/GroupedSHistory.cpp b/dom/base/GroupedSHistory.cpp deleted file mode 100644 index 498de46cfb2f..000000000000 --- a/dom/base/GroupedSHistory.cpp +++ /dev/null @@ -1,354 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "GroupedSHistory.h" - -#include "mozilla/dom/Promise.h" -#include "TabParent.h" -#include "PartialSHistory.h" - -namespace mozilla { -namespace dom { - -NS_IMPL_CYCLE_COLLECTION_CLASS(GroupedSHistory) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(GroupedSHistory) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mPartialHistories) - tmp->mPrerenderingHistories.Clear(); -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(GroupedSHistory) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPartialHistories) - for (GroupedSHistory::PrerenderingHistory& h : tmp->mPrerenderingHistories) { - ImplCycleCollectionTraverse(cb, h.mPartialHistory, "mPrerenderingHistories[i]->mPartialHistory", 0); - } -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTING_ADDREF(GroupedSHistory) -NS_IMPL_CYCLE_COLLECTING_RELEASE(GroupedSHistory) - -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(GroupedSHistory) - NS_INTERFACE_MAP_ENTRY(nsIGroupedSHistory) - NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIGroupedSHistory) -NS_INTERFACE_MAP_END - -GroupedSHistory::GroupedSHistory() - : mCount(0), - mIndexOfActivePartialHistory(-1) -{ -} - -NS_IMETHODIMP -GroupedSHistory::GetCount(uint32_t* aResult) -{ - MOZ_ASSERT(aResult); - *aResult = mCount; - return NS_OK; -} - -NS_IMETHODIMP -GroupedSHistory::AppendPartialSHistory(nsIPartialSHistory* aPartialHistory) -{ - if (!aPartialHistory) { - return NS_ERROR_INVALID_POINTER; - } - - nsCOMPtr partialHistory(aPartialHistory); - if (!partialHistory || mPartialHistories.Contains(partialHistory)) { - return NS_ERROR_FAILURE; - } - - // Remove all items after active one and deactive it, unless it's the first - // call and no active partial history has been set yet. - if (mIndexOfActivePartialHistory >= 0) { - PurgePartialHistories(mIndexOfActivePartialHistory); - nsCOMPtr prevPartialHistory = - mPartialHistories[mIndexOfActivePartialHistory]; - if (NS_WARN_IF(!prevPartialHistory)) { - // Cycle collected? - return NS_ERROR_UNEXPECTED; - } - prevPartialHistory->OnDeactive(); - } - - // Attach the partial history. - uint32_t offset = mCount; - mCount += partialHistory->GetCount(); - mPartialHistories.AppendElement(partialHistory); - partialHistory->OnAttachGroupedSHistory(this, offset); - mIndexOfActivePartialHistory = mPartialHistories.Count() - 1; - - // Remove the prerendered documents, as there was a history navigation - PurgePrerendering(); - - return NS_OK; -} - -NS_IMETHODIMP -GroupedSHistory::HandleSHistoryUpdate(nsIPartialSHistory* aPartial, bool aTruncate) -{ - if (!aPartial) { - return NS_ERROR_INVALID_POINTER; - } - nsCOMPtr partialHistory = aPartial; - - int32_t index = partialHistory->GetGlobalIndex(); - // Get the lower and upper bounds for the viewer window - int32_t lower = index - nsISHistory::VIEWER_WINDOW; - int32_t upper = index + nsISHistory::VIEWER_WINDOW; - for (uint32_t i = 0; i < mPartialHistories.Length(); ++i) { - nsIPartialSHistory* pHistory = mPartialHistories[i]; - // Skip the active partial history. - if (pHistory == partialHistory) { - continue; - } - - // Check if the given partialshistory entry is too far away in history, and - // if it is, close it. - int32_t thisCount = pHistory->GetCount(); - int32_t thisOffset = pHistory->GetGlobalIndexOffset(); - if ((thisOffset > upper) || ((thisCount + thisOffset) < lower)) { - nsCOMPtr loader; - pHistory->GetOwnerFrameLoader(getter_AddRefs(loader)); - if (loader && !loader->GetIsDead()) { - loader->RequestFrameLoaderClose(); - } - } - } - - // Remove the prerendered documents, as there was a history navigation - PurgePrerendering(); - - // If we should be truncating, make sure to purge any partialSHistories which - // follow the one being updated. - if (aTruncate) { - int32_t index = mPartialHistories.IndexOf(partialHistory); - if (NS_WARN_IF(index != mIndexOfActivePartialHistory) || - NS_WARN_IF(index < 0)) { - // Non-active or not attached partialHistory - return NS_ERROR_UNEXPECTED; - } - - PurgePartialHistories(index); - - // Update global count. - uint32_t count = partialHistory->GetCount(); - uint32_t offset = partialHistory->GetGlobalIndexOffset(); - mCount = count + offset; - } - - return NS_OK; -} - -NS_IMETHODIMP -GroupedSHistory::GotoIndex(uint32_t aGlobalIndex, - nsIFrameLoader** aTargetLoaderToSwap) -{ - MOZ_ASSERT(aTargetLoaderToSwap); - *aTargetLoaderToSwap = nullptr; - - nsCOMPtr currentPartialHistory = - mPartialHistories[mIndexOfActivePartialHistory]; - if (!currentPartialHistory) { - // Cycle collected? - return NS_ERROR_UNEXPECTED; - } - - for (uint32_t i = 0; i < mPartialHistories.Length(); i++) { - nsCOMPtr partialHistory = mPartialHistories[i]; - if (NS_WARN_IF(!partialHistory)) { - // Cycle collected? - return NS_ERROR_UNEXPECTED; - } - - // Examine index range. - uint32_t offset = partialHistory->GetGlobalIndexOffset(); - uint32_t count = partialHistory->GetCount(); - if (offset <= aGlobalIndex && (offset + count) > aGlobalIndex) { - uint32_t targetIndex = aGlobalIndex - offset; - - // Check if we are trying to swap to a dead frameloader, and return - // NS_ERROR_NOT_AVAILABLE if we are. - nsCOMPtr frameLoader; - partialHistory->GetOwnerFrameLoader(getter_AddRefs(frameLoader)); - if (!frameLoader || frameLoader->GetIsDead()) { - return NS_ERROR_NOT_AVAILABLE; - } - - if ((size_t)mIndexOfActivePartialHistory == i) { - return NS_OK; - } - mIndexOfActivePartialHistory = i; - if (NS_FAILED(currentPartialHistory->OnDeactive()) || - NS_FAILED(partialHistory->OnActive(mCount, targetIndex))) { - return NS_ERROR_FAILURE; - } - - // Return the target frameloader to the caller. - frameLoader.forget(aTargetLoaderToSwap); - return NS_OK; - } - } - - // Index not found. - NS_WARNING("Out of index request!"); - return NS_ERROR_FAILURE; -} - -void -GroupedSHistory::PurgePartialHistories(uint32_t aLastPartialIndexToKeep) -{ - uint32_t lastIndex = mPartialHistories.Length() - 1; - if (aLastPartialIndexToKeep >= lastIndex) { - // Nothing to remove. - return; - } - - // Close tabs. - for (uint32_t i = lastIndex; i > aLastPartialIndexToKeep; i--) { - nsCOMPtr partialHistory = mPartialHistories[i]; - if (!partialHistory) { - // Cycle collected? - return; - } - - nsCOMPtr loader; - partialHistory->GetOwnerFrameLoader(getter_AddRefs(loader)); - loader->RequestFrameLoaderClose(); - } - - // Remove references. - mPartialHistories.RemoveElementsAt(aLastPartialIndexToKeep + 1, - lastIndex - aLastPartialIndexToKeep); -} - -/* static */ bool -GroupedSHistory::GroupedHistoryEnabled() { - static bool sGroupedSHistoryEnabled = false; - static bool sGroupedSHistoryPrefCached = false; - if (!sGroupedSHistoryPrefCached) { - sGroupedSHistoryPrefCached = true; - Preferences::AddBoolVarCache(&sGroupedSHistoryEnabled, - "browser.groupedhistory.enabled", - false); - } - - return sGroupedSHistoryEnabled; -} - -void -GroupedSHistory::PurgePrerendering() -{ - nsTArray histories = Move(mPrerenderingHistories); - // Remove the frameloaders which are owned by the prerendering history, and - // remove them from mPrerenderingHistories. - for (uint32_t i = 0; i < histories.Length(); ++i) { - nsCOMPtr loader; - histories[i].mPartialHistory->GetOwnerFrameLoader(getter_AddRefs(loader)); - if (loader) { - loader->RequestFrameLoaderClose(); - } - } - MOZ_ASSERT(mPrerenderingHistories.IsEmpty()); -} - -NS_IMETHODIMP -GroupedSHistory::CloseInactiveFrameLoaderOwners() -{ - MOZ_ASSERT(mIndexOfActivePartialHistory >= 0); - // Remove inactive frameloaders which are participating in the grouped shistory - for (uint32_t i = 0; i < mPartialHistories.Length(); ++i) { - if (i != static_cast(mIndexOfActivePartialHistory)) { - nsCOMPtr loader; - mPartialHistories[i]->GetOwnerFrameLoader(getter_AddRefs(loader)); - loader->RequestFrameLoaderClose(); - } - } - - PurgePrerendering(); - - return NS_OK; -} - -NS_IMETHODIMP -GroupedSHistory::AddPrerenderingPartialSHistory(nsIPartialSHistory* aPrerendering, int32_t aId) -{ - NS_ENSURE_TRUE(aPrerendering && aId, NS_ERROR_UNEXPECTED); - aPrerendering->SetActiveState(nsIPartialSHistory::STATE_PRERENDER); - PrerenderingHistory history = { aPrerendering, aId }; - mPrerenderingHistories.AppendElement(history); - return NS_OK; -} - -NS_IMETHODIMP -GroupedSHistory::GetActiveFrameLoader(nsIFrameLoader** aFrameLoader) -{ - if (mIndexOfActivePartialHistory >= 0) { - return mPartialHistories[mIndexOfActivePartialHistory]->GetOwnerFrameLoader(aFrameLoader); - } - return NS_ERROR_NOT_AVAILABLE; -} - -NS_IMETHODIMP -GroupedSHistory::ActivatePrerendering(int32_t aId, JSContext* aCx, nsISupports** aPromise) -{ - NS_ENSURE_TRUE(aId && aCx && aPromise, NS_ERROR_UNEXPECTED); - - // Look for an entry with the given aId in mPrerenderingHistories. - for (uint32_t i = 0; i < mPrerenderingHistories.Length(); ++i) { - if (mPrerenderingHistories[i].mId == aId) { - nsCOMPtr partialHistory = mPrerenderingHistories[i].mPartialHistory; - mPrerenderingHistories.RemoveElementAt(i); - - nsCOMPtr fl; - partialHistory->GetOwnerFrameLoader(getter_AddRefs(fl)); - NS_ENSURE_TRUE(fl, NS_ERROR_FAILURE); - - nsCOMPtr activeFl; - GetActiveFrameLoader(getter_AddRefs(activeFl)); - NS_ENSURE_TRUE(activeFl, NS_ERROR_FAILURE); - - nsresult rv = fl->MakePrerenderedLoaderActive(); - NS_ENSURE_SUCCESS(rv, rv); - - return activeFl->AppendPartialSHistoryAndSwap(fl, aPromise); - } - } - - // Generate a rejected promise as the entry was not found. - nsCOMPtr go = xpc::NativeGlobal(JS::CurrentGlobalOrNull(aCx)); - if (NS_WARN_IF(!go)) { - return NS_ERROR_FAILURE; - } - ErrorResult rv; - RefPtr promise = Promise::Reject(go, aCx, JS::UndefinedHandleValue, rv); - if (NS_WARN_IF(rv.Failed())) { - return NS_ERROR_FAILURE; - } - promise.forget(aPromise); - return NS_OK; -} - -NS_IMETHODIMP -GroupedSHistory::CancelPrerendering(int32_t aId) -{ - for (uint32_t i = 0; i < mPrerenderingHistories.Length(); ++i) { - if (mPrerenderingHistories[i].mId == aId) { - nsCOMPtr partialHistory = mPrerenderingHistories[i].mPartialHistory; - nsCOMPtr fl; - partialHistory->GetOwnerFrameLoader(getter_AddRefs(fl)); - if (fl) { - fl->RequestFrameLoaderClose(); - } - mPrerenderingHistories.RemoveElementAt(i); - } - } - - return NS_OK; -} - -} // namespace dom -} // namespace mozilla diff --git a/dom/base/GroupedSHistory.h b/dom/base/GroupedSHistory.h deleted file mode 100644 index f02e3c90ce21..000000000000 --- a/dom/base/GroupedSHistory.h +++ /dev/null @@ -1,122 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef GroupedSHistory_h -#define GroupedSHistory_h - -#include "nsIFrameLoader.h" -#include "nsIGroupedSHistory.h" -#include "nsIPartialSHistory.h" -#include "nsTArray.h" -#include "nsCOMArray.h" -#include "nsCOMPtr.h" -#include "nsCycleCollectionParticipant.h" -#include "nsWeakReference.h" - -namespace mozilla { -namespace dom { - - -/** - * GroupedSHistory connects session histories across multiple frameloaders. - * Each frameloader has a PartialSHistory, and GroupedSHistory has an array - * refering to all participating PartialSHistory(s). - * - * The following figure illustrates the idea. In this case, the GroupedSHistory - * is composed of 3 frameloaders, and the active one is frameloader 1. - * GroupedSHistory is always attached to the active frameloader. - * - * +----------------------------------------------------+ - * | | - * | v - * +------------------+ +-------------------+ +-----------------+ - * | FrameLoader 1 | | PartialSHistory 1 | | GroupedSHistory | - * | (active) |----->| (active) |<--+---| | - * +------------------+ +-------------------+ | +-----------------+ - * | - * +------------------+ +-------------------+ | - * | FrameLoader 2 | | PartialSHistory 2 | | - * | (inactive) |----->| (inactive) |<--+ - * +------------------+ +-------------------+ | - * | - * +------------------+ +-------------------+ | - * | FrameLoader 3 | | PartialSHistory 3 | | - * | (inactive) |----->| (inactive) |<--+ - * +------------------+ +-------------------+ - * - * If a history navigation leads to frameloader 3, it becomes the active one, - * and GroupedSHistory is re-attached to frameloader 3. - * - * +------------------+ +-------------------+ - * | FrameLoader 1 | | PartialSHistory 1 | - * | (inactive) |----->| (inactive) |<--+ - * +------------------+ +-------------------+ | - * | - * +------------------+ +-------------------+ | - * | FrameLoader 2 | | PartialSHistory 2 | | - * | (inactive) |----->| (inactive) |<--+ - * +------------------+ +-------------------+ | - * | - * +------------------+ +-------------------+ | +-----------------+ - * | FrameLoader 3 | | PartialSHistory 3 | | | GroupedSHistory | - * | (active) |----->| (active) |<--+---| | - * +------------------+ +-------------------+ +-----------------+ - * | ^ - * | | - * +----------------------------------------------------+ - */ -class GroupedSHistory final : public nsIGroupedSHistory -{ -public: - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - NS_DECL_CYCLE_COLLECTION_CLASS(GroupedSHistory) - NS_DECL_NSIGROUPEDSHISTORY - GroupedSHistory(); - - /** - * Get the value of preference "browser.groupedhistory.enabled" to determine - * if grouped session history should be enabled. - */ - static bool GroupedHistoryEnabled(); - -private: - ~GroupedSHistory() {} - - /** - * Remove all partial histories and close tabs after the given index (of - * mPartialHistories, not the index of session history entries). - */ - void PurgePartialHistories(uint32_t aLastPartialIndexToKeep); - - /** - * Remove the frameloaders which are owned by the prerendering history, and - * remove them from mPrerenderingHistories. - */ - void PurgePrerendering(); - - // The total number of entries in all partial histories. - uint32_t mCount; - - // The index of currently active partial history in mPartialHistories. - // Use int32_t as we have invalid index and nsCOMArray also uses int32_t. - int32_t mIndexOfActivePartialHistory; - - // All participating nsIPartialSHistory objects. - nsCOMArray mPartialHistories; - - // All nsIPartialSHistories which are being prerendered. - struct PrerenderingHistory - { - nsCOMPtr mPartialHistory; - int32_t mId; - }; - nsTArray mPrerenderingHistories; -}; - -} // namespace dom -} // namespace mozilla - -#endif /* GroupedSHistory_h */ diff --git a/dom/base/Link.cpp b/dom/base/Link.cpp index ecdbc1454a54..f5018d4bd408 100644 --- a/dom/base/Link.cpp +++ b/dom/base/Link.cpp @@ -188,14 +188,6 @@ Link::TryDNSPrefetchOrPreconnectOrPrefetchOrPreloadOrPrerender() } } - if (linkTypes & nsStyleLinkElement::ePRERENDER) { - nsCOMPtr uri(GetURI()); - if (uri && mElement->OwnerDoc()) { - mElement->OwnerDoc()->PrerenderHref(uri); - return; - } - } - if (linkTypes & nsStyleLinkElement::eDNS_PREFETCH) { if (nsHTMLDNSPrefetch::IsAllowed(mElement->OwnerDoc())) { nsHTMLDNSPrefetch::PrefetchLow(this); diff --git a/dom/base/PartialSHistory.cpp b/dom/base/PartialSHistory.cpp deleted file mode 100644 index 7ca3e16ab6e6..000000000000 --- a/dom/base/PartialSHistory.cpp +++ /dev/null @@ -1,359 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "PartialSHistory.h" - -#include "nsIWebNavigation.h" - -namespace mozilla { -namespace dom { - -NS_IMPL_CYCLE_COLLECTION(PartialSHistory, mOwnerFrameLoader, mGroupedSHistory) -NS_IMPL_CYCLE_COLLECTING_ADDREF(PartialSHistory) -NS_IMPL_CYCLE_COLLECTING_RELEASE(PartialSHistory) - -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PartialSHistory) - NS_INTERFACE_MAP_ENTRY(nsIPartialSHistory) - NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIPartialSHistory) - NS_INTERFACE_MAP_ENTRY(nsISHistoryListener) - NS_INTERFACE_MAP_ENTRY(nsIPartialSHistoryListener) - NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference) -NS_INTERFACE_MAP_END - -PartialSHistory::PartialSHistory(nsIFrameLoader* aOwnerFrameLoader) - : mCount(0), - mGlobalIndexOffset(0), - mActive(nsIPartialSHistory::STATE_ACTIVE), - mOwnerFrameLoader(aOwnerFrameLoader) -{ - MOZ_ASSERT(aOwnerFrameLoader); -} - -already_AddRefed -PartialSHistory::GetSessionHistory() -{ - if (!mOwnerFrameLoader) { - // Cycle collected? - return nullptr; - } - - nsCOMPtr docShell; - mOwnerFrameLoader->GetDocShell(getter_AddRefs(docShell)); - if (!docShell) { - return nullptr; - } - - nsCOMPtr webNav(do_QueryInterface(docShell)); - nsCOMPtr shistory; - webNav->GetSessionHistory(getter_AddRefs(shistory)); - return shistory.forget(); -} - -already_AddRefed -PartialSHistory::GetTabParent() -{ - if (!mOwnerFrameLoader) { - // Cycle collected? - return nullptr; - } - - nsCOMPtr tabParent; - mOwnerFrameLoader->GetTabParent(getter_AddRefs(tabParent)); - return RefPtr(static_cast(tabParent.get())).forget(); -} - -NS_IMETHODIMP -PartialSHistory::GetCount(uint32_t* aResult) -{ - if (!aResult) { - return NS_ERROR_INVALID_POINTER; - } - - // If we have direct reference to nsISHistory, simply pass through. - nsCOMPtr shistory(GetSessionHistory()); - if (shistory) { - int32_t count; - nsresult rv = shistory->GetCount(&count); - if (NS_FAILED(rv) || count < 0) { - *aResult = 0; - return NS_ERROR_FAILURE; - } - *aResult = count; - return NS_OK; - } - - // Otherwise use the cached value. - *aResult = mCount; - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::GetGlobalIndex(int32_t* aResult) -{ - if (!aResult) { - return NS_ERROR_INVALID_POINTER; - } - - nsCOMPtr shistory = GetSessionHistory(); - if (shistory) { - int32_t idx; - nsresult rv = shistory->GetIndex(&idx); - NS_ENSURE_SUCCESS(rv, rv); - - *aResult = idx + GetGlobalIndexOffset(); - return NS_OK; - } - - *aResult = mIndex + GetGlobalIndexOffset(); - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::GetGlobalIndexOffset(uint32_t* aResult) -{ - if (!aResult) { - return NS_ERROR_INVALID_POINTER; - } - - // If we have direct reference to nsISHistory, simply pass through. - nsCOMPtr shistory(GetSessionHistory()); - if (shistory) { - int32_t offset; - nsresult rv = shistory->GetGlobalIndexOffset(&offset); - if (NS_FAILED(rv) || offset < 0) { - *aResult = 0; - return NS_ERROR_FAILURE; - } - *aResult = offset; - return NS_OK; - } - - // Otherwise use the cached value. - *aResult = mGlobalIndexOffset; - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::GetOwnerFrameLoader(nsIFrameLoader** aResult) -{ - nsCOMPtr loader(mOwnerFrameLoader); - loader.forget(aResult); - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::OnAttachGroupedSHistory(nsIGroupedSHistory* aGroup, uint32_t aOffset) -{ - MOZ_ASSERT(!mGroupedSHistory, "Only may join a single GroupedSHistory"); - - mActive = nsIPartialSHistory::STATE_ACTIVE; - mGlobalIndexOffset = aOffset; - mGroupedSHistory = aGroup; - - // If we have direct reference to nsISHistory, simply pass through. - nsCOMPtr shistory(GetSessionHistory()); - if (shistory) { - // nsISHistory uses int32_t - if (aOffset > INT32_MAX) { - return NS_ERROR_FAILURE; - } - return shistory->OnAttachGroupedSHistory(aOffset); - } - - // Otherwise notify through TabParent. - RefPtr tabParent(GetTabParent()); - if (!tabParent) { - // We have neither shistory nor tabParent? - NS_WARNING("Unable to get shitory nor tabParent!"); - return NS_ERROR_UNEXPECTED; - } - Unused << tabParent->SendNotifyAttachGroupedSHistory(aOffset); - - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::HandleSHistoryUpdate(uint32_t aCount, uint32_t aIndex, bool aTruncate) -{ - // Update our local cache of mCount and mIndex - mCount = aCount; - mIndex = aIndex; - return SHistoryDidUpdate(aTruncate); -} - -nsresult -PartialSHistory::SHistoryDidUpdate(bool aTruncate /* = false */) -{ - if (!mOwnerFrameLoader) { - // Cycle collected? - return NS_ERROR_UNEXPECTED; - } - - if (!mGroupedSHistory) { - // It's OK if we don't have a grouped history, that just means that we - // aren't in a grouped shistory, so we don't need to do anything. - return NS_OK; - } - - mGroupedSHistory->HandleSHistoryUpdate(this, aTruncate); - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::OnActive(uint32_t aGlobalLength, uint32_t aTargetLocalIndex) -{ - MOZ_ASSERT(mGroupedSHistory); - - mActive = nsIPartialSHistory::STATE_ACTIVE; - - // In-process case. - nsCOMPtr shistory(GetSessionHistory()); - if (shistory) { - // nsISHistory uses int32_t - if (aGlobalLength > INT32_MAX || aTargetLocalIndex > INT32_MAX) { - return NS_ERROR_FAILURE; - } - return shistory->OnPartialSHistoryActive(aGlobalLength, aTargetLocalIndex); - } - - // Cross-process case. - RefPtr tabParent(GetTabParent()); - if (!tabParent) { - // We have neither shistory nor tabParent? - NS_WARNING("Unable to get shitory nor tabParent!"); - return NS_ERROR_UNEXPECTED; - } - Unused << tabParent->SendNotifyPartialSHistoryActive(aGlobalLength, - aTargetLocalIndex); - - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::OnDeactive() -{ - MOZ_ASSERT(mGroupedSHistory); - - mActive = nsIPartialSHistory::STATE_INACTIVE; - - // In-process case. - nsCOMPtr shistory(GetSessionHistory()); - if (shistory) { - if (NS_FAILED(shistory->OnPartialSHistoryDeactive())) { - return NS_ERROR_FAILURE; - } - return NS_OK; - } - - // Cross-process case. - RefPtr tabParent(GetTabParent()); - if (!tabParent) { - // We have neither shistory nor tabParent? - NS_WARNING("Unable to get shitory nor tabParent!"); - return NS_ERROR_UNEXPECTED; - } - Unused << tabParent->SendNotifyPartialSHistoryDeactive(); - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::GetActiveState(int32_t* aActive) -{ - *aActive = mActive; - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::SetActiveState(int32_t aActive) -{ - mActive = aActive; - return NS_OK; -} - -NS_IMETHODIMP -PartialSHistory::GetGroupedSHistory(nsIGroupedSHistory** aGrouped) -{ - nsCOMPtr shistory = mGroupedSHistory; - shistory.forget(aGrouped); - return NS_OK; -} - -/******************************************************************************* - * nsIPartialSHistoryListener - ******************************************************************************/ - -NS_IMETHODIMP -PartialSHistory::OnRequestCrossBrowserNavigation(uint32_t aIndex) -{ - if (!mOwnerFrameLoader) { - // Cycle collected? - return NS_ERROR_UNEXPECTED; - } - - nsCOMPtr promise; - return mOwnerFrameLoader->RequestGroupedHistoryNavigation(aIndex, getter_AddRefs(promise)); -} - -/******************************************************************************* - * nsISHistoryListener - ******************************************************************************/ - -NS_IMETHODIMP -PartialSHistory::OnLengthChanged(int32_t aCount) -{ - return SHistoryDidUpdate(/* aTruncate = */ true); -} - -NS_IMETHODIMP -PartialSHistory::OnIndexChanged(int32_t aIndex) -{ - return SHistoryDidUpdate(/* aTruncate = */ false); -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryNewEntry(nsIURI *aNewURI, int32_t aOldIndex) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryGoBack(nsIURI *aBackURI, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryGoForward(nsIURI *aForwardURI, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryReload(nsIURI *aReloadURI, uint32_t aReloadFlags, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryGotoIndex(int32_t aIndex, nsIURI *aGotoURI, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryPurge(int32_t aNumEntries, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -PartialSHistory::OnHistoryReplaceEntry(int32_t aIndex) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -} // namespace dom -} // namespace mozilla diff --git a/dom/base/PartialSHistory.h b/dom/base/PartialSHistory.h deleted file mode 100644 index cc18affdc81f..000000000000 --- a/dom/base/PartialSHistory.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef PartialSHistory_h -#define PartialSHistory_h - -#include "nsCycleCollectionParticipant.h" -#include "nsFrameLoader.h" -#include "nsIGroupedSHistory.h" -#include "nsIPartialSHistoryListener.h" -#include "nsIPartialSHistory.h" -#include "nsISHistory.h" -#include "nsISHistoryListener.h" -#include "TabParent.h" - -namespace mozilla { -namespace dom { - -class PartialSHistory final : public nsIPartialSHistory, - public nsISHistoryListener, - public nsIPartialSHistoryListener, - public nsSupportsWeakReference -{ -public: - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(PartialSHistory, nsIPartialSHistory) - NS_DECL_NSIPARTIALSHISTORY - NS_DECL_NSIPARTIALSHISTORYLISTENER - NS_DECL_NSISHISTORYLISTENER - - /** - * Note that PartialSHistory must be constructed after frameloader has - * created a valid docshell or tabparent. - */ - explicit PartialSHistory(nsIFrameLoader* aOwnerFrameLoader); - -private: - ~PartialSHistory() {} - already_AddRefed GetSessionHistory(); - already_AddRefed GetTabParent(); - - nsresult SHistoryDidUpdate(bool aTruncate = false); - - // The cache of number of entries in corresponding nsISHistory. It's only - // used for remote process case. If nsISHistory is in-process, mCount will not - // be used at all. - uint32_t mCount; - - // The current local index of the active document in this partial SHistory. - uint32_t mIndex; - - // The cache of globalIndexOffset in corresponding nsISHistory. It's only - // used for remote process case. - uint32_t mGlobalIndexOffset; - - // One of the possible active states from nsIPartialSHistory - int32_t mActive; - - // The frameloader which owns this PartialSHistory. - nsCOMPtr mOwnerFrameLoader; - - // The GroupedSHistory which this PartialSHistory is part of, or null. - nsCOMPtr mGroupedSHistory; -}; - -} // namespace dom -} // namespace mozilla - -#endif /* PartialSHistory_h */ diff --git a/dom/base/WebKitCSSMatrix.cpp b/dom/base/WebKitCSSMatrix.cpp index 6a7acbaf621f..635dd0cfca33 100644 --- a/dom/base/WebKitCSSMatrix.cpp +++ b/dom/base/WebKitCSSMatrix.cpp @@ -11,6 +11,7 @@ #include "mozilla/Preferences.h" #include "nsPresContext.h" #include "RuleNodeCacheConditions.h" +#include "nsGlobalWindowInner.h" namespace mozilla { namespace dom { diff --git a/dom/base/moz.build b/dom/base/moz.build index 7fb84ab31643..10bd30787800 100644 --- a/dom/base/moz.build +++ b/dom/base/moz.build @@ -185,7 +185,6 @@ EXPORTS.mozilla.dom += [ 'FormData.h', 'FragmentOrElement.h', 'FromParser.h', - 'GroupedSHistory.h', 'IdleDeadline.h', 'IdleRequest.h', 'IDTracker.h', @@ -199,7 +198,6 @@ EXPORTS.mozilla.dom += [ 'NodeInfo.h', 'NodeInfoInlines.h', 'NodeIterator.h', - 'PartialSHistory.h', 'Pose.h', 'ProcessGlobal.h', 'ResponsiveImageSelector.h', @@ -261,7 +259,6 @@ UNIFIED_SOURCES += [ 'EventSource.cpp', 'FormData.cpp', 'FragmentOrElement.cpp', - 'GroupedSHistory.cpp', 'IdleDeadline.cpp', 'IdleRequest.cpp', 'IDTracker.cpp', @@ -343,7 +340,6 @@ UNIFIED_SOURCES += [ 'nsXHTMLContentSerializer.cpp', 'nsXMLContentSerializer.cpp', 'nsXMLNameSpaceMap.cpp', - 'PartialSHistory.cpp', 'Pose.cpp', 'PostMessageEvent.cpp', 'ProcessGlobal.cpp', diff --git a/dom/base/nsContentSink.cpp b/dom/base/nsContentSink.cpp index c24567c12d52..3a77286a7d9a 100644 --- a/dom/base/nsContentSink.cpp +++ b/dom/base/nsContentSink.cpp @@ -730,14 +730,6 @@ nsContentSink::ProcessLinkFromHeader(const nsAString& aAnchor, const nsAString& PrefetchPreloadHref(aHref, mDocument, linkTypes, aAs, aType, aMedia); } - if (linkTypes & nsStyleLinkElement::ePRERENDER) { - nsCOMPtr href; - nsresult rv = NS_NewURI(getter_AddRefs(href), aHref); - if (NS_SUCCEEDED(rv)) { - mDocument->PrerenderHref(href); - } - } - if (!aHref.IsEmpty() && (linkTypes & nsStyleLinkElement::eDNS_PREFETCH)) { PrefetchDNS(aHref); } diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index 99ca8a492ec5..21d48e70bd9c 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -3323,78 +3323,6 @@ nsIDocument::IsScriptTracking(const nsACString& aURL) const return mTrackingScripts.Contains(aURL); } -bool -nsIDocument::PrerenderHref(nsIURI* aHref) -{ - MOZ_ASSERT(aHref); - - static bool sPrerenderEnabled = false; - static bool sPrerenderPrefCached = false; - if (!sPrerenderPrefCached) { - sPrerenderPrefCached = true; - Preferences::AddBoolVarCache(&sPrerenderEnabled, - "dom.linkPrerender.enabled", - false); - } - - // Check if prerender is enabled - if (!sPrerenderEnabled) { - return false; - } - - nsCOMPtr referrer = GetDocumentURI(); - bool urisMatch = false; - aHref->EqualsExceptRef(referrer, &urisMatch); - if (urisMatch) { - // Prerender current document isn't quite meaningful, and we may not be able - // to load it out of process. - return false; - } - - nsCOMPtr docShell = GetDocShell(); - nsCOMPtr webNav = do_QueryInterface(docShell); - NS_ENSURE_TRUE(webNav, false); - - bool canGoForward = false; - nsresult rv = webNav->GetCanGoForward(&canGoForward); - if (NS_FAILED(rv) || canGoForward) { - // Skip prerender on history navigation as we don't support it yet. - // Remove this check once bug 1323650 is implemented. - return false; - } - - // Check if the document is in prerender state. We don't prerender in a - // prerendered document. - if (docShell->GetIsPrerendered()) { - return false; - } - - // We currently do not support prerendering in documents loaded within the - // chrome process. - if (!XRE_IsContentProcess()) { - return false; - } - - // Adopting an prerendered document is similar to performing a load within a - // different docshell, as the prerendering must have occurred in a different - // docshell. - if (!docShell->GetIsOnlyToplevelInTabGroup()) { - return false; - } - - TabChild* tabChild = TabChild::GetFrom(docShell); - NS_ENSURE_TRUE(tabChild, false); - - nsCOMPtr wbc3; - tabChild->GetWebBrowserChrome(getter_AddRefs(wbc3)); - NS_ENSURE_TRUE(wbc3, false); - - rv = wbc3->StartPrerenderingDocument(aHref, referrer, NodePrincipal()); - NS_ENSURE_SUCCESS(rv, false); - - return true; -} - NS_IMETHODIMP nsDocument::GetApplicationCache(nsIApplicationCache **aApplicationCache) { @@ -12355,13 +12283,6 @@ nsDocument::GetVisibilityState() const // Otherwise, we're visible. if (!IsVisible() || !mWindow || !mWindow->GetOuterWindow() || mWindow->GetOuterWindow()->IsBackground()) { - - // Check if the document is in prerender state. - nsCOMPtr docshell = GetDocShell(); - if (docshell && docshell->GetIsPrerendered()) { - return dom::VisibilityState::Prerender; - } - return dom::VisibilityState::Hidden; } diff --git a/dom/base/nsFrameLoader.cpp b/dom/base/nsFrameLoader.cpp index 16a3e4868802..09c530e59eb9 100644 --- a/dom/base/nsFrameLoader.cpp +++ b/dom/base/nsFrameLoader.cpp @@ -55,8 +55,6 @@ #include "nsMappedAttributes.h" #include "nsView.h" #include "nsBaseWidget.h" -#include "GroupedSHistory.h" -#include "PartialSHistory.h" #include "nsQueryObject.h" #include "nsIURI.h" @@ -97,9 +95,9 @@ #include "mozilla/dom/ipc/StructuredCloneData.h" #include "mozilla/WebBrowserPersistLocalDocument.h" -#include "mozilla/dom/GroupedHistoryEvent.h" #include "mozilla/dom/Promise.h" #include "mozilla/dom/PromiseNativeHandler.h" +#include "mozilla/dom/GroupedHistoryEvent.h" #include "mozilla/dom/HTMLBodyElement.h" @@ -148,8 +146,7 @@ NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsFrameLoader, mDocShell, mMessageManager, mChildMessageManager, - mOpener, - mPartialSHistory) + mOpener) NS_IMPL_CYCLE_COLLECTING_ADDREF(nsFrameLoader) NS_IMPL_CYCLE_COLLECTING_RELEASE(nsFrameLoader) @@ -170,7 +167,6 @@ nsFrameLoader::nsFrameLoader(Element* aOwner, nsPIDOMWindowOuter* aOpener, , mJSPluginID(aJSPluginID) , mEventMode(EVENT_MODE_NORMAL_DISPATCH) , mBrowserChangingProcessBlockers(nullptr) - , mIsPrerendered(false) , mDepthTooGreat(false) , mIsTopLevelContent(false) , mDestroyCalled(false) @@ -369,135 +365,6 @@ nsFrameLoader::LoadURI(nsIURI* aURI, nsIPrincipal* aTriggeringPrincipal, return rv; } -void -nsFrameLoader::SetIsPrerendered(ErrorResult& aRv) -{ - nsresult rv = SetIsPrerendered(); - if (NS_FAILED(rv)) { - aRv.Throw(rv); - } -} - -NS_IMETHODIMP -nsFrameLoader::SetIsPrerendered() -{ - MOZ_ASSERT(!mDocShell, "Please call SetIsPrerendered before docShell is created"); - mIsPrerendered = true; - - return NS_OK; -} - -void -nsFrameLoader::MakePrerenderedLoaderActive(ErrorResult& aRv) -{ - nsresult rv = MakePrerenderedLoaderActive(); - if (NS_FAILED(rv)) { - aRv.Throw(rv); - } -} - -NS_IMETHODIMP -nsFrameLoader::MakePrerenderedLoaderActive() -{ - MOZ_ASSERT(mIsPrerendered, "This frameloader was not in prerendered mode."); - - mIsPrerendered = false; - if (IsRemoteFrame()) { - if (!mRemoteBrowser) { - NS_WARNING("Missing remote browser."); - return NS_ERROR_FAILURE; - } - - mRemoteBrowser->SetDocShellIsActive(true); - } else { - if (!mDocShell) { - NS_WARNING("Missing docshell."); - return NS_ERROR_FAILURE; - } - - nsresult rv = mDocShell->SetIsActive(true); - NS_ENSURE_SUCCESS(rv, rv); - } - - return NS_OK; -} - -already_AddRefed -nsFrameLoader::GetPartialSHistory() -{ - nsCOMPtr partialSHistory; - MOZ_ALWAYS_SUCCEEDS(GetPartialSHistory(getter_AddRefs(partialSHistory))); - return partialSHistory.forget(); -} - -NS_IMETHODIMP -nsFrameLoader::GetPartialSHistory(nsIPartialSHistory** aResult) -{ - if (mRemoteBrowser && !mPartialSHistory) { - // For remote case we can lazy initialize PartialSHistory since - // it doens't need to be registered as a listener to nsISHistory directly. - mPartialSHistory = new PartialSHistory(this); - } - - nsCOMPtr partialHistory(mPartialSHistory); - partialHistory.forget(aResult); - return NS_OK; -} - -already_AddRefed -nsFrameLoader::EnsureGroupedSHistory(ErrorResult& aRv) -{ - nsCOMPtr result; - nsresult rv = EnsureGroupedSHistory(getter_AddRefs(result)); - if (NS_FAILED(rv)) { - aRv.Throw(rv); - } - return result.forget(); -} - -NS_IMETHODIMP -nsFrameLoader::EnsureGroupedSHistory(nsIGroupedSHistory** aResult) -{ - nsCOMPtr partialHistory; - GetPartialSHistory(getter_AddRefs(partialHistory)); - MOZ_ASSERT(partialHistory); - - nsCOMPtr groupedHistory; - partialHistory->GetGroupedSHistory(getter_AddRefs(groupedHistory)); - if (!groupedHistory) { - groupedHistory = new GroupedSHistory(); - groupedHistory->AppendPartialSHistory(partialHistory); - -#ifdef DEBUG - nsCOMPtr test; - GetGroupedSHistory(getter_AddRefs(test)); - MOZ_ASSERT(test == groupedHistory, "GroupedHistory must match"); -#endif - } - - groupedHistory.forget(aResult); - return NS_OK; -} - -already_AddRefed -nsFrameLoader::GetGroupedSHistory() -{ - nsCOMPtr groupedSHistory; - MOZ_ALWAYS_SUCCEEDS(GetGroupedSHistory(getter_AddRefs(groupedSHistory))); - return groupedSHistory.forget(); -} - -NS_IMETHODIMP -nsFrameLoader::GetGroupedSHistory(nsIGroupedSHistory** aResult) -{ - nsCOMPtr groupedSHistory; - if (mPartialSHistory) { - mPartialSHistory->GetGroupedSHistory(getter_AddRefs(groupedSHistory)); - } - groupedSHistory.forget(aResult); - return NS_OK; -} - bool nsFrameLoader::SwapBrowsersAndNotify(nsFrameLoader* aOther) { @@ -535,193 +402,6 @@ nsFrameLoader::SwapBrowsersAndNotify(nsFrameLoader* aOther) return true; } -class AppendPartialSHistoryAndSwapHelper : public PromiseNativeHandler -{ -public: - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - NS_DECL_CYCLE_COLLECTION_CLASS(AppendPartialSHistoryAndSwapHelper) - - AppendPartialSHistoryAndSwapHelper(nsFrameLoader* aThis, - nsFrameLoader* aOther, - Promise* aPromise) - : mThis(aThis), mOther(aOther), mPromise(aPromise) {} - - void - ResolvedCallback(JSContext* aCx, JS::Handle aValue) override - { - nsCOMPtr otherGroupedHistory; - mOther->GetGroupedSHistory(getter_AddRefs(otherGroupedHistory)); - MOZ_ASSERT(!otherGroupedHistory, - "Cannot append a GroupedSHistory owner to another."); - if (otherGroupedHistory) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - // Append ourselves. - nsresult rv; - nsCOMPtr groupedSHistory; - rv = mThis->EnsureGroupedSHistory(getter_AddRefs(groupedSHistory)); - if (NS_WARN_IF(NS_FAILED(rv))) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - // Append the other. - nsCOMPtr otherPartialSHistory; - MOZ_ALWAYS_SUCCEEDS(mOther->GetPartialSHistory(getter_AddRefs(otherPartialSHistory))); - rv = groupedSHistory->AppendPartialSHistory(otherPartialSHistory); - if (NS_WARN_IF(NS_FAILED(rv))) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - // Swap the browsers and fire the BrowserChangedProcess event. - if (mThis->SwapBrowsersAndNotify(mOther)) { - mPromise->MaybeResolveWithUndefined(); - } else { - mPromise->MaybeRejectWithUndefined(); - } - } - - void - RejectedCallback(JSContext* aCx, JS::Handle aValue) override - { - mPromise->MaybeRejectWithUndefined(); - } - -private: - ~AppendPartialSHistoryAndSwapHelper() {} - RefPtr mThis; - RefPtr mOther; - RefPtr mPromise; -}; - -NS_IMPL_CYCLE_COLLECTING_ADDREF(AppendPartialSHistoryAndSwapHelper) -NS_IMPL_CYCLE_COLLECTING_RELEASE(AppendPartialSHistoryAndSwapHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AppendPartialSHistoryAndSwapHelper) - NS_INTERFACE_MAP_ENTRY(nsISupports) -NS_INTERFACE_MAP_END -NS_IMPL_CYCLE_COLLECTION(AppendPartialSHistoryAndSwapHelper, - mThis, mPromise) - -class RequestGroupedHistoryNavigationHelper : public PromiseNativeHandler -{ -public: - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - NS_DECL_CYCLE_COLLECTION_CLASS(RequestGroupedHistoryNavigationHelper) - - RequestGroupedHistoryNavigationHelper(nsFrameLoader* aThis, - uint32_t aGlobalIndex, - Promise* aPromise) - : mThis(aThis), mGlobalIndex(aGlobalIndex), mPromise(aPromise) {} - - void - ResolvedCallback(JSContext* aCx, JS::Handle aValue) override - { - if (NS_WARN_IF(!mThis->mOwnerContent)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - nsCOMPtr groupedSHistory; - mThis->GetGroupedSHistory(getter_AddRefs(groupedSHistory)); - if (NS_WARN_IF(!groupedSHistory)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - // Navigate the loader to the new index - nsCOMPtr otherLoader; - nsresult rv = groupedSHistory->GotoIndex(mGlobalIndex, getter_AddRefs(otherLoader)); - - // Check if the gotoIndex failed because the target frameloader is dead. We - // need to perform a navigateAndRestoreByIndex and then return to recover. - if (rv == NS_ERROR_NOT_AVAILABLE) { - // Get the nsIXULBrowserWindow so that we can call NavigateAndRestoreByIndex on it. - nsCOMPtr docShell = mThis->mOwnerContent->OwnerDoc()->GetDocShell(); - if (NS_WARN_IF(!docShell)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - nsCOMPtr treeOwner; - docShell->GetTreeOwner(getter_AddRefs(treeOwner)); - if (NS_WARN_IF(!treeOwner)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - nsCOMPtr window = do_GetInterface(treeOwner); - if (NS_WARN_IF(!window)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - nsCOMPtr xbw; - window->GetXULBrowserWindow(getter_AddRefs(xbw)); - if (NS_WARN_IF(!xbw)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - nsCOMPtr ourBrowser = do_QueryInterface(mThis->mOwnerContent); - if (NS_WARN_IF(!ourBrowser)) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - rv = xbw->NavigateAndRestoreByIndex(ourBrowser, mGlobalIndex); - if (NS_WARN_IF(NS_FAILED(rv))) { - mPromise->MaybeRejectWithUndefined(); - return; - } - mPromise->MaybeResolveWithUndefined(); - return; - } - - // Check for any other type of failure - if (NS_WARN_IF(NS_FAILED(rv))) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - // Perform the swap. - nsFrameLoader* other = static_cast(otherLoader.get()); - if (!other || other == mThis) { - mPromise->MaybeRejectWithUndefined(); - return; - } - - // Swap the browsers and fire the BrowserChangedProcess event. - if (mThis->SwapBrowsersAndNotify(other)) { - mPromise->MaybeResolveWithUndefined(); - } else { - mPromise->MaybeRejectWithUndefined(); - } - } - - void - RejectedCallback(JSContext* aCx, JS::Handle aValue) override - { - mPromise->MaybeRejectWithUndefined(); - } - -private: - ~RequestGroupedHistoryNavigationHelper() {} - RefPtr mThis; - uint32_t mGlobalIndex; - RefPtr mPromise; -}; - -NS_IMPL_CYCLE_COLLECTING_ADDREF(RequestGroupedHistoryNavigationHelper) -NS_IMPL_CYCLE_COLLECTING_RELEASE(RequestGroupedHistoryNavigationHelper) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(RequestGroupedHistoryNavigationHelper) - NS_INTERFACE_MAP_ENTRY(nsISupports) -NS_INTERFACE_MAP_END -NS_IMPL_CYCLE_COLLECTION(RequestGroupedHistoryNavigationHelper, - mThis, mPromise) - already_AddRefed nsFrameLoader::FireWillChangeProcessEvent() { @@ -758,94 +438,6 @@ nsFrameLoader::FireWillChangeProcessEvent() return allPromise.forget(); } -already_AddRefed -nsFrameLoader::AppendPartialSHistoryAndSwap(nsIFrameLoader& aOther, ErrorResult& aRv) -{ - nsresult rv = SetIsPrerendered(); - if (NS_FAILED(rv)) { - aRv.Throw(rv); - return nullptr; - } - - if (&aOther == this) { - return nullptr; - } - - RefPtr otherLoader = static_cast(&aOther); - - RefPtr ready = FireWillChangeProcessEvent(); - if (NS_WARN_IF(!ready)) { - aRv.Throw(NS_ERROR_FAILURE); - return nullptr; - } - - // This promise will be resolved when the swap has finished, we return it now - // and pass it to our helper so our helper can resolve it. - RefPtr complete = Promise::Create(mOwnerContent->GetOwnerGlobal(), aRv); - if (NS_WARN_IF(aRv.Failed())) { - return nullptr; - } - - // Attach our handler to the ready promise, and make it fulfil the complete - // promise when we are done. - RefPtr helper = - new AppendPartialSHistoryAndSwapHelper(this, otherLoader, complete); - ready->AppendNativeHandler(helper); - return complete.forget(); -} - -NS_IMETHODIMP -nsFrameLoader::AppendPartialSHistoryAndSwap(nsIFrameLoader* aOther, nsISupports** aPromise) -{ - if (!aOther) { - return NS_ERROR_INVALID_POINTER; - } - - ErrorResult rv; - RefPtr complete = AppendPartialSHistoryAndSwap(*aOther, rv); - if (rv.Failed()) { - return rv.StealNSResult(); - } - complete.forget(aPromise); - return NS_OK; -} - -already_AddRefed -nsFrameLoader::RequestGroupedHistoryNavigation(uint32_t aGlobalIndex, ErrorResult& aRv) -{ - RefPtr ready = FireWillChangeProcessEvent(); - if (NS_WARN_IF(!ready)) { - aRv.Throw(NS_ERROR_FAILURE); - return nullptr; - } - - // This promise will be resolved when the swap has finished, we return it now - // and pass it to our helper so our helper can resolve it. - RefPtr complete = Promise::Create(mOwnerContent->GetOwnerGlobal(), aRv); - if (NS_WARN_IF(aRv.Failed())) { - return nullptr; - } - - // Attach our handler to the ready promise, and make it fulfil the complete - // promise when we are done. - RefPtr helper = - new RequestGroupedHistoryNavigationHelper(this, aGlobalIndex, complete); - ready->AppendNativeHandler(helper); - return complete.forget(); -} - -NS_IMETHODIMP -nsFrameLoader::RequestGroupedHistoryNavigation(uint32_t aGlobalIndex, nsISupports** aPromise) -{ - ErrorResult rv; - RefPtr complete = RequestGroupedHistoryNavigation(aGlobalIndex, rv); - if (rv.Failed()) { - return rv.StealNSResult(); - } - complete.forget(aPromise); - return NS_OK; -} - void nsFrameLoader::AddProcessChangeBlockingPromise(Promise& aPromise, ErrorResult& aRv) { @@ -2222,19 +1814,6 @@ nsFrameLoader::StartDestroy() } } - // Destroy the other frame loader owners now that we are being destroyed. - if (mPartialSHistory && - mPartialSHistory->GetActiveState() == nsIPartialSHistory::STATE_ACTIVE) { - nsCOMPtr groupedSHistory; - GetGroupedSHistory(getter_AddRefs(groupedSHistory)); - if (groupedSHistory) { - NS_DispatchToCurrentThread(NS_NewRunnableFunction( - "nsFrameLoader::StartDestroy", [groupedSHistory]() { - groupedSHistory->CloseInactiveFrameLoaderOwners(); - })); - } - } - nsCOMPtr destroyRunnable = new nsFrameLoaderDestroyRunnable(this); if (mNeedsAsyncDestroy || !doc || NS_FAILED(doc->FinalizeFrameLoader(this, destroyRunnable))) { @@ -2517,11 +2096,6 @@ nsFrameLoader::MaybeCreateDocShell() mDocShell = do_CreateInstance("@mozilla.org/docshell;1"); NS_ENSURE_TRUE(mDocShell, NS_ERROR_FAILURE); - if (mIsPrerendered) { - nsresult rv = mDocShell->SetIsPrerendered(); - NS_ENSURE_SUCCESS(rv,rv); - } - if (!mNetworkCreated) { if (mDocShell) { mDocShell->SetCreatedDynamically(true); @@ -2626,15 +2200,6 @@ nsFrameLoader::MaybeCreateDocShell() nsCOMPtr webNav(do_QueryInterface(mDocShell)); webNav->SetSessionHistory(sessionHistory); - - - if (GroupedSHistory::GroupedHistoryEnabled()) { - mPartialSHistory = new PartialSHistory(this); - nsCOMPtr listener(do_QueryInterface(mPartialSHistory)); - nsCOMPtr partialListener(do_QueryInterface(mPartialSHistory)); - sessionHistory->AddSHistoryListener(listener); - sessionHistory->SetPartialSHistoryListener(partialListener); - } } OriginAttributes attrs; @@ -4046,7 +3611,6 @@ nsFrameLoader::GetNewTabContext(MutableTabContext* aTabContext, bool tabContextUpdated = aTabContext->SetTabContext(OwnerIsMozBrowserFrame(), - mIsPrerendered, showAccelerators, showFocusRings, attrs, diff --git a/dom/base/nsFrameLoader.h b/dom/base/nsFrameLoader.h index 40496cddeea7..962dc961dcca 100644 --- a/dom/base/nsFrameLoader.h +++ b/dom/base/nsFrameLoader.h @@ -27,7 +27,6 @@ #include "Units.h" #include "nsIWebBrowserPersistable.h" #include "nsIFrame.h" -#include "nsIGroupedSHistory.h" #include "nsPluginTags.h" class nsIURI; @@ -74,8 +73,6 @@ class nsFrameLoader final : public nsIFrameLoader, { friend class AutoResetInShow; friend class AutoResetInFrameSwap; - friend class AppendPartialSHistoryAndSwapHelper; - friend class RequestGroupedHistoryNavigationHelper; typedef mozilla::dom::PBrowserParent PBrowserParent; typedef mozilla::dom::TabParent TabParent; typedef mozilla::layout::RenderFrameParent RenderFrameParent; @@ -124,16 +121,6 @@ public: nsresult LoadURI(nsIURI* aURI, nsIPrincipal* aTriggeringPrincipal, bool aOriginalSrc); - void SetIsPrerendered(mozilla::ErrorResult& aRv); - - void MakePrerenderedLoaderActive(mozilla::ErrorResult& aRv); - - already_AddRefed - AppendPartialSHistoryAndSwap(nsIFrameLoader& aOther, mozilla::ErrorResult& aRv); - - already_AddRefed - RequestGroupedHistoryNavigation(uint32_t aGlobalIndex, mozilla::ErrorResult& aRv); - void AddProcessChangeBlockingPromise(mozilla::dom::Promise& aPromise, mozilla::ErrorResult& aRv); void Destroy(mozilla::ErrorResult& aRv); @@ -173,8 +160,6 @@ public: nsIWebProgressListener* aProgressListener, mozilla::ErrorResult& aRv); - already_AddRefed EnsureGroupedSHistory(mozilla::ErrorResult& aRv); - void StartPersistence(uint64_t aOuterWindowID, nsIWebBrowserPersistDocumentReceiver* aRecv, mozilla::ErrorResult& aRv); @@ -191,10 +176,6 @@ public: uint32_t LazyHeight() const; - already_AddRefed GetPartialSHistory(); - - already_AddRefed GetGroupedSHistory(); - uint64_t ChildID() const { return mChildID; } bool ClampScrollPosition() const { return mClampScrollPosition; } @@ -485,13 +466,10 @@ private: // Holds the last known size of the frame. mozilla::ScreenIntSize mLazySize; - nsCOMPtr mPartialSHistory; - // A stack-maintained reference to an array of promises which are blocking // grouped history navigation nsTArray>* mBrowserChangingProcessBlockers; - bool mIsPrerendered : 1; bool mDepthTooGreat : 1; bool mIsTopLevelContent : 1; bool mDestroyCalled : 1; diff --git a/dom/base/nsGkAtomList.h b/dom/base/nsGkAtomList.h index da793dec91b8..0d0db4a1b780 100644 --- a/dom/base/nsGkAtomList.h +++ b/dom/base/nsGkAtomList.h @@ -1129,7 +1129,6 @@ GK_ATOM(precedingSibling, "preceding-sibling") GK_ATOM(predicate, "predicate") GK_ATOM(prefix, "prefix") GK_ATOM(preload, "preload") -GK_ATOM(prerendered, "prerendered") GK_ATOM(mozpresentation, "mozpresentation") GK_ATOM(preserve, "preserve") GK_ATOM(preserveSpace, "preserve-space") diff --git a/dom/base/nsGlobalWindowInner.cpp b/dom/base/nsGlobalWindowInner.cpp index f2345a408858..72d530442d0a 100644 --- a/dom/base/nsGlobalWindowInner.cpp +++ b/dom/base/nsGlobalWindowInner.cpp @@ -7570,13 +7570,6 @@ nsGlobalWindowInner::CreateNamedPropertiesObject(JSContext *aCx, return WindowNamedPropertiesHandler::Create(aCx, aProto); } -bool -nsGlobalWindowInner::GetIsPrerendered() -{ - nsIDocShell* docShell = GetDocShell(); - return docShell && docShell->GetIsPrerendered(); -} - void nsGlobalWindowInner::RedefineProperty(JSContext* aCx, const char* aPropName, JS::Handle aValue, diff --git a/dom/base/nsGlobalWindowInner.h b/dom/base/nsGlobalWindowInner.h index c0feaffae70a..cb7adc386018 100644 --- a/dom/base/nsGlobalWindowInner.h +++ b/dom/base/nsGlobalWindowInner.h @@ -1166,8 +1166,6 @@ public: void FireOfflineStatusEventIfChanged(); - bool GetIsPrerendered(); - public: // Inner windows only. nsresult ScheduleNextIdleObserverCallback(); diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp index cf3717c8371f..3c8cb092a3f7 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp @@ -7601,13 +7601,6 @@ nsGlobalWindowOuter::Orientation(CallerType aCallerType) const } #endif -bool -nsGlobalWindowOuter::GetIsPrerendered() -{ - nsIDocShell* docShell = GetDocShell(); - return docShell && docShell->GetIsPrerendered(); -} - void nsPIDOMWindowOuter::SetLargeAllocStatus(LargeAllocStatus aStatus) { diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h index 30598585b7eb..5a208ed1896a 100644 --- a/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h @@ -908,8 +908,6 @@ public: const nsAString &aPopupWindowName, const nsAString &aPopupWindowFeatures); - bool GetIsPrerendered(); - private: void ReportLargeAllocStatus(); diff --git a/dom/base/nsHistory.cpp b/dom/base/nsHistory.cpp index fe92eca3bcde..f84ed6005a25 100644 --- a/dom/base/nsHistory.cpp +++ b/dom/base/nsHistory.cpp @@ -78,7 +78,7 @@ nsHistory::GetLength(ErrorResult& aRv) const } int32_t len; - nsresult rv = sHistory->GetGlobalCount(&len); + nsresult rv = sHistory->GetCount(&len); if (NS_FAILED(rv)) { aRv.Throw(rv); @@ -210,8 +210,8 @@ nsHistory::Go(int32_t aDelta, ErrorResult& aRv) int32_t curIndex = -1; int32_t len = 0; - session_history->GetGlobalIndex(&curIndex); - session_history->GetGlobalCount(&len); + session_history->GetIndex(&curIndex); + session_history->GetCount(&len); int32_t index = curIndex + aDelta; if (index > -1 && index < len) diff --git a/dom/base/nsIDocument.h b/dom/base/nsIDocument.h index e040138dfcea..2c694db0c9b1 100644 --- a/dom/base/nsIDocument.h +++ b/dom/base/nsIDocument.h @@ -3118,8 +3118,6 @@ public: void NoteScriptTrackingStatus(const nsACString& aURL, bool isTracking); bool IsScriptTracking(const nsACString& aURL) const; - bool PrerenderHref(nsIURI* aHref); - // For more information on Flash classification, see // toolkit/components/url-classifier/flash-block-lists.rst virtual mozilla::dom::FlashClassification DocumentFlashClassification() = 0; diff --git a/dom/base/nsIFrameLoader.idl b/dom/base/nsIFrameLoader.idl index a601f9b0f396..fef0482cc245 100644 --- a/dom/base/nsIFrameLoader.idl +++ b/dom/base/nsIFrameLoader.idl @@ -17,8 +17,6 @@ interface nsITabParent; interface nsILoadContext; interface nsIPrintSettings; interface nsIWebProgressListener; -interface nsIGroupedSHistory; -interface nsIPartialSHistory; [builtinclass, uuid(1645af04-1bc7-4363-8f2c-eb9679220ab1)] interface nsIFrameLoader : nsISupports @@ -53,31 +51,6 @@ interface nsIFrameLoader : nsISupports */ void loadURI(in nsIURI aURI, in boolean originalSrc); - /** - * Puts the frameloader in prerendering mode. - */ - void setIsPrerendered(); - - /** - * Make the prerendered frameloader being active (and clear isPrerendered flag). - */ - void makePrerenderedLoaderActive(); - - /** - * Append partial session history from another frame loader. - * - * @return A promise which will be resolved when the navigation is complete. - */ - nsISupports appendPartialSHistoryAndSwap(in nsIFrameLoader aOther); - - /** - * If grouped session history is applied, use this function to navigate to - * an entry of session history object of another frameloader. - * - * @return A promise which will be resolved when the navigation is complete. - */ - nsISupports requestGroupedHistoryNavigation(in unsigned long aGlobalIndex); - /** * Adds a blocking promise for the current cross process navigation. * This method can only be called while the "BrowserWillChangeProcess" event @@ -170,11 +143,6 @@ interface nsIFrameLoader : nsISupports in nsIPrintSettings aPrintSettings, in nsIWebProgressListener aProgressListener); - /** - * Ensure that the current nsIFrameLoader has a GroupedSHistory. - */ - nsIGroupedSHistory ensureGroupedSHistory(); - /** * The default event mode automatically forwards the events * handled in EventStateManager::HandleCrossProcessEvent to @@ -244,17 +212,6 @@ interface nsIFrameLoader : nsISupports */ readonly attribute unsigned long lazyHeight; - /** - * The partial session history. - */ - readonly attribute nsIPartialSHistory partialSHistory; - - /** - * The grouped session history composed of multiple session history objects - * across root docshells. - */ - readonly attribute nsIGroupedSHistory groupedSHistory; - /** * Is `true` if the frameloader is dead (destroy has been called on it) */ @@ -276,11 +233,6 @@ interface nsIFrameLoaderOwner : nsISupports [binaryname(FrameLoaderXPCOM)] readonly attribute nsIFrameLoader frameLoader; [noscript, notxpcom] alreadyAddRefed_nsFrameLoader GetFrameLoader(); - /** - * Puts the FrameLoaderOwner in prerendering mode. - */ - void setIsPrerendered(); - /** * This method is used internally by SwapFrameLoaders to set the frame loader * on the target nsFrameLoader. diff --git a/dom/base/nsObjectLoadingContent.cpp b/dom/base/nsObjectLoadingContent.cpp index d4ed1952d103..d745bafbc61a 100644 --- a/dom/base/nsObjectLoadingContent.cpp +++ b/dom/base/nsObjectLoadingContent.cpp @@ -1146,12 +1146,6 @@ nsObjectLoadingContent::PresetOpenerWindow(mozIDOMWindowProxy* aWindow, mozilla: aRv.Throw(NS_ERROR_FAILURE); } -NS_IMETHODIMP -nsObjectLoadingContent::SetIsPrerendered() -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - void nsObjectLoadingContent::InternalSetFrameLoader(nsIFrameLoader* aNewFrameLoader) { diff --git a/dom/base/nsStyleLinkElement.cpp b/dom/base/nsStyleLinkElement.cpp index 79bc73776e2a..042393a37611 100644 --- a/dom/base/nsStyleLinkElement.cpp +++ b/dom/base/nsStyleLinkElement.cpp @@ -152,8 +152,6 @@ static uint32_t ToLinkMask(const nsAString& aLink) return nsStyleLinkElement::ePRECONNECT; else if (aLink.EqualsLiteral("preload")) return nsStyleLinkElement::ePRELOAD; - else if (aLink.EqualsLiteral("prerender")) - return nsStyleLinkElement::ePRERENDER; else return 0; } diff --git a/dom/base/nsStyleLinkElement.h b/dom/base/nsStyleLinkElement.h index 43f19dc97553..6fb8d2dae735 100644 --- a/dom/base/nsStyleLinkElement.h +++ b/dom/base/nsStyleLinkElement.h @@ -64,7 +64,7 @@ public: eNEXT = 0x00000008, eALTERNATE = 0x00000010, ePRECONNECT = 0x00000020, - ePRERENDER = 0x00000040, + // NOTE: 0x40 is unused ePRELOAD = 0x00000080 }; diff --git a/dom/base/test/chrome/chrome.ini b/dom/base/test/chrome/chrome.ini index 7df2c227281d..c611be0ed2b9 100644 --- a/dom/base/test/chrome/chrome.ini +++ b/dom/base/test/chrome/chrome.ini @@ -24,7 +24,6 @@ support-files = window_nsITextInputProcessor.xul title_window.xul window_swapFrameLoaders.xul - window_groupedSHistory.xul [test_bug120684.xul] [test_bug206691.xul] @@ -76,5 +75,4 @@ support-files = ../dummy.html support-files = file_title.xul [test_windowroot.xul] [test_swapFrameLoaders.xul] -[test_groupedSHistory.xul] [test_bug1339722.html] diff --git a/dom/base/test/chrome/test_groupedSHistory.xul b/dom/base/test/chrome/test_groupedSHistory.xul deleted file mode 100644 index 23cd4c6adbce..000000000000 --- a/dom/base/test/chrome/test_groupedSHistory.xul +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - diff --git a/dom/base/test/chrome/window_groupedSHistory.xul b/dom/base/test/chrome/window_groupedSHistory.xul deleted file mode 100644 index 7c95ce2f82d4..000000000000 --- a/dom/base/test/chrome/window_groupedSHistory.xul +++ /dev/null @@ -1,637 +0,0 @@ - - - - - - - -

' + title + '

'; - } - - let gBrowserCount = 0; - function createBrowser(title, remote, active = false) { - let browser = document.createElement('browser'); - browser.testId = ++gBrowserCount; // for debugging - browser.setAttribute('type', 'content'); - browser.setAttribute('remote', remote); - browser.setAttribute('src', getDummyHtml(title)); - browser.docShellIsActive = active; - document.getElementById('stack').appendChild(browser); - return BrowserTestUtils.browserLoaded(browser) - .then(() => { - // Register our own event listeners. - // - // We don't use BrowserTestUtils.waitForContentEvents, because when - // swapping frameloaders, the event listeners at content side are - // also swapped to another browser. The message listener registered - // by waitForContentEvents will never receive messages consequently. - browser.messageManager.loadFrameScript('data:,' + - 'addEventListener("test:content-pageshow", e => {' + - 'if (e.target == content.document) {' + - 'sendAsyncMessage("test:content-pageshow", { title: e.detail });' + - '}' + - '}, true, true);' + - 'addEventListener("test:content-pagehide", e => {' + - 'if (e.target == content.document) {' + - 'sendAsyncMessage("test:content-pagehide", { title: e.detail });' + - '}' + - '}, true, true);' + - 'addEventListener("test:content-visibilitychange", e => {' + - 'sendAsyncMessage("test:content-visibilitychange", e.detail);' + - '}, true, true);', - true); - - // Log for debugging purpose. - browser.messageManager.addMessageListener('test:content-pageshow', - msg => info('TEST-INFO | pageshow#' + browser.testId + ' ' + JSON.stringify(msg.data))); - browser.messageManager.addMessageListener('test:content-pagehide', - msg => info('TEST-INFO | pagehide#' + browser.testId + ' ' + JSON.stringify(msg.data))); - browser.messageManager.addMessageListener('test:content-visibilitychange', - msg => info('TEST-INFO | visibilitychange#' + browser.testId + ' ' + JSON.stringify(msg.data))); - }) - .then(() => { - // A trick to ensure webProgress object is created for e10s case. - // Otherwise canGoBack / canGoForward won't be updated. - ok(browser.webProgress, 'check browser.webProgress exists'); - return browser; - }); - } - - function addBfcachedText(browser) { - return ContentTask.spawn(browser, null, () => { - content.document.getElementById('p1').textContent = 'modified'; - }); - } - - function loadURI(browser, uri) { - let promise = BrowserTestUtils.browserLoaded(browser, false); - browser.loadURI(uri); - return promise; - } - - function mergeHistory(b1, b2, title) { - let promises = []; - let pagehide1, pagehide2; - - promises.push(BrowserTestUtils.waitForMessage(b1.messageManager, - 'test:content-visibilitychange', msg => msg.data && - (msg.data.title == title) && (msg.data.visibility == 'visible'))); - - // For swapping remote browsers, we'll also receive Content:LocationChange - if (b1.isRemoteBrowser) { - // It's guaranteed location change can be delivered to b1's message - // manager, since frameloader is synchronously swapping on main thread - // after calling PartialSHistory::OnActive(). Therefore the message could - // only be handled after swapping. - promises.push(BrowserTestUtils.waitForMessage(b1.messageManager, 'Content:LocationChange')); - } - - promises.push(Promise.resolve().then(() => { - let f1 = b1.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader; - let f2 = b2.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader; - return f1.appendPartialSHistoryAndSwap(f2); - })); - - return Promise.all(promises); - } - - function wrapHistoryNavFn(browser, navFn, prevTitle, nextTitle, browserToSwap) { - let promises = []; - - // Expecting pagehide from previous page, and a pageshow from next page. - // - // "Pagehide" is sent before calling OnRequestCrossBrowserNavigation(), - // so it should be handled before swapping. "Pageshow" on the other hand - // should be handled after swapping cause frameloader is synchronously - // swapping on main thread after calling PartialSHistory::OnActive(). - // - // Therefore both messages should be delivered to browser.messageManager. - promises.push(BrowserTestUtils.waitForMessage(browser.messageManager, - 'test:content-pagehide', msg => msg.data && (msg.data.title == prevTitle))); - promises.push(BrowserTestUtils.waitForMessage(browser.messageManager, - 'test:content-pageshow', msg => msg.data && (msg.data.title == nextTitle))); - promises.push(navFn() || Promise.resolve()); - - // For swapping remote browsers, we'll also receive Content:LocationChange - if (browserToSwap && browser.isRemoteBrowser) { - promises.push(BrowserTestUtils.waitForMessage(browser.messageManager, - 'Content:LocationChange')); - } - - return Promise.all(promises); - } - - function contentGoBack(browser) { - ContentTask.spawn(browser, null, () => content.history.back()); - } - - function contentGoForward(browser) { - ContentTask.spawn(browser, null, () => content.history.forward()); - } - - function contentGo(browser, offset) { - ContentTask.spawn(browser, { offset }, - ({ offset }) => content.history.go(offset)); - } - - function verifyBrowser(browser, title, index, length, canGoBack, canGoForward, - partial, offset = 0, globalLength = length, bfcached = false) { - is(browser.canGoBack, canGoBack, 'check browser.canGoBack'); - is(browser.canGoForward, canGoForward, 'check browser.canGoForward'); - if (partial) { - let frameLoader = browser.QueryInterface(Components.interfaces.nsIFrameLoaderOwner).frameLoader; - is(frameLoader.groupedSHistory.count, globalLength, 'check groupedSHistory.count'); - } - - return ContentTask.spawn(browser, - { title, index, length, canGoBack, canGoForward, partial, offset, globalLength, bfcached }, - ({ title, index, length, canGoBack, canGoForward, partial, offset, globalLength, bfcached }) => { - let webNav = docShell.QueryInterface(Ci.nsIWebNavigation); - let shistory = webNav.sessionHistory; - is(webNav.canGoBack, canGoBack, 'check webNav.canGoBack'); - is(webNav.canGoForward, canGoForward, 'check webNav.canGoForward'); - is(shistory.index, index, 'check shistory.index'); - is(shistory.count, length, 'check shistory.count'); - is(shistory.isPartial, partial, 'check shistory.isPartial'); - is(shistory.globalIndexOffset, offset, 'check shistory.globalIndexOffset'); - is(shistory.globalCount, globalLength, 'check shistory.globalCount'); - is(content.document.title, title, 'check title'); - is(content.document.getElementById('p1').textContent, bfcached ? 'modified' : '', 'check bfcached content'); - is(content.history.length, globalLength, 'check history.legnth'); - }); - } - - ]]> - - -
diff --git a/dom/bindings/BindingUtils.cpp b/dom/bindings/BindingUtils.cpp index edf96ef1d6a6..0a29d10b514b 100644 --- a/dom/bindings/BindingUtils.cpp +++ b/dom/bindings/BindingUtils.cpp @@ -2872,43 +2872,6 @@ IsNonExposedGlobal(JSContext* aCx, JSObject* aGlobal, return false; } -void -HandlePrerenderingViolation(nsPIDOMWindowInner* aWindow) -{ - // Freeze the window and its workers, and its children too. - aWindow->Freeze(); - - // Suspend event handling on the document - nsCOMPtr doc = aWindow->GetExtantDoc(); - if (doc) { - doc->SuppressEventHandling(); - } -} - -bool -EnforceNotInPrerendering(JSContext* aCx, JSObject* aObj) -{ - JS::Rooted thisObj(aCx, js::CheckedUnwrap(aObj)); - if (!thisObj) { - // Without a this object, we cannot check the safety. - return true; - } - nsGlobalWindowInner* window = xpc::WindowGlobalOrNull(thisObj); - if (!window) { - // Without a window, we cannot check the safety. - return true; - } - - if (window->GetIsPrerendered()) { - HandlePrerenderingViolation(window->AsInner()); - // When the bindings layer sees a false return value, it returns false form - // the JSNative in order to trigger an uncatchable exception. - return false; - } - - return true; -} - bool GenericBindingGetter(JSContext* cx, unsigned argc, JS::Value* vp) { diff --git a/dom/bindings/BindingUtils.h b/dom/bindings/BindingUtils.h index 1859525bfb5c..2b83529fd2b2 100644 --- a/dom/bindings/BindingUtils.h +++ b/dom/bindings/BindingUtils.h @@ -2617,6 +2617,20 @@ UseDOMXray(JSObject* obj) IsDOMIfaceAndProtoClass(clasp); } +inline bool +IsDOMConstructor(JSObject* obj) +{ + if (JS_IsNativeFunction(obj, dom::Constructor)) { + // NamedConstructor, like Image + return true; + } + + const js::Class* clasp = js::GetObjectClass(obj); + // Check for a DOM interface object. + return dom::IsDOMIfaceAndProtoClass(clasp) && + dom::DOMIfaceAndProtoJSClass::FromJSClass(clasp)->mType == dom::eInterface; +} + #ifdef DEBUG inline bool HasConstructor(JSObject* obj) @@ -3246,21 +3260,6 @@ AssertReturnTypeMatchesJitinfo(const JSJitInfo* aJitinfo, JS::Handle aValue); #endif -// This function is called by the bindings layer for methods/getters/setters -// that are not safe to be called in prerendering mode. It checks to make sure -// that the |this| object is not running in a global that is in prerendering -// mode. Otherwise, it aborts execution of timers and event handlers, and -// returns false which gets converted to an uncatchable exception by the -// bindings layer. -bool -EnforceNotInPrerendering(JSContext* aCx, JSObject* aObj); - -// Handles the violation of a blacklisted action in prerendering mode by -// aborting the scripts, and preventing timers and event handlers from running -// in the window in the future. -void -HandlePrerenderingViolation(nsPIDOMWindowInner* aWindow); - bool CallerSubsumes(JSObject* aObject); diff --git a/dom/bindings/Bindings.conf b/dom/bindings/Bindings.conf index e29fd93bc777..2950e5f49d7c 100644 --- a/dom/bindings/Bindings.conf +++ b/dom/bindings/Bindings.conf @@ -1746,16 +1746,12 @@ addExternalIface('nsIBrowserDOMWindow', nativeType='nsIBrowserDOMWindow', addExternalIface('nsIDOMCrypto', nativeType='nsIDOMCrypto', headerFile='Crypto.h') addExternalIface('nsIFile', nativeType='nsIFile', notflattened=True) -addExternalIface('nsIGroupedSHistory', nativeType='nsIGroupedSHistory', - notflattened=True) addExternalIface('nsILoadGroup', nativeType='nsILoadGroup', headerFile='nsILoadGroup.h', notflattened=True) addExternalIface('nsIMessageBroadcaster', nativeType='nsIMessageBroadcaster', headerFile='nsIMessageManager.h', notflattened=True) addExternalIface('nsIMessageSender', nativeType='nsIMessageSender', headerFile='nsIMessageManager.h', notflattened=True) -addExternalIface('nsIPartialSHistory', nativeType='nsIPartialSHistory', - notflattened=True) addExternalIface('nsIPrintSettings', nativeType='nsIPrintSettings', notflattened=True) addExternalIface('nsISelectionListener', nativeType='nsISelectionListener') diff --git a/dom/bindings/Codegen.py b/dom/bindings/Codegen.py index fb7e9f7520fa..c531aea387cc 100644 --- a/dom/bindings/Codegen.py +++ b/dom/bindings/Codegen.py @@ -7725,23 +7725,6 @@ class CGPerSignatureCall(CGThing): self.isConstructor = isConstructor cgThings = [] - # Here, we check if the current getter, setter, method, interface or - # inherited interfaces have the UnsafeInPrerendering extended attribute - # and if so, we add a check to make sure it is safe. - if (idlNode.getExtendedAttribute("UnsafeInPrerendering") or - descriptor.interface.getExtendedAttribute("UnsafeInPrerendering") or - any(i.getExtendedAttribute("UnsafeInPrerendering") - for i in descriptor.interface.getInheritedInterfaces())): - cgThings.append(CGGeneric(dedent( - """ - if (!mozilla::dom::EnforceNotInPrerendering(cx, obj)) { - // Return false from the JSNative in order to trigger - // an uncatchable exception. - MOZ_ASSERT(!JS_IsExceptionPending(cx)); - return false; - } - """))) - deprecated = (idlNode.getExtendedAttribute("Deprecated") or (idlNode.isStatic() and descriptor.interface.getExtendedAttribute("Deprecated"))) if deprecated: diff --git a/dom/bindings/parser/WebIDL.py b/dom/bindings/parser/WebIDL.py index 22bdbf963e97..2030e674c739 100644 --- a/dom/bindings/parser/WebIDL.py +++ b/dom/bindings/parser/WebIDL.py @@ -1724,7 +1724,6 @@ class IDLInterface(IDLInterfaceOrNamespace): identifier == "OverrideBuiltins" or identifier == "ChromeOnly" or identifier == "Unforgeable" or - identifier == "UnsafeInPrerendering" or identifier == "LegacyEventInit" or identifier == "ProbablyShortLivingWrapper" or identifier == "LegacyUnenumerableNamedProperties" or @@ -4351,7 +4350,6 @@ class IDLAttribute(IDLInterfaceMember): identifier == "SecureContext" or identifier == "Frozen" or identifier == "NewObject" or - identifier == "UnsafeInPrerendering" or identifier == "NeedsSubjectPrincipal" or identifier == "SetterNeedsSubjectPrincipal" or identifier == "GetterNeedsSubjectPrincipal" or @@ -5080,7 +5078,6 @@ class IDLMethod(IDLInterfaceMember, IDLScope): identifier == "CanOOM" or identifier == "NewObject" or identifier == "ChromeOnly" or - identifier == "UnsafeInPrerendering" or identifier == "Pref" or identifier == "Deprecated" or identifier == "Func" or diff --git a/dom/bindings/test/TestCodeGen.webidl b/dom/bindings/test/TestCodeGen.webidl index 206cf9cdc4bd..2cf4803f30d0 100644 --- a/dom/bindings/test/TestCodeGen.webidl +++ b/dom/bindings/test/TestCodeGen.webidl @@ -182,12 +182,6 @@ interface TestInterface { [DependsOn=DeviceState, Affects=Nothing] byte returnDeviceStateDependentByte(); - [UnsafeInPrerendering] - void unsafePrerenderMethod(); - [UnsafeInPrerendering] - attribute long unsafePrerenderWritable; - [UnsafeInPrerendering] - readonly attribute long unsafePrerenderReadonly; readonly attribute short readonlyShort; attribute short writableShort; void passShort(short arg); diff --git a/dom/bindings/test/chrome.ini b/dom/bindings/test/chrome.ini index 9fdbd7fd30ba..b51285e286eb 100644 --- a/dom/bindings/test/chrome.ini +++ b/dom/bindings/test/chrome.ini @@ -10,13 +10,6 @@ support-files = [test_dom_xrays.html] [test_proxies_via_xray.html] [test_document_location_via_xray_cached.html] -[test_blacklisted_prerendering_function.xul] -support-files = - file_focuser.html - file_fullScreenPropertyAccessor.html -skip-if = e10s # prerendering doesn't work in e10s yet -[test_kill_longrunning_prerendered_content.xul] -skip-if = e10s # prerendering doesn't work in e10s yet [test_bug1123516_maplikesetlikechrome.xul] skip-if = debug == false [test_bug1287912.html] diff --git a/dom/bindings/test/file_focuser.html b/dom/bindings/test/file_focuser.html deleted file mode 100644 index 0d5240f95b1a..000000000000 --- a/dom/bindings/test/file_focuser.html +++ /dev/null @@ -1,24 +0,0 @@ - -
- diff --git a/dom/bindings/test/file_fullScreenPropertyAccessor.html b/dom/bindings/test/file_fullScreenPropertyAccessor.html deleted file mode 100644 index 92a37e0bac62..000000000000 --- a/dom/bindings/test/file_fullScreenPropertyAccessor.html +++ /dev/null @@ -1,24 +0,0 @@ - -
- diff --git a/dom/bindings/test/test_blacklisted_prerendering_function.xul b/dom/bindings/test/test_blacklisted_prerendering_function.xul deleted file mode 100644 index 02a76d88d975..000000000000 --- a/dom/bindings/test/test_blacklisted_prerendering_function.xul +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - -Mozilla Bug 1069719 -

- -
-
- - - -
diff --git a/dom/bindings/test/test_kill_longrunning_prerendered_content.xul b/dom/bindings/test/test_kill_longrunning_prerendered_content.xul deleted file mode 100644 index d86b15ad9fd2..000000000000 --- a/dom/bindings/test/test_kill_longrunning_prerendered_content.xul +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - -Mozilla Bug 1050456 -

- -
-
- - -
diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp index 1f7db4d357bc..9aef6ebaa611 100644 --- a/dom/html/HTMLMediaElement.cpp +++ b/dom/html/HTMLMediaElement.cpp @@ -8086,3 +8086,6 @@ HTMLMediaElement::ReportCanPlayTelemetry() } // namespace dom } // namespace mozilla + +#undef LOG +#undef LOG_EVENT diff --git a/dom/html/HTMLMetaElement.cpp b/dom/html/HTMLMetaElement.cpp index b03b58162181..7420e32d34f8 100644 --- a/dom/html/HTMLMetaElement.cpp +++ b/dom/html/HTMLMetaElement.cpp @@ -8,10 +8,15 @@ #include "mozilla/dom/HTMLMetaElement.h" #include "mozilla/dom/HTMLMetaElementBinding.h" #include "mozilla/dom/nsCSPService.h" +#include "mozilla/Logging.h" #include "nsContentUtils.h" #include "nsStyleConsts.h" #include "nsIContentSecurityPolicy.h" +static mozilla::LazyLogModule gMetaElementLog("nsMetaElement"); +#define LOG(msg) MOZ_LOG(gMetaElementLog, mozilla::LogLevel::Debug, msg) +#define LOG_ENABLED() MOZ_LOG_TEST(gMetaElementLog, mozilla::LogLevel::Debug) + NS_IMPL_NS_NEW_HTML_ELEMENT(Meta) namespace mozilla { @@ -117,6 +122,17 @@ HTMLMetaElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsCOMPtr domDoc = do_QueryInterface(aDocument); principal->EnsureCSP(domDoc, getter_AddRefs(csp)); if (csp) { + if (LOG_ENABLED()) { + nsAutoCString documentURIspec; + nsIURI* documentURI = aDocument->GetDocumentURI(); + if (documentURI) { + documentURI->GetAsciiSpec(documentURIspec); + } + + LOG(("HTMLMetaElement %p sets CSP '%s' on document=%p, document-uri=%s", + this, NS_ConvertUTF16toUTF8(content).get(), aDocument, documentURIspec.get())); + } + // Multiple CSPs (delivered through either header of meta tag) need to be // joined together, see: // https://w3c.github.io/webappsec/specs/content-security-policy/#delivery-html-meta-element diff --git a/dom/html/nsGenericHTMLFrameElement.cpp b/dom/html/nsGenericHTMLFrameElement.cpp index b94cf02a6079..5023dde3dfc9 100644 --- a/dom/html/nsGenericHTMLFrameElement.cpp +++ b/dom/html/nsGenericHTMLFrameElement.cpp @@ -145,9 +145,6 @@ nsGenericHTMLFrameElement::EnsureFrameLoader() mFrameLoader = nsFrameLoader::Create(this, nsPIDOMWindowOuter::From(mOpenerWindow), mNetworkCreated); - if (mIsPrerendered) { - mFrameLoader->SetIsPrerendered(); - } } nsresult @@ -228,14 +225,6 @@ nsGenericHTMLFrameElement::SwapFrameLoaders(nsIFrameLoaderOwner* aOtherLoaderOwn rv = loader->SwapWithOtherLoader(otherLoader, this, aOtherLoaderOwner); } -NS_IMETHODIMP -nsGenericHTMLFrameElement::SetIsPrerendered() -{ - MOZ_ASSERT(!mFrameLoader, "Please call SetIsPrerendered before frameLoader is created"); - mIsPrerendered = true; - return NS_OK; -} - nsresult nsGenericHTMLFrameElement::LoadSrc() { diff --git a/dom/html/nsGenericHTMLFrameElement.h b/dom/html/nsGenericHTMLFrameElement.h index c0baa874da37..b518e775ab42 100644 --- a/dom/html/nsGenericHTMLFrameElement.h +++ b/dom/html/nsGenericHTMLFrameElement.h @@ -38,7 +38,6 @@ public: , nsBrowserElement() , mSrcLoadHappened(false) , mNetworkCreated(aFromParser == mozilla::dom::FROM_PARSER_NETWORK) - , mIsPrerendered(false) , mBrowserFrameListenersRegistered(false) , mFrameLoaderCreationDisallowed(false) , mReallyIsBrowser(false) @@ -138,7 +137,6 @@ protected: */ bool mNetworkCreated; - bool mIsPrerendered; bool mBrowserFrameListenersRegistered; bool mFrameLoaderCreationDisallowed; bool mReallyIsBrowser; diff --git a/dom/interfaces/base/nsITabParent.idl b/dom/interfaces/base/nsITabParent.idl index 5e686a50d714..90b04886f965 100644 --- a/dom/interfaces/base/nsITabParent.idl +++ b/dom/interfaces/base/nsITabParent.idl @@ -37,11 +37,6 @@ interface nsITabParent : nsISupports */ readonly attribute boolean hasLayers; - /** - * Whether this tabParent is in prerender mode. - */ - [infallible] readonly attribute boolean isPrerendered; - /** * As an optimisation, setting the docshell's active state to * inactive also triggers a layer invalidation to free up some diff --git a/dom/ipc/PBrowser.ipdl b/dom/ipc/PBrowser.ipdl index eaf0ef96a17d..1d154d7e0138 100644 --- a/dom/ipc/PBrowser.ipdl +++ b/dom/ipc/PBrowser.ipdl @@ -575,25 +575,6 @@ parent: // bridge. sync EnsureLayersConnected() returns (CompositorOptions compositorOptions); - /** - * Notify the parent that the session history state has been updated. - * - * @param aCount - * The updated number of entries in child session history - * @param aLocalIndex - * The local session history index which is loaded. - */ - async SHistoryUpdate(uint32_t aCount, uint32_t aLocalIndex, bool aTruncate); - - /** - * When the session history is across multiple root docshells, this function - * is used to notify parent that it needs to navigate to an entry out of - * local index of the child. - * - * @param aGlobalIndex The global index of history entry to navigate to. - */ - async RequestCrossBrowserNavigation(uint32_t aGlobalIndex); - /** * This function is used to notify the parent that it should display a * canvas permission prompt. @@ -900,32 +881,6 @@ child: */ async UpdateNativeWindowHandle(uintptr_t aNewHandle); - /** - * Called when the session history of this particular PBrowser has been - * attached to a grouped session history. - * - * @param aOffset The number of entries in the grouped session - * history before this session history object. - */ - async NotifyAttachGroupedSHistory(uint32_t aOffset); - - /** - * Notify that the session history associated to this PBrowser has become - * the active history in the grouped session history. - * - * @param aGlobalLength The up-to-date number of entries in the grouped - * session history. - * @param aTargetLocalIndex The target local index to navigate to. - */ - async NotifyPartialSHistoryActive(uint32_t aGlobalLength, - uint32_t aTargetLocalIndex); - - /** - * Notify that the session history asssociates to this PBrowser has become - * an inactive history in the grouped session history. - */ - async NotifyPartialSHistoryDeactive(); - /** * Tell the TabChild that it should expect a Large-Allocation load to occur. * Loads which occur until this flag is cleared will not leave the process. diff --git a/dom/ipc/PTabContext.ipdlh b/dom/ipc/PTabContext.ipdlh index c31263597ee4..dffd80507586 100644 --- a/dom/ipc/PTabContext.ipdlh +++ b/dom/ipc/PTabContext.ipdlh @@ -43,9 +43,6 @@ struct FrameIPCTabContext // are not considered to be mozbrowser frames. bool isMozBrowserElement; - // Whether this TabContext should work in prerender mode. - bool isPrerendered; - // The requested presentation URL. // This value would be empty if the TabContext isn't created for // presented content. diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index 5ef7e7fc166a..7305f3a90242 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -120,7 +120,6 @@ #include "nsICommandParams.h" #include "nsISHistory.h" #include "nsQueryObject.h" -#include "GroupedSHistory.h" #include "nsIHttpChannel.h" #include "mozilla/dom/DocGroup.h" #include "nsString.h" @@ -158,10 +157,6 @@ using namespace mozilla::jsipc; using mozilla::layers::GeckoContentController; NS_IMPL_ISUPPORTS(ContentListener, nsIDOMEventListener) -NS_IMPL_ISUPPORTS(TabChildSHistoryListener, - nsISHistoryListener, - nsIPartialSHistoryListener, - nsISupportsWeakReference) static const char BEFORE_FIRST_PAINT[] = "before-first-paint"; @@ -640,11 +635,6 @@ TabChild::Init() window->SetInitialKeyboardIndicators(ShowAccelerators(), ShowFocusRings()); } - // Set prerender flag if necessary. - if (mIsPrerendered) { - docShell->SetIsPrerendered(); - } - nsContentUtils::SetScrollbarsVisibility(window->GetDocShell(), !!(mChromeFlags & nsIWebBrowserChrome::CHROME_SCROLLBARS)); @@ -661,20 +651,6 @@ TabChild::Init() mAPZEventState = new APZEventState(mPuppetWidget, Move(callback)); mIPCOpen = true; - - if (GroupedSHistory::GroupedHistoryEnabled()) { - // Set session history listener. - nsCOMPtr shistory = GetRelatedSHistory(); - if (!shistory) { - return NS_ERROR_FAILURE; - } - mHistoryListener = new TabChildSHistoryListener(this); - nsCOMPtr listener(do_QueryObject(mHistoryListener)); - shistory->AddSHistoryListener(listener); - nsCOMPtr partialListener(do_QueryObject(mHistoryListener)); - shistory->SetPartialSHistoryListener(partialListener); - } - return NS_OK; } @@ -1170,10 +1146,6 @@ TabChild::~TabChild() webBrowser->SetContainerWindow(nullptr); } - if (mHistoryListener) { - mHistoryListener->ClearTabChild(); - } - mozilla::DropJSObjects(this); } @@ -1560,54 +1532,6 @@ TabChild::RecvStopIMEStateManagement() return IPC_OK(); } -mozilla::ipc::IPCResult -TabChild::RecvNotifyAttachGroupedSHistory(const uint32_t& aOffset) -{ - // nsISHistory uses int32_t - if (NS_WARN_IF(aOffset > INT32_MAX)) { - return IPC_FAIL_NO_REASON(this); - } - - nsCOMPtr shistory = GetRelatedSHistory(); - NS_ENSURE_TRUE(shistory, IPC_FAIL_NO_REASON(this)); - - if (NS_FAILED(shistory->OnAttachGroupedSHistory(aOffset))) { - return IPC_FAIL_NO_REASON(this); - } - return IPC_OK(); -} - -mozilla::ipc::IPCResult -TabChild::RecvNotifyPartialSHistoryActive(const uint32_t& aGlobalLength, - const uint32_t& aTargetLocalIndex) -{ - // nsISHistory uses int32_t - if (NS_WARN_IF(aGlobalLength > INT32_MAX || aTargetLocalIndex > INT32_MAX)) { - return IPC_FAIL_NO_REASON(this); - } - - nsCOMPtr shistory = GetRelatedSHistory(); - NS_ENSURE_TRUE(shistory, IPC_FAIL_NO_REASON(this)); - - if (NS_FAILED(shistory->OnPartialSHistoryActive(aGlobalLength, - aTargetLocalIndex))) { - return IPC_FAIL_NO_REASON(this); - } - return IPC_OK(); -} - -mozilla::ipc::IPCResult -TabChild::RecvNotifyPartialSHistoryDeactive() -{ - nsCOMPtr shistory = GetRelatedSHistory(); - NS_ENSURE_TRUE(shistory, IPC_FAIL_NO_REASON(this)); - - if (NS_FAILED(shistory->OnPartialSHistoryDeactive())) { - return IPC_FAIL_NO_REASON(this); - } - return IPC_OK(); -} - mozilla::ipc::IPCResult TabChild::RecvMouseEvent(const nsString& aType, const float& aX, @@ -2677,8 +2601,6 @@ TabChild::RemovePendingDocShellBlocker() void TabChild::InternalSetDocShellIsActive(bool aIsActive) { - // docshell is consider prerendered only if not active yet - mIsPrerendered &= !aIsActive; nsCOMPtr docShell = do_GetInterface(WebNavigation()); if (docShell) { @@ -3621,114 +3543,12 @@ TabChild::BeforeUnloadRemoved() } } -already_AddRefed -TabChild::GetRelatedSHistory() -{ - nsCOMPtr shistory; - mWebNav->GetSessionHistory(getter_AddRefs(shistory)); - return shistory.forget(); -} - -nsresult -TabChildSHistoryListener::SHistoryDidUpdate(bool aTruncate /* = false */) -{ - RefPtr tabChild(mTabChild); - if (NS_WARN_IF(!tabChild)) { - return NS_ERROR_FAILURE; - } - - nsCOMPtr shistory = tabChild->GetRelatedSHistory(); - NS_ENSURE_TRUE(shistory, NS_ERROR_FAILURE); - - int32_t index, count; - nsresult rv = shistory->GetIndex(&index); - NS_ENSURE_SUCCESS(rv, rv); - rv = shistory->GetCount(&count); - NS_ENSURE_SUCCESS(rv, rv); - - // XXX: It would be nice if we could batch these updates like SessionStore - // does, and provide a form of `Flush` command which would allow us to trigger - // an update, and wait for the state to become consistent. - NS_ENSURE_TRUE(tabChild->SendSHistoryUpdate(count, index, aTruncate), NS_ERROR_FAILURE); - return NS_OK; -} - mozilla::dom::TabGroup* TabChild::TabGroup() { return mTabGroup; } -/******************************************************************************* - * nsISHistoryListener - ******************************************************************************/ - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryNewEntry(nsIURI *aNewURI, int32_t aOldIndex) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryGoBack(nsIURI *aBackURI, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryGoForward(nsIURI *aForwardURI, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryReload(nsIURI *aReloadURI, uint32_t aReloadFlags, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryGotoIndex(int32_t aIndex, nsIURI *aGotoURI, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryPurge(int32_t aNumEntries, bool *_retval) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnHistoryReplaceEntry(int32_t aIndex) -{ - return NS_ERROR_NOT_IMPLEMENTED; -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnLengthChanged(int32_t aCount) -{ - return SHistoryDidUpdate(/* aTruncate = */ true); -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnIndexChanged(int32_t aIndex) -{ - return SHistoryDidUpdate(/* aTruncate = */ false); -} - -NS_IMETHODIMP -TabChildSHistoryListener::OnRequestCrossBrowserNavigation(uint32_t aIndex) -{ - RefPtr tabChild(mTabChild); - if (!tabChild) { - return NS_ERROR_FAILURE; - } - - return tabChild->SendRequestCrossBrowserNavigation(aIndex) ? - NS_OK : NS_ERROR_FAILURE; -} - TabChildGlobal::TabChildGlobal(TabChild* aTabChild) : mTabChild(aTabChild) { diff --git a/dom/ipc/TabChild.h b/dom/ipc/TabChild.h index 0db296fea13c..047af7607e27 100644 --- a/dom/ipc/TabChild.h +++ b/dom/ipc/TabChild.h @@ -43,7 +43,6 @@ #include "mozilla/layers/GeckoContentController.h" #include "nsDeque.h" #include "nsISHistoryListener.h" -#include "nsIPartialSHistoryListener.h" class nsIDOMWindowUtils; class nsIHttpChannel; @@ -186,29 +185,6 @@ protected: TabChild* mTabChild; }; -/** - * Listens on session history change, and sends NotifySessionHistoryChange to - * parent process. - */ -class TabChildSHistoryListener final : public nsISHistoryListener, - public nsIPartialSHistoryListener, - public nsSupportsWeakReference -{ -public: - explicit TabChildSHistoryListener(TabChild* aTabChild) : mTabChild(aTabChild) {} - void ClearTabChild() { mTabChild = nullptr; } - - NS_DECL_ISUPPORTS - NS_DECL_NSISHISTORYLISTENER - NS_DECL_NSIPARTIALSHISTORYLISTENER - -private: - nsresult SHistoryDidUpdate(bool aTruncate = false); - - ~TabChildSHistoryListener() {} - TabChild* mTabChild; -}; - // This is base clase which helps to share Viewport and touch related // functionality between b2g/android FF/embedlite clients implementation. // It make sense to place in this class all helper functions, and functionality @@ -739,8 +715,6 @@ public: bool StopAwaitingLargeAlloc(); bool IsAwaitingLargeAlloc(); - already_AddRefed GetRelatedSHistory(); - mozilla::dom::TabGroup* TabGroup(); #if defined(ACCESSIBILITY) @@ -819,13 +793,6 @@ protected: virtual mozilla::ipc::IPCResult RecvStopIMEStateManagement() override; - virtual mozilla::ipc::IPCResult RecvNotifyAttachGroupedSHistory(const uint32_t& aOffset) override; - - virtual mozilla::ipc::IPCResult RecvNotifyPartialSHistoryActive(const uint32_t& aGlobalLength, - const uint32_t& aTargetLocalIndex) override; - - virtual mozilla::ipc::IPCResult RecvNotifyPartialSHistoryDeactive() override; - virtual mozilla::ipc::IPCResult RecvAwaitLargeAlloc() override; virtual mozilla::ipc::IPCResult RecvSetWindowName(const nsString& aName) override; @@ -907,7 +874,6 @@ private: nsCOMPtr mLastURI; RenderFrameChild* mRemoteFrame; RefPtr mManager; - RefPtr mHistoryListener; uint32_t mChromeFlags; uint32_t mMaxTouchPoints; int32_t mActiveSuppressDisplayport; diff --git a/dom/ipc/TabContext.cpp b/dom/ipc/TabContext.cpp index 43724baa1b65..58d4ac13d7a8 100644 --- a/dom/ipc/TabContext.cpp +++ b/dom/ipc/TabContext.cpp @@ -21,8 +21,7 @@ namespace mozilla { namespace dom { TabContext::TabContext() - : mIsPrerendered(false) - , mInitialized(false) + : mInitialized(false) , mIsMozBrowserElement(false) , mJSPluginID(-1) , mShowAccelerators(UIStateChangeType_NoChange) @@ -119,7 +118,6 @@ TabContext::ShowFocusRings() const bool TabContext::SetTabContext(bool aIsMozBrowserElement, - bool aIsPrerendered, UIStateChangeType aShowAccelerators, UIStateChangeType aShowFocusRings, const OriginAttributes& aOriginAttributes, @@ -132,7 +130,6 @@ TabContext::SetTabContext(bool aIsMozBrowserElement, mInitialized = true; mIsMozBrowserElement = aIsMozBrowserElement; - mIsPrerendered = aIsPrerendered; mOriginAttributes = aOriginAttributes; mPresentationURL = aPresentationURL; mShowAccelerators = aShowAccelerators; @@ -159,7 +156,6 @@ TabContext::AsIPCTabContext() const return IPCTabContext(FrameIPCTabContext(mOriginAttributes, mIsMozBrowserElement, - mIsPrerendered, mPresentationURL, mShowAccelerators, mShowFocusRings)); @@ -169,7 +165,6 @@ MaybeInvalidTabContext::MaybeInvalidTabContext(const IPCTabContext& aParams) : mInvalidReason(nullptr) { bool isMozBrowserElement = false; - bool isPrerendered = false; int32_t jsPluginId = -1; OriginAttributes originAttributes; nsAutoString presentationURL; @@ -235,7 +230,6 @@ MaybeInvalidTabContext::MaybeInvalidTabContext(const IPCTabContext& aParams) aParams.get_FrameIPCTabContext(); isMozBrowserElement = ipcContext.isMozBrowserElement(); - isPrerendered = ipcContext.isPrerendered(); presentationURL = ipcContext.presentationURL(); showAccelerators = ipcContext.showAccelerators(); showFocusRings = ipcContext.showFocusRings(); @@ -264,7 +258,6 @@ MaybeInvalidTabContext::MaybeInvalidTabContext(const IPCTabContext& aParams) rv = mTabContext.SetTabContextForJSPluginFrame(jsPluginId); } else { rv = mTabContext.SetTabContext(isMozBrowserElement, - isPrerendered, showAccelerators, showFocusRings, originAttributes, diff --git a/dom/ipc/TabContext.h b/dom/ipc/TabContext.h index 82d88c165bc1..e90127f359f5 100644 --- a/dom/ipc/TabContext.h +++ b/dom/ipc/TabContext.h @@ -105,7 +105,6 @@ protected: void SetPrivateBrowsingAttributes(bool aIsPrivateBrowsing); bool SetTabContext(bool aIsMozBrowserElement, - bool aIsPrerendered, UIStateChangeType aShowAccelerators, UIStateChangeType aShowFocusRings, const OriginAttributes& aOriginAttributes, @@ -122,11 +121,6 @@ protected: */ bool UpdateTabContextAfterSwap(const TabContext& aContext); - /** - * Whether this TabContext is in prerender mode. - */ - bool mIsPrerendered; - /** * Set this TabContext to be for a JS plugin. aPluginID is the id of the JS plugin * (@see nsFakePlugin::mId). @@ -183,14 +177,12 @@ public: bool SetTabContext(bool aIsMozBrowserElement, - bool aIsPrerendered, UIStateChangeType aShowAccelerators, UIStateChangeType aShowFocusRings, const OriginAttributes& aOriginAttributes, const nsAString& aPresentationURL = EmptyString()) { return TabContext::SetTabContext(aIsMozBrowserElement, - aIsPrerendered, aShowAccelerators, aShowFocusRings, aOriginAttributes, diff --git a/dom/ipc/TabParent.cpp b/dom/ipc/TabParent.cpp index dca00df34d97..d63a2ba595cd 100644 --- a/dom/ipc/TabParent.cpp +++ b/dom/ipc/TabParent.cpp @@ -98,8 +98,6 @@ #include "UnitTransforms.h" #include #include "mozilla/WebBrowserPersistDocumentParent.h" -#include "nsIGroupedSHistory.h" -#include "PartialSHistory.h" #include "ProcessPriorityManager.h" #include "nsString.h" #include "NullPrincipal.h" @@ -2904,8 +2902,6 @@ TabParent::GetUseAsyncPanZoom(bool* useAsyncPanZoom) NS_IMETHODIMP TabParent::SetDocShellIsActive(bool isActive) { - // docshell is consider prerendered only if not active yet - mIsPrerendered &= !isActive; mDocShellIsActive = isActive; SetRenderLayers(isActive); Unused << SendSetDocShellIsActive(isActive); @@ -2941,13 +2937,6 @@ TabParent::GetDocShellIsActive(bool* aIsActive) return NS_OK; } -NS_IMETHODIMP -TabParent::GetIsPrerendered(bool* aIsPrerendered) -{ - *aIsPrerendered = mIsPrerendered; - return NS_OK; -} - NS_IMETHODIMP TabParent::SetRenderLayers(bool aEnabled) { @@ -3599,45 +3588,6 @@ TabParent::RecvLookUpDictionary(const nsString& aText, return IPC_OK(); } -mozilla::ipc::IPCResult -TabParent::RecvSHistoryUpdate(const uint32_t& aCount, const uint32_t& aLocalIndex, const bool& aTruncate) -{ - RefPtr frameLoader(GetFrameLoader()); - if (!frameLoader) { - // FrameLoader can be nullptr if the it is destroying. - // In this case session history change can simply be ignored. - return IPC_OK(); - } - - nsCOMPtr partialHistory; - frameLoader->GetPartialSHistory(getter_AddRefs(partialHistory)); - if (!partialHistory) { - // PartialSHistory is not enabled - return IPC_OK(); - } - - partialHistory->HandleSHistoryUpdate(aCount, aLocalIndex, aTruncate); - return IPC_OK(); -} - -mozilla::ipc::IPCResult -TabParent::RecvRequestCrossBrowserNavigation(const uint32_t& aGlobalIndex) -{ - RefPtr frameLoader(GetFrameLoader()); - if (!frameLoader) { - // FrameLoader can be nullptr if the it is destroying. - // In this case we can ignore the request. - return IPC_OK(); - } - - nsCOMPtr promise; - if (NS_FAILED(frameLoader->RequestGroupedHistoryNavigation(aGlobalIndex, - getter_AddRefs(promise)))) { - return IPC_FAIL_NO_REASON(this); - } - return IPC_OK(); -} - mozilla::ipc::IPCResult TabParent::RecvShowCanvasPermissionPrompt(const nsCString& aFirstPartyURI) { diff --git a/dom/ipc/TabParent.h b/dom/ipc/TabParent.h index 3a8cf8a2d1e8..9d04d0604183 100644 --- a/dom/ipc/TabParent.h +++ b/dom/ipc/TabParent.h @@ -33,7 +33,6 @@ #include "nsWeakReference.h" #include "Units.h" #include "nsIWidget.h" -#include "nsIPartialSHistory.h" class nsFrameLoader; class nsIFrameLoader; @@ -643,11 +642,6 @@ protected: virtual mozilla::ipc::IPCResult RecvGetTabCount(uint32_t* aValue) override; - virtual mozilla::ipc::IPCResult RecvSHistoryUpdate(const uint32_t& aCount, - const uint32_t& aLocalIndex, - const bool& aTruncate) override; - - virtual mozilla::ipc::IPCResult RecvRequestCrossBrowserNavigation(const uint32_t& aGlobalIndex) override; virtual mozilla::ipc::IPCResult RecvShowCanvasPermissionPrompt(const nsCString& aFirstPartyURI) override; ContentCacheInParent mContentCache; diff --git a/dom/media/webspeech/synth/nsSynthVoiceRegistry.cpp b/dom/media/webspeech/synth/nsSynthVoiceRegistry.cpp index c918f7317ac9..0465bc23397d 100644 --- a/dom/media/webspeech/synth/nsSynthVoiceRegistry.cpp +++ b/dom/media/webspeech/synth/nsSynthVoiceRegistry.cpp @@ -16,6 +16,7 @@ #include "AudioChannelService.h" #include "nsString.h" +#include "mozilla/ClearOnShutdown.h" #include "mozilla/StaticPtr.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" @@ -171,6 +172,7 @@ nsSynthVoiceRegistry::GetInstance() if (!gSynthVoiceRegistry) { gSynthVoiceRegistry = new nsSynthVoiceRegistry(); + ClearOnShutdown(&gSynthVoiceRegistry); if (XRE_IsParentProcess()) { // Start up all speech synth services. NS_CreateServicesFromCategory(NS_SPEECH_SYNTH_STARTED, nullptr, @@ -189,14 +191,6 @@ nsSynthVoiceRegistry::GetInstanceForService() return registry.forget(); } -void -nsSynthVoiceRegistry::Shutdown() -{ - LOG(LogLevel::Debug, ("[%s] nsSynthVoiceRegistry::Shutdown()", - (XRE_IsContentProcess()) ? "Content" : "Default")); - gSynthVoiceRegistry = nullptr; -} - bool nsSynthVoiceRegistry::SendInitialVoicesAndState(SpeechSynthesisParent* aParent) { diff --git a/dom/media/webspeech/synth/nsSynthVoiceRegistry.h b/dom/media/webspeech/synth/nsSynthVoiceRegistry.h index d72fe32994dd..1c743aa683fd 100644 --- a/dom/media/webspeech/synth/nsSynthVoiceRegistry.h +++ b/dom/media/webspeech/synth/nsSynthVoiceRegistry.h @@ -67,8 +67,6 @@ public: static void RecvNotifyVoicesChanged(); - static void Shutdown(); - private: virtual ~nsSynthVoiceRegistry(); diff --git a/dom/media/webspeech/synth/speechd/SpeechDispatcherModule.cpp b/dom/media/webspeech/synth/speechd/SpeechDispatcherModule.cpp index a7f7ad5352c5..1844295b9d4b 100644 --- a/dom/media/webspeech/synth/speechd/SpeechDispatcherModule.cpp +++ b/dom/media/webspeech/synth/speechd/SpeechDispatcherModule.cpp @@ -37,12 +37,6 @@ static const mozilla::Module::CategoryEntry kCategories[] = { { nullptr } }; -static void -UnloadSpeechDispatcherModule() -{ - SpeechDispatcherService::Shutdown(); -} - static const mozilla::Module kModule = { mozilla::Module::kVersion, kCIDs, @@ -50,7 +44,7 @@ static const mozilla::Module kModule = { kCategories, nullptr, nullptr, - UnloadSpeechDispatcherModule + nullptr, }; NSMODULE_DEFN(synthspeechdispatcher) = &kModule; diff --git a/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp b/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp index 51f4ce7d25ff..53e67e2e6e3f 100644 --- a/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp +++ b/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp @@ -8,6 +8,7 @@ #include "mozilla/dom/nsSpeechTask.h" #include "mozilla/dom/nsSynthVoiceRegistry.h" +#include "mozilla/ClearOnShutdown.h" #include "mozilla/Preferences.h" #include "nsEscape.h" #include "nsISupports.h" @@ -560,6 +561,7 @@ SpeechDispatcherService::GetInstance(bool create) if (!sSingleton && create) { sSingleton = new SpeechDispatcherService(); sSingleton->Init(); + ClearOnShutdown(&sSingleton); } return sSingleton; @@ -585,15 +587,5 @@ SpeechDispatcherService::EventNotify(uint32_t aMsgId, uint32_t aState) } } -void -SpeechDispatcherService::Shutdown() -{ - if (!sSingleton) { - return; - } - - sSingleton = nullptr; -} - } // namespace dom } // namespace mozilla diff --git a/dom/media/webspeech/synth/speechd/SpeechDispatcherService.h b/dom/media/webspeech/synth/speechd/SpeechDispatcherService.h index 07798cedaaff..0ce8ae622ad8 100644 --- a/dom/media/webspeech/synth/speechd/SpeechDispatcherService.h +++ b/dom/media/webspeech/synth/speechd/SpeechDispatcherService.h @@ -42,8 +42,6 @@ public: static SpeechDispatcherService* GetInstance(bool create = true); static already_AddRefed GetInstanceForService(); - static void Shutdown(); - static StaticRefPtr sSingleton; private: diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp index 573b9fed3026..b64b6206a51e 100644 --- a/dom/plugins/base/nsPluginHost.cpp +++ b/dom/plugins/base/nsPluginHost.cpp @@ -53,6 +53,7 @@ #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" #include "mozilla/dom/FakePluginTagInitBinding.h" +#include "mozilla/ClearOnShutdown.h" #include "mozilla/LoadInfo.h" #include "mozilla/plugins/PluginBridge.h" #include "mozilla/plugins/PluginTypes.h" @@ -150,7 +151,7 @@ LazyLogModule nsPluginLogging::gPluginLog(PLUGIN_LOG_NAME); #define DEFAULT_NUMBER_OF_STOPPED_INSTANCES 50 nsIFile *nsPluginHost::sPluginTempDir; -nsPluginHost *nsPluginHost::sInst; +StaticRefPtr nsPluginHost::sInst; /* to cope with short read */ /* we should probably put this into a global library now that this is the second @@ -296,7 +297,6 @@ nsPluginHost::~nsPluginHost() PLUGIN_LOG(PLUGIN_LOG_ALWAYS,("nsPluginHost::dtor\n")); UnloadPlugins(); - sInst = nullptr; } NS_IMPL_ISUPPORTS(nsPluginHost, @@ -311,13 +311,10 @@ nsPluginHost::GetInst() { if (!sInst) { sInst = new nsPluginHost(); - if (!sInst) - return nullptr; - NS_ADDREF(sInst); + ClearOnShutdown(&sInst); } - RefPtr inst = sInst; - return inst.forget(); + return do_AddRef(sInst); } bool nsPluginHost::IsRunningPlugin(nsPluginTag * aPluginTag) @@ -3381,7 +3378,6 @@ NS_IMETHODIMP nsPluginHost::Observe(nsISupports *aSubject, { if (!strcmp(NS_XPCOM_SHUTDOWN_OBSERVER_ID, aTopic)) { UnloadPlugins(); - sInst->Release(); } if (!strcmp(NS_PREFBRANCH_PREFCHANGE_TOPIC_ID, aTopic)) { mPluginsDisabled = Preferences::GetBool("plugin.disable", false); diff --git a/dom/plugins/base/nsPluginHost.h b/dom/plugins/base/nsPluginHost.h index fdfe74b6ec0f..a7d04203308f 100644 --- a/dom/plugins/base/nsPluginHost.h +++ b/dom/plugins/base/nsPluginHost.h @@ -7,6 +7,7 @@ #define nsPluginHost_h_ #include "mozilla/LinkedList.h" +#include "mozilla/StaticPtr.h" #include "nsIPluginHost.h" #include "nsIObserver.h" @@ -415,7 +416,7 @@ private: // We need to hold a global ptr to ourselves because we register for // two different CIDs for some reason... - static nsPluginHost* sInst; + static mozilla::StaticRefPtr sInst; }; class PluginDestructionGuard : public mozilla::LinkedListElement diff --git a/dom/security/nsCSPContext.cpp b/dom/security/nsCSPContext.cpp index 50b7d2b8457b..35feb78ff5fc 100644 --- a/dom/security/nsCSPContext.cpp +++ b/dom/security/nsCSPContext.cpp @@ -426,6 +426,16 @@ nsCSPContext::AppendPolicy(const nsAString& aPolicyString, aReportOnly, this, aDeliveredViaMetaTag); if (policy) { + if (policy->hasDirective(nsIContentSecurityPolicy::UPGRADE_IF_INSECURE_DIRECTIVE)) { + nsAutoCString selfURIspec, referrer; + if (mSelfURI) { + mSelfURI->GetAsciiSpec(selfURIspec); + } + referrer = NS_ConvertUTF16toUTF8(mReferrer); + CSPCONTEXTLOG(("nsCSPContext::AppendPolicy added UPGRADE_IF_INSECURE_DIRECTIVE self-uri=%s referrer=%s", + selfURIspec.get(), referrer.get())); + } + mPolicies.AppendElement(policy); // reset cache since effective policy changes mShouldLoadCache.Clear(); diff --git a/dom/tests/browser/browser.ini b/dom/tests/browser/browser.ini index f937809c281c..e1d853f1af5b 100644 --- a/dom/tests/browser/browser.ini +++ b/dom/tests/browser/browser.ini @@ -67,11 +67,6 @@ support-files = support-files = test_new_window_from_content_child.html [browser_xhr_sandbox.js] -[browser_prerendering.js] -support-files = - prerender.html - prerender_target.html -skip-if = true || !e10s # Prerendering requires e10s, turned off for e10s-multi Bug 1315042 [browser_noopener.js] support-files = test_noopener_source.html diff --git a/dom/tests/browser/browser_prerendering.js b/dom/tests/browser/browser_prerendering.js deleted file mode 100644 index 18e074af3b5c..000000000000 --- a/dom/tests/browser/browser_prerendering.js +++ /dev/null @@ -1,177 +0,0 @@ -const URL = "https://example.com/browser/dom/tests/browser/prerender.html"; -const PRERENDERED_URL = "https://example.com/browser/dom/tests/browser/prerender_target.html"; - -XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils", - "resource://gre/modules/PlacesUtils.jsm"); - -// Returns a promise which resolves to whether or not PRERENDERED_URL has been visited. -function prerenderedVisited() { - let uri = Services.io.newURI(PRERENDERED_URL); - return new Promise(resolve => { - PlacesUtils.asyncHistory.isURIVisited(uri, (aUri, aIsVisited) => { - resolve(aIsVisited); - }); - }); -} - -// Wait for a process change and then fulfil the promise. -function awaitProcessChange(browser) { - return new Promise(resolve => { - browser.addEventListener("BrowserChangedProcess", function(e) { - info("The browser changed process!"); - resolve(); - }, {once: true}); - }); -} - -// Wait for onbeforeunload dialog, and dismiss it immediately. -function awaitAndCloseBeforeUnloadDialog() { - return new Promise(resolve => { - function onDialogShown(node) { - info("Found onbeforeunload dialog"); - Services.obs.removeObserver(onDialogShown, - "tabmodal-dialog-loaded"); - let dismissButton = node.ui.button0; - dismissButton.click(); - resolve(); - } - - Services.obs.addObserver(onDialogShown, "tabmodal-dialog-loaded"); - }); -} - -add_task(async function() { - await SpecialPowers.pushPrefEnv({ - set: [["browser.groupedhistory.enabled", true], - ["dom.linkPrerender.enabled", true], - ["dom.require_user_interaction_for_beforeunload", false]] - }); -}); - -// Test 1: Creating a prerendered browser, and clicking on a link to that browser, -// will cause changes. -add_task(async function() { - await PlacesUtils.history.clear(); - - let tab = BrowserTestUtils.addTab(gBrowser, URL); - - is(await prerenderedVisited(), false, "Should not have been visited"); - - await new Promise(resolve => { - tab.linkedBrowser.messageManager.addMessageListener("Prerender:Request", function f() { - tab.linkedBrowser.messageManager.removeMessageListener("Prerender:Request", f); - info("Successfully received the prerender request"); - resolve(); - }); - }); - await BrowserTestUtils.switchTab(gBrowser, tab); - - is(await prerenderedVisited(), false, "Should not have been visited"); - - // Check that visibilityState is set correctly in the prerendered tab. We - // check all of the tabs because we have no easy way to tell which one is - // which. - let foundTab; - for (let i = 0; i < gBrowser.tabs.length; ++i) { - foundTab = await ContentTask.spawn(gBrowser.tabs[i].linkedBrowser, null, - () => content.document.visibilityState == "prerender"); - if (foundTab) { - break; - } - } - ok(foundTab, "The prerender tab was found!"); - - let dialogShown = awaitAndCloseBeforeUnloadDialog(); - ContentTask.spawn(tab.linkedBrowser, null, async function() { - let anchor = content.document.querySelector("a"); - anchor.click(); - }); - await dialogShown; - - await awaitProcessChange(tab.linkedBrowser); - - await ContentTask.spawn(tab.linkedBrowser, PRERENDERED_URL, async function(PRERENDERED_URL) { - is(content.document.location.toString(), PRERENDERED_URL); - isnot(content.document.visibilityState, "prerender", - "VisibilityState of formerly prerendered window must not be prerender"); - }); - - is(await prerenderedVisited(), true, "Should have been visited"); - - let groupedSHistory = tab.linkedBrowser.frameLoader.groupedSHistory; - is(groupedSHistory.count, 2, "Check total length of grouped shistory."); - is(gBrowser.tabs.length, 3, "Check number of opened tabs."); - - // We don't touch the about:blank tab opened when browser mochitest runs. - // The tabs under test are the other 2 tabs, so we're expecting 2 TabClose. - let closed = new Promise(resolve => { - let seen = 0; - gBrowser.tabContainer.addEventListener("TabClose", function f() { - if (++seen == 2) { - gBrowser.tabContainer.removeEventListener("TabClose", f); - resolve(); - } - }); - }); - - await BrowserTestUtils.removeTab(tab); - await closed; - - is(await prerenderedVisited(), true, "Should have been visited"); - - is(gBrowser.tabs.length, 1); -}); - -// Test 2: Creating a prerendered browser, and navigating to a different url, -// succeeds, and closes the prerendered browser. -add_task(async function() { - await PlacesUtils.history.clear(); - - let tab = BrowserTestUtils.addTab(gBrowser, URL); - - is(await prerenderedVisited(), false, "Should not have been visited"); - - await Promise.all([ - BrowserTestUtils.browserLoaded(tab.linkedBrowser), - new Promise(resolve => { - tab.linkedBrowser.messageManager.addMessageListener("Prerender:Request", function f() { - tab.linkedBrowser.messageManager.removeMessageListener("Prerender:Request", f); - info("Successfully received the prerender request"); - resolve(); - }); - }), - BrowserTestUtils.switchTab(gBrowser, tab), - ]); - - let dialogShown = awaitAndCloseBeforeUnloadDialog(); - ContentTask.spawn(tab.linkedBrowser, null, async function() { - let anchor = content.document.querySelector("a"); - anchor.setAttribute("href", "data:text/html,something_else"); - anchor.click(); - }); - await dialogShown; - - is(await prerenderedVisited(), false, "Should not have been visited"); - - await Promise.all([ - BrowserTestUtils.browserLoaded(tab.linkedBrowser), - new Promise(resolve => { - let seen = false; - gBrowser.tabContainer.addEventListener("TabClose", function() { - if (!seen) { - seen = true; - info("The tab was closed"); - resolve(); - } - }, {once: true}); - }), - ]); - - await ContentTask.spawn(tab.linkedBrowser, null, async function() { - is(content.document.location.toString(), "data:text/html,something_else"); - }); - - is(await prerenderedVisited(), false, "Should not have been visited"); - - await BrowserTestUtils.removeTab(tab); -}); diff --git a/dom/tests/browser/prerender.html b/dom/tests/browser/prerender.html deleted file mode 100644 index 34e6db9c22df..000000000000 --- a/dom/tests/browser/prerender.html +++ /dev/null @@ -1,7 +0,0 @@ - -Prerender Test - - -clicky here - - diff --git a/dom/tests/browser/prerender_target.html b/dom/tests/browser/prerender_target.html deleted file mode 100644 index 9d39904ac5e7..000000000000 --- a/dom/tests/browser/prerender_target.html +++ /dev/null @@ -1,4 +0,0 @@ - - -

This is just a random HTML document which will be loaded as a target for prerendering.

- diff --git a/dom/tests/mochitest/script/file_blocked_script.sjs b/dom/tests/mochitest/script/file_blocked_script.sjs index a6eea7b450dc..d33db5950b89 100644 --- a/dom/tests/mochitest/script/file_blocked_script.sjs +++ b/dom/tests/mochitest/script/file_blocked_script.sjs @@ -25,8 +25,10 @@ function finishBlockedRequest(request, response, query) response.setStatusLine(request.httpVersion, 200, "OK"); response.setHeader("Cache-Control", "no-cache", false); response.setHeader("Content-Type", "application/javascript", false); - response.write("window.script_executed_" + query[1] + " = true; ok(true, 'Script " + query[1] + " executed');"); + response.write("scriptLoaded('" + query[1] + "');"); response.finish(); + + setGlobalState(undefined, query[1]); } function handleRequest(request, response) @@ -37,7 +39,7 @@ function handleRequest(request, response) var alreadyUnblocked = getGlobalState(query[1]); response.processAsync(); - if (alreadyUnblocked) { + if (alreadyUnblocked === true) { // the unblock request came before the blocked request, just go on and finish synchronously finishBlockedRequest(request, response, query); } else { @@ -52,10 +54,10 @@ function handleRequest(request, response) response.write("\x89PNG"); // just a broken image is enough for our purpose var blockedResponse = getGlobalState(query[1]); - if (!blockedResponse) { + if (blockedResponse === undefined) { // the unblock request came before the blocked request, remember to not block it setGlobalState(true, query[1]); - } else { + } else if (typeof blockedResponse == "object") { finishBlockedRequest(request, blockedResponse, query); } break; diff --git a/dom/tests/mochitest/script/mochitest.ini b/dom/tests/mochitest/script/mochitest.ini index 55fca4f05ae6..86f2826c2c56 100644 --- a/dom/tests/mochitest/script/mochitest.ini +++ b/dom/tests/mochitest/script/mochitest.ini @@ -3,5 +3,4 @@ support-files = file_blocked_script.sjs [test_bug1053321.html] -skip-if = os == 'android' # bug 1386644 [test_whitespace.html] diff --git a/dom/tests/mochitest/script/test_bug1053321.html b/dom/tests/mochitest/script/test_bug1053321.html index b75c973d51c0..c9d8d0e42650 100644 --- a/dom/tests/mochitest/script/test_bug1053321.html +++ b/dom/tests/mochitest/script/test_bug1053321.html @@ -10,32 +10,41 @@ are unexpectedly blocked. + + - diff --git a/dom/tests/moz.build b/dom/tests/moz.build index 5a0fb8fb67a8..49410a2b45a8 100644 --- a/dom/tests/moz.build +++ b/dom/tests/moz.build @@ -31,9 +31,6 @@ with Files("browser/browser_cancel_keydown_keypress_event.js"): with Files("browser/*local*"): BUG_COMPONENT = ("Core", "DOM") -with Files("browser/*prerender*"): - BUG_COMPONENT = ("Core", "Document Navigation") - with Files("browser/browser_test_focus_after_modal_state.js"): BUG_COMPONENT = ("Core", "Event Handling") diff --git a/dom/webidl/AudioBufferSourceNode.webidl b/dom/webidl/AudioBufferSourceNode.webidl index 455b269cf4a2..1c30db3da2d6 100644 --- a/dom/webidl/AudioBufferSourceNode.webidl +++ b/dom/webidl/AudioBufferSourceNode.webidl @@ -32,7 +32,7 @@ interface AudioBufferSourceNode : AudioScheduledSourceNode { attribute double loopStart; attribute double loopEnd; - [Throws, UnsafeInPrerendering] + [Throws] void start(optional double when = 0, optional double grainOffset = 0, optional double grainDuration); }; diff --git a/dom/webidl/AudioContext.webidl b/dom/webidl/AudioContext.webidl index 8d564d54d8d6..d81438501180 100644 --- a/dom/webidl/AudioContext.webidl +++ b/dom/webidl/AudioContext.webidl @@ -22,10 +22,10 @@ interface AudioContext : BaseAudioContext { [Throws] Promise close(); - [NewObject, Throws, UnsafeInPrerendering] + [NewObject, Throws] MediaElementAudioSourceNode createMediaElementSource(HTMLMediaElement mediaElement); - [NewObject, Throws, UnsafeInPrerendering] + [NewObject, Throws] MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream); // Bug 1324548: MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (AudioMediaStreamTrack mediaStreamTrack); diff --git a/dom/webidl/AudioScheduledSourceNode.webidl b/dom/webidl/AudioScheduledSourceNode.webidl index 6a5f381a06ee..2acf6373b32c 100644 --- a/dom/webidl/AudioScheduledSourceNode.webidl +++ b/dom/webidl/AudioScheduledSourceNode.webidl @@ -12,9 +12,9 @@ interface AudioScheduledSourceNode : AudioNode { attribute EventHandler onended; - [Throws, UnsafeInPrerendering] + [Throws] void start (optional double when = 0); - [Throws, UnsafeInPrerendering] + [Throws] void stop (optional double when = 0); }; diff --git a/dom/webidl/Document.webidl b/dom/webidl/Document.webidl index 517d4bab2b09..8d2a7ac085db 100644 --- a/dom/webidl/Document.webidl +++ b/dom/webidl/Document.webidl @@ -12,7 +12,7 @@ interface URI; interface nsIDocShell; interface nsILoadGroup; -enum VisibilityState { "hidden", "visible", "prerender" }; +enum VisibilityState { "hidden", "visible" }; /* https://dom.spec.whatwg.org/#dictdef-elementcreationoptions */ dictionary ElementCreationOptions { diff --git a/dom/webidl/Element.webidl b/dom/webidl/Element.webidl index fa29a095d0ca..ad75312b2bfa 100644 --- a/dom/webidl/Element.webidl +++ b/dom/webidl/Element.webidl @@ -103,7 +103,7 @@ interface Element : Node { boolean mozMatchesSelector(DOMString selector); // Pointer events methods. - [Throws, Pref="dom.w3c_pointer_events.enabled", UnsafeInPrerendering] + [Throws, Pref="dom.w3c_pointer_events.enabled"] void setPointerCapture(long pointerId); [Throws, Pref="dom.w3c_pointer_events.enabled"] @@ -276,14 +276,14 @@ Element implements GeometryUtils; // https://fullscreen.spec.whatwg.org/#api partial interface Element { - [Throws, UnsafeInPrerendering, Func="nsDocument::IsUnprefixedFullscreenEnabled", NeedsCallerType] + [Throws, Func="nsDocument::IsUnprefixedFullscreenEnabled", NeedsCallerType] void requestFullscreen(); - [Throws, UnsafeInPrerendering, BinaryName="requestFullscreen", NeedsCallerType] + [Throws, BinaryName="requestFullscreen", NeedsCallerType] void mozRequestFullScreen(); }; // https://w3c.github.io/pointerlock/#extensions-to-the-element-interface partial interface Element { - [UnsafeInPrerendering, NeedsCallerType] + [NeedsCallerType] void requestPointerLock(); }; diff --git a/dom/webidl/External.webidl b/dom/webidl/External.webidl index 0e9ab854328a..91be6163f74a 100644 --- a/dom/webidl/External.webidl +++ b/dom/webidl/External.webidl @@ -7,6 +7,6 @@ [NoInterfaceObject, JSImplementation="@mozilla.org/sidebar;1"] interface External { - [UnsafeInPrerendering] void AddSearchProvider(DOMString aDescriptionURL); + void AddSearchProvider(DOMString aDescriptionURL); unsigned long IsSearchProviderInstalled(DOMString aSearchURL); }; diff --git a/dom/webidl/FrameLoader.webidl b/dom/webidl/FrameLoader.webidl index cd493fe5284d..e136917446d2 100644 --- a/dom/webidl/FrameLoader.webidl +++ b/dom/webidl/FrameLoader.webidl @@ -8,9 +8,7 @@ interface LoadContext; interface TabParent; interface URI; interface nsIDocShell; -interface nsIGroupedSHistory; interface nsIMessageSender; -interface nsIPartialSHistory; interface nsIPrintSettings; interface nsIWebBrowserPersistDocumentReceiver; interface nsIWebProgressListener; @@ -50,35 +48,6 @@ interface FrameLoader { [Throws] void loadURI(URI aURI, optional boolean originalSrc = false); - /** - * Puts the frameloader in prerendering mode. - */ - [Throws] - void setIsPrerendered(); - - /** - * Make the prerendered frameloader being active (and clear isPrerendered flag). - */ - [Throws] - void makePrerenderedLoaderActive(); - - /** - * Append partial session history from another frame loader. - * - * @return A promise which will be resolved when the navigation is complete. - */ - [Throws] - Promise appendPartialSHistoryAndSwap(FrameLoader aOther); - - /** - * If grouped session history is applied, use this function to navigate to - * an entry of session history object of another frameloader. - * - * @return A promise which will be resolved when the navigation is complete. - */ - [Throws] - Promise requestGroupedHistoryNavigation(unsigned long aGlobalIndex); - /** * Adds a blocking promise for the current cross process navigation. * This method can only be called while the "BrowserWillChangeProcess" event @@ -180,12 +149,6 @@ interface FrameLoader { nsIPrintSettings aPrintSettings, optional nsIWebProgressListener? aProgressListener = null); - /** - * Ensure that the current nsIFrameLoader has a GroupedSHistory. - */ - [Throws] - nsIGroupedSHistory ensureGroupedSHistory(); - /** * The default event mode automatically forwards the events * handled in EventStateManager::HandleCrossProcessEvent to @@ -261,17 +224,6 @@ interface FrameLoader { [Pure] readonly attribute unsigned long lazyHeight; - /** - * The partial session history. - */ - readonly attribute nsIPartialSHistory? partialSHistory; - - /** - * The grouped session history composed of multiple session history objects - * across root docshells. - */ - readonly attribute nsIGroupedSHistory? groupedSHistory; - /** * Is `true` if the frameloader is dead (destroy has been called on it) */ diff --git a/dom/webidl/HTMLCanvasElement.webidl b/dom/webidl/HTMLCanvasElement.webidl index 6fcc12e1be12..4d8c93a31866 100644 --- a/dom/webidl/HTMLCanvasElement.webidl +++ b/dom/webidl/HTMLCanvasElement.webidl @@ -45,7 +45,7 @@ partial interface HTMLCanvasElement { attribute PrintCallback? mozPrintCallback; - [Throws, UnsafeInPrerendering, Pref="canvas.capturestream.enabled"] + [Throws, Pref="canvas.capturestream.enabled"] CanvasCaptureMediaStream captureStream(optional double frameRate); }; diff --git a/dom/webidl/HTMLMediaElement.webidl b/dom/webidl/HTMLMediaElement.webidl index b6f61f099ca1..c33737e99e9f 100644 --- a/dom/webidl/HTMLMediaElement.webidl +++ b/dom/webidl/HTMLMediaElement.webidl @@ -124,9 +124,9 @@ partial interface HTMLMediaElement { [Func="IsChromeOrXBL"] attribute boolean mozIsCasting; // Mozilla extension: stream capture - [Throws, UnsafeInPrerendering] + [Throws] MediaStream mozCaptureStream(); - [Throws, UnsafeInPrerendering] + [Throws] MediaStream mozCaptureStreamUntilEnded(); readonly attribute boolean mozAudioCaptured; diff --git a/dom/webidl/HTMLObjectElement.webidl b/dom/webidl/HTMLObjectElement.webidl index 1982846d30cd..b5bcddc816e6 100644 --- a/dom/webidl/HTMLObjectElement.webidl +++ b/dom/webidl/HTMLObjectElement.webidl @@ -13,7 +13,7 @@ */ // http://www.whatwg.org/specs/web-apps/current-work/#the-object-element -[HTMLConstructor, NeedResolve, UnsafeInPrerendering] +[HTMLConstructor, NeedResolve] interface HTMLObjectElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute DOMString data; diff --git a/dom/webidl/History.webidl b/dom/webidl/History.webidl index 48032212a0f4..fef868018295 100644 --- a/dom/webidl/History.webidl +++ b/dom/webidl/History.webidl @@ -20,11 +20,11 @@ interface History { attribute ScrollRestoration scrollRestoration; [Throws] readonly attribute any state; - [Throws, UnsafeInPrerendering] + [Throws] void go(optional long delta = 0); - [Throws, UnsafeInPrerendering] + [Throws] void back(); - [Throws, UnsafeInPrerendering] + [Throws] void forward(); [Throws] void pushState(any data, DOMString title, optional DOMString? url = null); diff --git a/dom/webidl/Location.webidl b/dom/webidl/Location.webidl index d483191fb7a0..7381f6d1c434 100644 --- a/dom/webidl/Location.webidl +++ b/dom/webidl/Location.webidl @@ -39,14 +39,14 @@ interface Location { [Throws, NeedsSubjectPrincipal] attribute USVString hash; - [Throws, UnsafeInPrerendering, NeedsSubjectPrincipal] + [Throws, NeedsSubjectPrincipal] void assign(USVString url); - [Throws, CrossOriginCallable, UnsafeInPrerendering, NeedsSubjectPrincipal] + [Throws, CrossOriginCallable, NeedsSubjectPrincipal] void replace(USVString url); // XXXbz there is no forceget argument in the spec! See bug 1037721. - [Throws, UnsafeInPrerendering, NeedsSubjectPrincipal] + [Throws, NeedsSubjectPrincipal] void reload(optional boolean forceget = false); // Bug 1085214 [SameObject] readonly attribute USVString[] ancestorOrigins; diff --git a/dom/webidl/Navigator.webidl b/dom/webidl/Navigator.webidl index 562e0c5217fa..90ce16a6c459 100644 --- a/dom/webidl/Navigator.webidl +++ b/dom/webidl/Navigator.webidl @@ -237,7 +237,7 @@ partial interface Navigator { #ifdef MOZ_TIME_MANAGER // nsIDOMMozNavigatorTime partial interface Navigator { - [Throws, ChromeOnly, UnsafeInPrerendering] + [Throws, ChromeOnly] readonly attribute MozTimeManager mozTime; }; #endif // MOZ_TIME_MANAGER @@ -251,7 +251,7 @@ partial interface Navigator { // Deprecated. Use mediaDevices.getUserMedia instead. [Deprecated="NavigatorGetUserMedia", Throws, - Func="Navigator::HasUserMediaSupport", UnsafeInPrerendering, + Func="Navigator::HasUserMediaSupport", NeedsCallerType] void mozGetUserMedia(MediaStreamConstraints constraints, NavigatorUserMediaSuccessCallback successCallback, diff --git a/dom/webidl/Notification.webidl b/dom/webidl/Notification.webidl index 62499a4a525a..4c243bab2646 100644 --- a/dom/webidl/Notification.webidl +++ b/dom/webidl/Notification.webidl @@ -13,8 +13,7 @@ [Constructor(DOMString title, optional NotificationOptions options), Exposed=(Window,Worker), - Func="mozilla::dom::Notification::PrefEnabled", - UnsafeInPrerendering] + Func="mozilla::dom::Notification::PrefEnabled"] interface Notification : EventTarget { [GetterThrows] static readonly attribute NotificationPermission permission; diff --git a/dom/webidl/RTCPeerConnection.webidl b/dom/webidl/RTCPeerConnection.webidl index 3dc13cc25b08..5c5c9133fa84 100644 --- a/dom/webidl/RTCPeerConnection.webidl +++ b/dom/webidl/RTCPeerConnection.webidl @@ -113,9 +113,9 @@ interface RTCPeerConnection : EventTarget { attribute DOMString id; RTCConfiguration getConfiguration (); - [UnsafeInPrerendering, Deprecated="RTCPeerConnectionGetStreams"] + [Deprecated="RTCPeerConnectionGetStreams"] sequence getLocalStreams (); - [UnsafeInPrerendering, Deprecated="RTCPeerConnectionGetStreams"] + [Deprecated="RTCPeerConnectionGetStreams"] sequence getRemoteStreams (); void addStream (MediaStream stream); diff --git a/dom/webidl/Screen.webidl b/dom/webidl/Screen.webidl index 2ef3114e141b..225389dae379 100644 --- a/dom/webidl/Screen.webidl +++ b/dom/webidl/Screen.webidl @@ -43,16 +43,15 @@ interface Screen : EventTarget { * DEPRECATED, use ScreenOrientation API instead. * Lock screen orientation to the specified type. */ - [Throws, UnsafeInPrerendering] + [Throws] boolean mozLockOrientation(DOMString orientation); - [Throws, UnsafeInPrerendering] + [Throws] boolean mozLockOrientation(sequence orientation); /** * DEPRECATED, use ScreenOrientation API instead. * Unlock the screen orientation. */ - [UnsafeInPrerendering] void mozUnlockOrientation(); }; diff --git a/dom/webidl/ScreenOrientation.webidl b/dom/webidl/ScreenOrientation.webidl index 8c47b8176c44..0f0b6736e4b6 100644 --- a/dom/webidl/ScreenOrientation.webidl +++ b/dom/webidl/ScreenOrientation.webidl @@ -28,7 +28,6 @@ enum OrientationLockType { "landscape-secondary" }; -[UnsafeInPrerendering] interface ScreenOrientation : EventTarget { [Throws] Promise lock(OrientationLockType orientation); diff --git a/dom/webidl/SpeechRecognition.webidl b/dom/webidl/SpeechRecognition.webidl index 68a1a4a15ddc..3c32f3769d6f 100644 --- a/dom/webidl/SpeechRecognition.webidl +++ b/dom/webidl/SpeechRecognition.webidl @@ -25,7 +25,7 @@ interface SpeechRecognition : EventTarget { attribute DOMString serviceURI; // methods to drive the speech interaction - [Throws, UnsafeInPrerendering, NeedsCallerType] + [Throws, NeedsCallerType] void start(optional MediaStream stream); void stop(); void abort(); diff --git a/dom/webidl/SpeechSynthesis.webidl b/dom/webidl/SpeechSynthesis.webidl index 9cc3a061e440..f57a07b8bb50 100644 --- a/dom/webidl/SpeechSynthesis.webidl +++ b/dom/webidl/SpeechSynthesis.webidl @@ -16,11 +16,9 @@ interface SpeechSynthesis : EventTarget{ readonly attribute boolean speaking; readonly attribute boolean paused; - [UnsafeInPrerendering] void speak(SpeechSynthesisUtterance utterance); void cancel(); void pause(); - [UnsafeInPrerendering] void resume(); sequence getVoices(); diff --git a/dom/webidl/Window.webidl b/dom/webidl/Window.webidl index 64143c904444..00accd0b7f71 100644 --- a/dom/webidl/Window.webidl +++ b/dom/webidl/Window.webidl @@ -48,10 +48,10 @@ interface XULControllers; [Replaceable, Throws] readonly attribute BarProp statusbar; [Replaceable, Throws] readonly attribute BarProp toolbar; [Throws] attribute DOMString status; - [Throws, CrossOriginCallable, UnsafeInPrerendering] void close(); + [Throws, CrossOriginCallable] void close(); [Throws, CrossOriginReadable] readonly attribute boolean closed; [Throws] void stop(); - [Throws, CrossOriginCallable, UnsafeInPrerendering] void focus(); + [Throws, CrossOriginCallable] void focus(); [Throws, CrossOriginCallable] void blur(); // other browsing contexts @@ -64,7 +64,7 @@ interface XULControllers; [Replaceable, Throws, CrossOriginReadable] readonly attribute WindowProxy? parent; [Throws, NeedsSubjectPrincipal] readonly attribute Element? frameElement; //[Throws] WindowProxy? open(optional USVString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = ""); - [Throws, UnsafeInPrerendering] WindowProxy? open(optional DOMString url = "", optional DOMString target = "", [TreatNullAs=EmptyString] optional DOMString features = ""); + [Throws] WindowProxy? open(optional DOMString url = "", optional DOMString target = "", [TreatNullAs=EmptyString] optional DOMString features = ""); getter object (DOMString name); // the user agent @@ -75,11 +75,11 @@ interface XULControllers; [Throws, Pref="browser.cache.offline.enable"] readonly attribute ApplicationCache applicationCache; // user prompts - [Throws, UnsafeInPrerendering, NeedsSubjectPrincipal] void alert(); - [Throws, UnsafeInPrerendering, NeedsSubjectPrincipal] void alert(DOMString message); - [Throws, UnsafeInPrerendering, NeedsSubjectPrincipal] boolean confirm(optional DOMString message = ""); - [Throws, UnsafeInPrerendering, NeedsSubjectPrincipal] DOMString? prompt(optional DOMString message = "", optional DOMString default = ""); - [Throws, UnsafeInPrerendering, Func="nsGlobalWindowInner::IsWindowPrintEnabled"] + [Throws, NeedsSubjectPrincipal] void alert(); + [Throws, NeedsSubjectPrincipal] void alert(DOMString message); + [Throws, NeedsSubjectPrincipal] boolean confirm(optional DOMString message = ""); + [Throws, NeedsSubjectPrincipal] DOMString? prompt(optional DOMString message = "", optional DOMString default = ""); + [Throws, Func="nsGlobalWindowInner::IsWindowPrintEnabled"] void print(); [Throws, CrossOriginCallable, NeedsSubjectPrincipal] @@ -154,10 +154,10 @@ partial interface Window { //[Throws] void moveBy(double x, double y); //[Throws] void resizeTo(double x, double y); //[Throws] void resizeBy(double x, double y); - [Throws, UnsafeInPrerendering, NeedsCallerType] void moveTo(long x, long y); - [Throws, UnsafeInPrerendering, NeedsCallerType] void moveBy(long x, long y); - [Throws, UnsafeInPrerendering, NeedsCallerType] void resizeTo(long x, long y); - [Throws, UnsafeInPrerendering, NeedsCallerType] void resizeBy(long x, long y); + [Throws, NeedsCallerType] void moveTo(long x, long y); + [Throws, NeedsCallerType] void moveBy(long x, long y); + [Throws, NeedsCallerType] void resizeTo(long x, long y); + [Throws, NeedsCallerType] void resizeBy(long x, long y); // viewport // These are writable because we allow chrome to write them. And they need @@ -248,7 +248,7 @@ partial interface Window { /** * Method for sizing this window to the content in the window. */ - [Throws, UnsafeInPrerendering, NeedsCallerType] void sizeToContent(); + [Throws, NeedsCallerType] void sizeToContent(); // XXX Shouldn't this be in nsIDOMChromeWindow? [ChromeOnly, Replaceable, Throws] readonly attribute XULControllers controllers; @@ -269,11 +269,11 @@ partial interface Window { [Replaceable, Throws] readonly attribute long scrollMaxX; [Replaceable, Throws] readonly attribute long scrollMaxY; - [Throws, UnsafeInPrerendering] attribute boolean fullScreen; + [Throws] attribute boolean fullScreen; - [Throws, ChromeOnly, UnsafeInPrerendering] void back(); - [Throws, ChromeOnly, UnsafeInPrerendering] void forward(); - [Throws, ChromeOnly, UnsafeInPrerendering, NeedsSubjectPrincipal] void home(); + [Throws, ChromeOnly] void back(); + [Throws, ChromeOnly] void forward(); + [Throws, ChromeOnly, NeedsSubjectPrincipal] void home(); // XXX Should this be in nsIDOMChromeWindow? void updateCommands(DOMString action, @@ -289,13 +289,13 @@ partial interface Window { * @param searchInFrames: should we search through all frames * @param showDialog: should we show the Find dialog */ - [Throws, UnsafeInPrerendering] boolean find(optional DOMString str = "", - optional boolean caseSensitive = false, - optional boolean backwards = false, - optional boolean wrapAround = false, - optional boolean wholeWord = false, - optional boolean searchInFrames = false, - optional boolean showDialog = false); + [Throws] boolean find(optional DOMString str = "", + optional boolean caseSensitive = false, + optional boolean backwards = false, + optional boolean wrapAround = false, + optional boolean wholeWord = false, + optional boolean searchInFrames = false, + optional boolean showDialog = false); /** * Returns the number of times this document for this window has @@ -324,10 +324,10 @@ partial interface Window { * arguments, plus any additional arguments are passed on as * arguments on the dialog's window object (window.arguments). */ - [Throws, ChromeOnly, UnsafeInPrerendering] WindowProxy? openDialog(optional DOMString url = "", - optional DOMString name = "", - optional DOMString options = "", - any... extraArguments); + [Throws, ChromeOnly] WindowProxy? openDialog(optional DOMString url = "", + optional DOMString name = "", + optional DOMString options = "", + any... extraArguments); [ #ifdef NIGHTLY_BUILD @@ -408,11 +408,11 @@ partial interface Window { [Throws, Func="nsGlobalWindowInner::IsPrivilegedChromeWindow"] void setCursor(DOMString cursor); - [Func="nsGlobalWindowInner::IsPrivilegedChromeWindow", UnsafeInPrerendering] + [Func="nsGlobalWindowInner::IsPrivilegedChromeWindow"] void maximize(); - [Func="nsGlobalWindowInner::IsPrivilegedChromeWindow", UnsafeInPrerendering] + [Func="nsGlobalWindowInner::IsPrivilegedChromeWindow"] void minimize(); - [Func="nsGlobalWindowInner::IsPrivilegedChromeWindow", UnsafeInPrerendering] + [Func="nsGlobalWindowInner::IsPrivilegedChromeWindow"] void restore(); /** diff --git a/dom/webidl/XULElement.webidl b/dom/webidl/XULElement.webidl index df81a8e6b1eb..3314d28f8c96 100644 --- a/dom/webidl/XULElement.webidl +++ b/dom/webidl/XULElement.webidl @@ -109,9 +109,6 @@ interface MozFrameLoaderOwner { [ChromeOnly] readonly attribute FrameLoader? frameLoader; - [ChromeOnly] - void setIsPrerendered(); - [ChromeOnly, Throws] void presetOpenerWindow(WindowProxy? window); diff --git a/dom/workers/WorkerDebuggerManager.cpp b/dom/workers/WorkerDebuggerManager.cpp index 210c3a0b1f3c..dfb907ac20c3 100644 --- a/dom/workers/WorkerDebuggerManager.cpp +++ b/dom/workers/WorkerDebuggerManager.cpp @@ -9,6 +9,7 @@ #include "nsISimpleEnumerator.h" #include "mozilla/ClearOnShutdown.h" +#include "mozilla/StaticPtr.h" #include "WorkerPrivate.h" @@ -69,8 +70,7 @@ private: } }; -// Does not hold an owning reference. -static WorkerDebuggerManager* gWorkerDebuggerManager; +static StaticRefPtr gWorkerDebuggerManager; } /* anonymous namespace */ @@ -143,10 +143,11 @@ WorkerDebuggerManager::GetOrCreate() if (!gWorkerDebuggerManager) { // The observer service now owns us until shutdown. gWorkerDebuggerManager = new WorkerDebuggerManager(); - if (NS_FAILED(gWorkerDebuggerManager->Init())) { + if (NS_SUCCEEDED(gWorkerDebuggerManager->Init())) { + ClearOnShutdown(&gWorkerDebuggerManager); + } else { NS_WARNING("Failed to initialize worker debugger manager!"); gWorkerDebuggerManager = nullptr; - return nullptr; } } diff --git a/dom/xul/nsXULElement.cpp b/dom/xul/nsXULElement.cpp index f8e59ac3d117..674b686c9964 100644 --- a/dom/xul/nsXULElement.cpp +++ b/dom/xul/nsXULElement.cpp @@ -1431,12 +1431,6 @@ nsXULElement::LoadSrc() (new AsyncEventDispatcher(this, NS_LITERAL_STRING("XULFrameLoaderCreated"), /* aBubbles */ true))->RunDOMEventWhenSafe(); - - if (AttrValueIs(kNameSpaceID_None, nsGkAtoms::prerendered, - NS_LITERAL_STRING("true"), eIgnoreCase)) { - nsresult rv = frameLoader->SetIsPrerendered(); - NS_ENSURE_SUCCESS(rv,rv); - } } return frameLoader->LoadFrame(false); @@ -1469,13 +1463,6 @@ nsXULElement::PresetOpenerWindow(mozIDOMWindowProxy* aWindow, ErrorResult& aRv) slots->mFrameLoaderOrOpener = aWindow; } -nsresult -nsXULElement::SetIsPrerendered() -{ - return SetAttr(kNameSpaceID_None, nsGkAtoms::prerendered, nullptr, - NS_LITERAL_STRING("true"), true); -} - void nsXULElement::InternalSetFrameLoader(nsIFrameLoader* aNewFrameLoader) { diff --git a/dom/xul/nsXULElement.h b/dom/xul/nsXULElement.h index 453d8b65bc63..34cf6880c9b4 100644 --- a/dom/xul/nsXULElement.h +++ b/dom/xul/nsXULElement.h @@ -411,7 +411,6 @@ public: nsresult GetFrameLoaderXPCOM(nsIFrameLoader** aFrameLoader); void PresetOpenerWindow(mozIDOMWindowProxy* aWindow, ErrorResult& aRv); - nsresult SetIsPrerendered(); virtual void RecompileScriptEventListeners() override; diff --git a/dom/xul/test/1061864.html b/dom/xul/test/1061864.html deleted file mode 100644 index ec8091a6bd48..000000000000 --- a/dom/xul/test/1061864.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/dom/xul/test/chrome.ini b/dom/xul/test/chrome.ini index 43a5dda966f1..94203a364e4f 100644 --- a/dom/xul/test/chrome.ini +++ b/dom/xul/test/chrome.ini @@ -6,9 +6,6 @@ support-files = overlay2_bug335375.xul window_bug583948.xul window_bug757137.xul - 1061864.html - file_bug1271240.xul - file_bug1069772.xul [test_bug199692.xul] [test_bug233643.xul] @@ -27,12 +24,6 @@ support-files = [test_bug640158_overlay_persist.xul] [test_bug757137.xul] [test_bug775972.xul] -[test_bug1061864_1.xul] -[test_bug1061864_2.xul] [test_bug1070049_throw_from_script.xul] [test_import_xul_to_content.xul] -[test_bug1271240.xul] -skip-if = os == "android" -[test_bug1069772.xul] -skip-if = os == "android" [test_bug1290965.xul] diff --git a/dom/xul/test/file_bug1069772.xul b/dom/xul/test/file_bug1069772.xul deleted file mode 100644 index 2cd9050fa9bf..000000000000 --- a/dom/xul/test/file_bug1069772.xul +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - diff --git a/dom/xul/test/file_bug1271240.xul b/dom/xul/test/file_bug1271240.xul deleted file mode 100644 index ad27f8609e66..000000000000 --- a/dom/xul/test/file_bug1271240.xul +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - diff --git a/dom/xul/test/test_bug1061864_1.xul b/dom/xul/test/test_bug1061864_1.xul deleted file mode 100644 index ea7beebb988e..000000000000 --- a/dom/xul/test/test_bug1061864_1.xul +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - Mozilla Bug 1061864 - - diff --git a/dom/xul/test/test_bug1061864_2.xul b/dom/xul/test/test_bug1061864_2.xul deleted file mode 100644 index 761b40dde7db..000000000000 --- a/dom/xul/test/test_bug1061864_2.xul +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - Mozilla Bug 1061864 - - diff --git a/dom/xul/test/test_bug1069772.xul b/dom/xul/test/test_bug1069772.xul deleted file mode 100644 index 173113fdb65f..000000000000 --- a/dom/xul/test/test_bug1069772.xul +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - diff --git a/dom/xul/test/test_bug1271240.xul b/dom/xul/test/test_bug1271240.xul deleted file mode 100644 index cfba37523918..000000000000 --- a/dom/xul/test/test_bug1271240.xul +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - diff --git a/extensions/cookie/nsPermissionManager.cpp b/extensions/cookie/nsPermissionManager.cpp index abd81aa068b3..b2a550f91e15 100644 --- a/extensions/cookie/nsPermissionManager.cpp +++ b/extensions/cookie/nsPermissionManager.cpp @@ -929,7 +929,10 @@ nsPermissionManager::~nsPermissionManager() mPermissionKeyPromiseMap.Clear(); RemoveAllFromMemory(); - gPermissionManager = nullptr; + if (gPermissionManager) { + MOZ_ASSERT(gPermissionManager == this); + gPermissionManager = nullptr; + } } // static @@ -948,11 +951,12 @@ nsPermissionManager::GetXPCOMSingleton() // See bug 209571. auto permManager = MakeRefPtr(); if (NS_SUCCEEDED(permManager->Init())) { + // Note: This is cleared in the nsPermissionManager destructor. gPermissionManager = permManager.get(); return permManager.forget(); } - return nullptr;; + return nullptr; } nsresult diff --git a/js/src/builtin/Intl.cpp b/js/src/builtin/Intl.cpp index cf49a5d21922..37c2cf54211a 100644 --- a/js/src/builtin/Intl.cpp +++ b/js/src/builtin/Intl.cpp @@ -30,6 +30,7 @@ #include "builtin/IntlTimeZoneData.h" #include "ds/Sort.h" +#include "js/Date.h" #if ENABLE_INTL_API #include "unicode/ucal.h" #include "unicode/ucol.h" @@ -67,6 +68,9 @@ using mozilla::PodCopy; using mozilla::Range; using mozilla::RangedPtr; +using JS::ClippedTime; +using JS::TimeClip; + /* * Pervasive note: ICU functions taking a UErrorCode in/out parameter always * test that parameter before doing anything, and will return immediately if @@ -3341,15 +3345,12 @@ NewUDateFormat(JSContext* cx, Handle dateTimeFormat) } static bool -intl_FormatDateTime(JSContext* cx, UDateFormat* df, double x, MutableHandleValue result) +intl_FormatDateTime(JSContext* cx, UDateFormat* df, ClippedTime x, MutableHandleValue result) { - if (!IsFinite(x)) { - JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_DATE_NOT_FINITE); - return false; - } + MOZ_ASSERT(x.isValid()); JSString* str = Call(cx, [df, x](UChar* chars, int32_t size, UErrorCode* status) { - return udat_format(df, x, chars, size, nullptr, status); + return udat_format(df, x.toDouble(), chars, size, nullptr, status); }); if (!str) return false; @@ -3445,12 +3446,10 @@ GetFieldTypeForFormatField(UDateFormatField fieldName) } static bool -intl_FormatToPartsDateTime(JSContext* cx, UDateFormat* df, double x, MutableHandleValue result) +intl_FormatToPartsDateTime(JSContext* cx, UDateFormat* df, ClippedTime x, + MutableHandleValue result) { - if (!IsFinite(x)) { - JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_DATE_NOT_FINITE); - return false; - } + MOZ_ASSERT(x.isValid()); UErrorCode status = U_ZERO_ERROR; UFieldPositionIterator* fpositer = ufieldpositer_open(&status); @@ -3462,7 +3461,7 @@ intl_FormatToPartsDateTime(JSContext* cx, UDateFormat* df, double x, MutableHand RootedString overallResult(cx); overallResult = Call(cx, [df, x, fpositer](UChar* chars, int32_t size, UErrorCode* status) { - return udat_formatForFields(df, x, chars, size, fpositer, status); + return udat_formatForFields(df, x.toDouble(), chars, size, fpositer, status); }); if (!overallResult) return false; @@ -3561,6 +3560,12 @@ js::intl_FormatDateTime(JSContext* cx, unsigned argc, Value* vp) Rooted dateTimeFormat(cx); dateTimeFormat = &args[0].toObject().as(); + ClippedTime x = TimeClip(args[1].toNumber()); + if (!x.isValid()) { + JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_DATE_NOT_FINITE); + return false; + } + // Obtain a cached UDateFormat object. void* priv = dateTimeFormat->getReservedSlot(DateTimeFormatObject::UDATE_FORMAT_SLOT).toPrivate(); @@ -3574,8 +3579,8 @@ js::intl_FormatDateTime(JSContext* cx, unsigned argc, Value* vp) // Use the UDateFormat to actually format the time stamp. return args[2].toBoolean() - ? intl_FormatToPartsDateTime(cx, df, args[1].toNumber(), args.rval()) - : intl_FormatDateTime(cx, df, args[1].toNumber(), args.rval()); + ? intl_FormatToPartsDateTime(cx, df, x, args.rval()) + : intl_FormatDateTime(cx, df, x, args.rval()); } diff --git a/js/src/jit/CacheIR.h b/js/src/jit/CacheIR.h index 5baa60a502e6..62e7ead7f922 100644 --- a/js/src/jit/CacheIR.h +++ b/js/src/jit/CacheIR.h @@ -323,15 +323,12 @@ class StubField } private: - union { - uintptr_t dataWord_; - uint64_t dataInt64_; - }; + uint64_t data_; Type type_; public: StubField(uint64_t data, Type type) - : dataInt64_(data), type_(type) + : data_(data), type_(type) { MOZ_ASSERT_IF(sizeIsWord(), data <= UINTPTR_MAX); } @@ -341,8 +338,8 @@ class StubField bool sizeIsWord() const { return sizeIsWord(type_); } bool sizeIsInt64() const { return sizeIsInt64(type_); } - uintptr_t asWord() const { MOZ_ASSERT(sizeIsWord()); return dataWord_; } - uint64_t asInt64() const { MOZ_ASSERT(sizeIsInt64()); return dataInt64_; } + uintptr_t asWord() const { MOZ_ASSERT(sizeIsWord()); return uintptr_t(data_); } + uint64_t asInt64() const { MOZ_ASSERT(sizeIsInt64()); return data_; } } JS_HAZ_GC_POINTER; // We use this enum as GuardClass operand, instead of storing Class* pointers diff --git a/js/src/jit/MIR.cpp b/js/src/jit/MIR.cpp index cc7ac241c817..ec07b54b6ddd 100644 --- a/js/src/jit/MIR.cpp +++ b/js/src/jit/MIR.cpp @@ -1038,10 +1038,18 @@ MConstant::assertInitializedPayload() const switch (type()) { case MIRType::Int32: case MIRType::Float32: +#if MOZ_LITTLE_ENDIAN MOZ_ASSERT((payload_.asBits >> 32) == 0); +#else + MOZ_ASSERT((payload_.asBits << 32) == 0); +#endif break; case MIRType::Boolean: +#if MOZ_LITTLE_ENDIAN MOZ_ASSERT((payload_.asBits >> 1) == 0); +#else + MOZ_ASSERT((payload_.asBits & ~(1ULL << 56)) == 0); +#endif break; case MIRType::Double: case MIRType::Int64: @@ -1049,7 +1057,11 @@ MConstant::assertInitializedPayload() const case MIRType::String: case MIRType::Object: case MIRType::Symbol: +#if MOZ_LITTLE_ENDIAN MOZ_ASSERT_IF(JS_BITS_PER_WORD == 32, (payload_.asBits >> 32) == 0); +#else + MOZ_ASSERT_IF(JS_BITS_PER_WORD == 32, (payload_.asBits << 32) == 0); +#endif break; default: MOZ_ASSERT(IsNullOrUndefined(type()) || IsMagicType(type())); diff --git a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp index 7e492a5da9bf..a3c1ce57a9a4 100644 --- a/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp +++ b/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp @@ -552,6 +552,7 @@ void MacroAssemblerMIPSShared::ma_load_unaligned(const wasm::MemoryAccessDesc& access, Register dest, const BaseIndex& src, Register temp, LoadStoreSize size, LoadStoreExtension extension) { + MOZ_ASSERT(MOZ_LITTLE_ENDIAN, "Wasm-only; wasm is disabled on big-endian."); int16_t lowOffset, hiOffset; Register base; @@ -704,6 +705,7 @@ void MacroAssemblerMIPSShared::ma_store_unaligned(const wasm::MemoryAccessDesc& access, Register data, const BaseIndex& dest, Register temp, LoadStoreSize size, LoadStoreExtension extension) { + MOZ_ASSERT(MOZ_LITTLE_ENDIAN, "Wasm-only; wasm is disabled on big-endian."); int16_t lowOffset, hiOffset; Register base; diff --git a/js/src/jit/mips32/Architecture-mips32.h b/js/src/jit/mips32/Architecture-mips32.h index 517b63b68fc7..85a9c8058d25 100644 --- a/js/src/jit/mips32/Architecture-mips32.h +++ b/js/src/jit/mips32/Architecture-mips32.h @@ -24,8 +24,13 @@ static const uint32_t ShadowStackSpace = 4 * sizeof(uintptr_t); // These offsets are specific to nunboxing, and capture offsets into the // components of a js::Value. // Size of MIPS32 general purpose registers is 32 bits. +#if MOZ_LITTLE_ENDIAN static const int32_t NUNBOX32_TYPE_OFFSET = 4; static const int32_t NUNBOX32_PAYLOAD_OFFSET = 0; +#else +static const int32_t NUNBOX32_TYPE_OFFSET = 0; +static const int32_t NUNBOX32_PAYLOAD_OFFSET = 4; +#endif // Size of each bailout table entry. // For MIPS this is 2 instructions relative call. diff --git a/js/src/jit/mips32/MacroAssembler-mips32.cpp b/js/src/jit/mips32/MacroAssembler-mips32.cpp index a8b73988d48f..fba309325ca3 100644 --- a/js/src/jit/mips32/MacroAssembler-mips32.cpp +++ b/js/src/jit/mips32/MacroAssembler-mips32.cpp @@ -647,6 +647,9 @@ MacroAssemblerMIPS::ma_lid(FloatRegister dest, double value) uint32_t hi; } ; DoubleStruct intStruct = mozilla::BitwiseCast(value); +#if MOZ_BIG_ENDIAN + mozilla::Swap(intStruct.hi, intStruct.lo); +#endif // put hi part of 64 bit value into the odd register if (intStruct.hi == 0) { @@ -702,13 +705,14 @@ MacroAssemblerMIPS::ma_ld(FloatRegister ft, Address address) // Use single precision load instructions so we don't have to worry about // alignment. + int32_t off = address.offset + PAYLOAD_OFFSET; int32_t off2 = address.offset + TAG_OFFSET; - if (Imm16::IsInSignedRange(address.offset) && Imm16::IsInSignedRange(off2)) { - as_ls(ft, address.base, address.offset); + if (Imm16::IsInSignedRange(off) && Imm16::IsInSignedRange(off2)) { + as_ls(ft, address.base, off); as_ls(getOddPair(ft), address.base, off2); } else { MOZ_ASSERT(address.base != ScratchRegister); - ma_li(ScratchRegister, Imm32(address.offset)); + ma_li(ScratchRegister, Imm32(off)); as_addu(ScratchRegister, address.base, ScratchRegister); as_ls(ft, ScratchRegister, PAYLOAD_OFFSET); as_ls(getOddPair(ft), ScratchRegister, TAG_OFFSET); @@ -718,13 +722,14 @@ MacroAssemblerMIPS::ma_ld(FloatRegister ft, Address address) void MacroAssemblerMIPS::ma_sd(FloatRegister ft, Address address) { + int32_t off = address.offset + PAYLOAD_OFFSET; int32_t off2 = address.offset + TAG_OFFSET; - if (Imm16::IsInSignedRange(address.offset) && Imm16::IsInSignedRange(off2)) { - as_ss(ft, address.base, address.offset); + if (Imm16::IsInSignedRange(off) && Imm16::IsInSignedRange(off2)) { + as_ss(ft, address.base, off); as_ss(getOddPair(ft), address.base, off2); } else { MOZ_ASSERT(address.base != ScratchRegister); - ma_li(ScratchRegister, Imm32(address.offset)); + ma_li(ScratchRegister, Imm32(off)); as_addu(ScratchRegister, address.base, ScratchRegister); as_ss(ft, ScratchRegister, PAYLOAD_OFFSET); as_ss(getOddPair(ft), ScratchRegister, TAG_OFFSET); @@ -938,6 +943,7 @@ void MacroAssemblerMIPSCompat::loadUnalignedDouble(const wasm::MemoryAccessDesc& access, const BaseIndex& src, Register temp, FloatRegister dest) { + MOZ_ASSERT(MOZ_LITTLE_ENDIAN, "Wasm-only; wasm is disabled on big-endian."); computeScaledAddress(src, SecondScratchReg); uint32_t framePushed = asMasm().framePushed(); @@ -996,6 +1002,7 @@ void MacroAssemblerMIPSCompat::loadUnalignedFloat32(const wasm::MemoryAccessDesc& access, const BaseIndex& src, Register temp, FloatRegister dest) { + MOZ_ASSERT(MOZ_LITTLE_ENDIAN, "Wasm-only; wasm is disabled on big-endian."); computeScaledAddress(src, SecondScratchReg); BufferOffset load; if (Imm16::IsInSignedRange(src.offset) && Imm16::IsInSignedRange(src.offset + 3)) { @@ -1148,6 +1155,7 @@ void MacroAssemblerMIPSCompat::storeUnalignedFloat32(const wasm::MemoryAccessDesc& access, FloatRegister src, Register temp, const BaseIndex& dest) { + MOZ_ASSERT(MOZ_LITTLE_ENDIAN, "Wasm-only; wasm is disabled on big-endian."); computeScaledAddress(dest, SecondScratchReg); moveFromFloat32(src, temp); @@ -1168,6 +1176,7 @@ void MacroAssemblerMIPSCompat::storeUnalignedDouble(const wasm::MemoryAccessDesc& access, FloatRegister src, Register temp, const BaseIndex& dest) { + MOZ_ASSERT(MOZ_LITTLE_ENDIAN, "Wasm-only; wasm is disabled on big-endian."); computeScaledAddress(dest, SecondScratchReg); uint32_t framePushed = asMasm().framePushed(); diff --git a/js/src/jit/mips32/MacroAssembler-mips32.h b/js/src/jit/mips32/MacroAssembler-mips32.h index bd7faf769e00..19287757c839 100644 --- a/js/src/jit/mips32/MacroAssembler-mips32.h +++ b/js/src/jit/mips32/MacroAssembler-mips32.h @@ -37,8 +37,13 @@ static const int defaultShift = 3; static_assert(1 << defaultShift == sizeof(JS::Value), "The defaultShift is wrong"); static const uint32_t LOW_32_MASK = (1LL << 32) - 1; +#if MOZ_LITTLE_ENDIAN static const int32_t LOW_32_OFFSET = 0; static const int32_t HIGH_32_OFFSET = 4; +#else +static const int32_t LOW_32_OFFSET = 4; +static const int32_t HIGH_32_OFFSET = 0; +#endif class MacroAssemblerMIPS : public MacroAssemblerMIPSShared { @@ -395,6 +400,10 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS return ToPayload(Operand(base)).toAddress(); } + BaseIndex ToPayload(BaseIndex base) { + return BaseIndex(base.base, base.index, base.scale, base.offset + NUNBOX32_PAYLOAD_OFFSET); + } + protected: Operand ToType(Operand base); Address ToType(Address base) { @@ -413,14 +422,14 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS if (dest.isFloat()) loadInt32OrDouble(address, dest.fpu()); else - ma_lw(dest.gpr(), address); + ma_lw(dest.gpr(), ToPayload(address)); } void loadUnboxedValue(BaseIndex address, MIRType type, AnyRegister dest) { if (dest.isFloat()) loadInt32OrDouble(address.base, address.index, dest.fpu(), address.scale); else - load32(address, dest.gpr()); + load32(ToPayload(address), dest.gpr()); } template @@ -493,6 +502,7 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS void pushValue(ValueOperand val); void popValue(ValueOperand val); +#if MOZ_LITTLE_ENDIAN void pushValue(const Value& val) { push(Imm32(val.toNunboxTag())); if (val.isGCThing()) @@ -504,6 +514,19 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS push(ImmTag(JSVAL_TYPE_TO_TAG(type))); ma_push(reg); } +#else + void pushValue(const Value& val) { + if (val.isGCThing()) + push(ImmGCPtr(val.toGCThing())); + else + push(Imm32(val.toNunboxPayload())); + push(Imm32(val.toNunboxTag())); + } + void pushValue(JSValueType type, Register reg) { + ma_push(reg); + push(ImmTag(JSVAL_TYPE_TO_TAG(type))); + } +#endif void pushValue(const Address& addr); void storePayload(const Value& val, Address dest); diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list index f2b3622d4400..8952a819b72e 100644 --- a/js/src/tests/jstests.list +++ b/js/src/tests/jstests.list @@ -6,12 +6,6 @@ skip include test/jstests.list skip script non262/String/normalize-generateddata-input.js # input data for other test -# Skip intl402 tests when Intl isn't available. -skip-if(!this.hasOwnProperty('Intl')) include test262/intl402/jstests.list - -# Skip built-ins/Simd tests when SIMD isn't available. -skip-if(!this.hasOwnProperty('SIMD')) include test262/built-ins/Simd/jstests.list - # Times out on arm and cgc builds. slow script test262/built-ins/decodeURI/S15.1.3.1_A2.5_T1.js slow script test262/built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1.js @@ -41,6 +35,20 @@ skip-if(!this.hasOwnProperty("Intl")) script test262/built-ins/String/prototype/ skip-if(!this.hasOwnProperty("Intl")) script test262/built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js skip-if(!this.hasOwnProperty("Intl")) script test262/built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional.js +# Skip intl402 tests when Intl isn't available. +skip-if(!this.hasOwnProperty("Intl")) include test262/intl402/jstests.list + +# Skip built-ins/Simd tests when SIMD isn't available. +skip-if(!this.hasOwnProperty("SIMD")) include test262/built-ins/Simd/jstests.list + +# https://bugzilla.mozilla.org/show_bug.cgi?id=1415303 +skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script non262/SIMD/load-sab-buffer-compat.js +skip-if(!this.hasOwnProperty("Atomics")) include test262/built-ins/Atomics/jstests.list +skip-if(!this.hasOwnProperty("SharedArrayBuffer")) include test262/built-ins/SharedArrayBuffer/jstests.list +skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer.js +skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer.js +skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/internals/Get/indexed-value-sab.js + ##################################### # Test262 tests disabled on browser # @@ -75,17 +83,6 @@ skip-if(!xulRuntime.shell) script test262/language/global-code/script-decl-func- skip-if(!xulRuntime.shell) script test262/language/global-code/script-decl-lex.js skip-if(!xulRuntime.shell) script test262/language/global-code/script-decl-var-err.js -# Defines a restricted property on the WindowProxy object. -skip-if(!xulRuntime.shell) script test262/built-ins/Object/defineProperty/15.2.3.6-4-354-13.js -skip-if(!xulRuntime.shell) script test262/built-ins/Object/defineProperty/15.2.3.6-4-360-7.js -skip-if(!xulRuntime.shell) script test262/built-ins/Object/defineProperty/15.2.3.6-4-531-13.js -skip-if(!xulRuntime.shell) script test262/built-ins/Object/defineProperty/15.2.3.6-4-531-17.js -skip-if(!xulRuntime.shell) script test262/built-ins/Object/defineProperty/15.2.3.6-4-538-7.js - -# Fails because window has a "name" property on WindowProxy. -skip-if(!xulRuntime.shell) script test262/language/expressions/object/method-definition/generator-name-prop-symbol.js -skip-if(!xulRuntime.shell) script test262/language/expressions/object/method-definition/name-name-prop-symbol.js - ################################################## # Test262 tests skipped due to SpiderMonkey bugs # @@ -119,10 +116,13 @@ skip script test262/built-ins/TypedArrays/internals/DefineOwnProperty/detached-b skip script test262/built-ins/TypedArrays/internals/DefineOwnProperty/tonumber-value-detached-buffer.js skip script test262/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js skip script test262/built-ins/TypedArrays/internals/Get/detached-buffer.js +skip script test262/built-ins/TypedArrays/internals/Get/infinity-detached-buffer.js skip script test262/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js skip script test262/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer.js +skip script test262/built-ins/TypedArrays/internals/GetOwnProperty/enumerate-detached-buffer.js skip script test262/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js skip script test262/built-ins/TypedArrays/internals/HasProperty/detached-buffer.js +skip script test262/built-ins/TypedArrays/internals/HasProperty/infinity-with-detached-buffer.js skip script test262/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js skip script test262/built-ins/TypedArrays/internals/Set/detached-buffer.js skip script test262/built-ins/TypedArrays/internals/Set/tonumber-value-detached-buffer.js @@ -426,12 +426,8 @@ skip-if(!xulRuntime.shell) script test262/built-ins/Atomics/wake/wake-one.js skip-if(!xulRuntime.shell) script test262/built-ins/Atomics/wake/wake-all-on-loc.js # https://bugzilla.mozilla.org/show_bug.cgi?id=1346081 -skip script test262/intl402/NumberFormat/prototype/format/11.3.2_TRP.js -skip script test262/intl402/NumberFormat/prototype/format/11.3.2_TRF.js - -# https://bugzilla.mozilla.org/show_bug.cgi?id=1340304 -skip-if(!xulRuntime.shell) script test262/language/module-code/instn-iee-err-circular.js -skip-if(!xulRuntime.shell) script test262/language/module-code/instn-iee-err-circular-as.js +skip script test262/intl402/NumberFormat/prototype/format/format-fraction-digits.js +skip script test262/intl402/NumberFormat/prototype/format/format-significant-digits.js # Hoisted block-level function named "arguments" not initialized with undefined per B.3.3.1 # https://bugzilla.mozilla.org/show_bug.cgi?id=1339123 @@ -460,6 +456,9 @@ skip script test262/language/expressions/object/method-definition/async-gen-yiel skip script test262/language/expressions/class/async-gen-method-yield-star-sync-next.js skip script test262/language/expressions/class/async-gen-method-static-yield-star-sync-next.js +# https://bugzilla.mozilla.org/show_bug.cgi?id=1321616 +skip script test262/annexB/built-ins/Function/createdynfn-html-close-comment-params.js + ########################################################### # Tests disabled due to issues in test262 importer script # @@ -473,331 +472,5 @@ skip script test262/harness/detachArrayBuffer.js # Tests disabled due to invalid test expectations # #################################################### -# https://github.com/tc39/test262/issues/1370 -skip script test262/language/expressions/bitwise-or/bigint-non-primitive.js -skip script test262/language/expressions/bitwise-and/bigint-non-primitive.js -skip script test262/language/expressions/bitwise-xor/bigint-non-primitive.js - -############################################# -# Tests disabled when properties are absent # -############################################# - -# https://bugzilla.mozilla.org/show_bug.cgi?id=1415303 -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script non262/SIMD/load-sab-buffer-compat.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/toindex-bytelength-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-bytelength-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/byteoffset-is-negative-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/negative-byteoffset-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-instance-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/defined-byteoffset-undefined-bytelength-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/proto-from-ctor-realm-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/newtarget-undefined-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/negative-bytelength-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/excessive-bytelength-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteOffset/return-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/buffer/this-has-no-dataview-internal-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/buffer/return-buffer-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteLength/return-bytelength-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/negative-byteoffset-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/index-is-out-of-range-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-values-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-values-custom-offset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/to-boolean-littleendian-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/toindex-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/defined-bytelength-and-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/excessive-byteoffset-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/custom-proto-if-object-is-used-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-bytelength-symbol-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/toindex-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/instance-extensibility-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/defined-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/custom-proto-access-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/buffer-reference-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/init-zero.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype-from-newtarget.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/negative-length-throws.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/zero-length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/allocation-limit.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/length-is-absent.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/toindex-length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/length-is-too-large-throws.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/constructor.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-arraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/return-bytelength.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-func.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-not-object.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/prop-desc.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-accessor.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/name.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-null.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-end.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-end.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/negative-end.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-constructor.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-undefined.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-object.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/extensible.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-undefined.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-start.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-not-object.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-undefined.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/number-conversion.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/negative-start.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/nonconstructor.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/end-exceeds-length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-absent.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-absent.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-object.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-undefined.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/name.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/return-abrupt-from-length.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/return-abrupt-from-length-symbol.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/newtarget-prototype-is-not-object.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/was-woken.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/no-spurious-wakeup.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/negative-timeout.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/did-timeout.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/nan-timeout.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-zero.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-all-on-loc.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-in-order.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/counts.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-one.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-nan.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-all.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-negative.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-two.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/shell.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/good-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/bad-range.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/shared-nonint-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/non-views.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-typedarray-backed-by-sharedarraybuffer.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-use-default-proto-if-custom-proto-is-not-object-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-excessive-offset-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-is-symbol-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-length-is-symbol-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-length-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-invoked-with-undefined-newtarget-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-bufferbyteoffset-throws-from-modulo-element-size-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-length-access-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-use-custom-proto-if-object-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-negative-length-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-toindex-bytelength-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-is-negative-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/internals/Get/indexed-value-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-is-referenced-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-length-and-offset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-throws-from-modulo-element-size-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-offset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-toindex-byteoffset-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-new-instance-extensibility-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-excessive-length-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-returns-new-instance-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-custom-proto-access-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-to-number-throws-sab.js -skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-is-negative-zero-sab.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/Symbol.toStringTag.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/was-woken.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/no-spurious-wakeup.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/negative-timeout.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/did-timeout.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/nan-timeout.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/value.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/corner-cases.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/prop-desc.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-zero.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-all-on-loc.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-in-order.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/counts.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-one.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-nan.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-all.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-negative.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-two.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/name.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/proto.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/shell.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/good-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/descriptor.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/length.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/bad-range.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/shared-nonint-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/non-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/nonshared-int-views.js -skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/name.js +# assert.compareArray doesn't perform deep-equality comparison. +skip script test262/built-ins/Array/prototype/flatMap/depth-always-one.js diff --git a/js/src/tests/test262-update.py b/js/src/tests/test262-update.py index ae02ba54cdbd..f1033daad265 100755 --- a/js/src/tests/test262-update.py +++ b/js/src/tests/test262-update.py @@ -20,6 +20,8 @@ from itertools import chain, imap # Skip all tests which use features not supported in SpiderMonkey. UNSUPPORTED_FEATURES = set([ "tail-call-optimization", + "Array.prototype.flatMap", + "Array.prototype.flatten", "BigInt", "class-fields-public", "class-fields-private", @@ -28,6 +30,10 @@ UNSUPPORTED_FEATURES = set([ "regexp-named-groups", "regexp-unicode-property-escapes", ]) +FEATURE_CHECK_NEEDED = { + "Atomics": "!this.hasOwnProperty('Atomics')", + "SharedArrayBuffer": "!this.hasOwnProperty('SharedArrayBuffer')", + } RELEASE_OR_BETA = set() @contextlib.contextmanager @@ -225,7 +231,7 @@ def convertTestFile(test262parser, testSource, testName, includeSet, strictTests # Negative tests have additional meta-data to specify the error type and # when the error is issued (runtime error or early parse error). We're # currently ignoring the error phase attribute. - # testRec["negative"] == {type=, phase=early|runtime} + # testRec["negative"] == {type=, phase=parse|resolution|runtime} isNegative = "negative" in testRec assert not isNegative or type(testRec["negative"]) == dict errorType = testRec["negative"]["type"] if isNegative else None @@ -238,15 +244,18 @@ def convertTestFile(test262parser, testSource, testName, includeSet, strictTests # Skip tests with unsupported features. if "features" in testRec: unsupported = UNSUPPORTED_FEATURES.intersection(testRec["features"]) - releaseOrBeta = RELEASE_OR_BETA.intersection(testRec["features"]) if unsupported: - refTestSkip.append( - "%s is not supported" % ",".join(list(unsupported))) - elif releaseOrBeta: - refTestSkipIf.append( - ("release_or_beta", - "%s is not released yet" % ",".join(list(releaseOrBeta))) - ) + refTestSkip.append("%s is not supported" % ",".join(list(unsupported))) + else: + releaseOrBeta = RELEASE_OR_BETA.intersection(testRec["features"]) + if releaseOrBeta: + refTestSkipIf.append(("release_or_beta", + "%s is not released yet" % ",".join(list(releaseOrBeta)))) + + featureCheckNeeded = set(FEATURE_CHECK_NEEDED.keys()).intersection(testRec["features"]) + if featureCheckNeeded: + refTestSkipIf.append(("||".join([FEATURE_CHECK_NEEDED[f] for f in featureCheckNeeded]), + "%s is not enabled unconditionally" % ",".join(list(featureCheckNeeded)))) # Includes for every test file in a directory is collected in a single # shell.js file per directory level. This is done to avoid adding all @@ -317,7 +326,6 @@ def process_test262(test262Dir, test262OutDir, strictTests): # Additional explicit includes inserted at well-chosen locations to reduce # code duplication in shell.js files. explicitIncludes = {} - explicitIncludes["intl402"] = ["testBuiltInObject.js"] explicitIncludes[os.path.join("built-ins", "Atomics")] = ["testAtomics.js", "testTypedArray.js"] explicitIncludes[os.path.join("built-ins", "DataView")] = ["byteConversionValues.js"] diff --git a/js/src/tests/test262/GIT-INFO b/js/src/tests/test262/GIT-INFO index f114e6a41a66..bb60a0ba7e4f 100644 --- a/js/src/tests/test262/GIT-INFO +++ b/js/src/tests/test262/GIT-INFO @@ -1,5 +1,5 @@ -commit 8311965251953d4745aeb68c98fb71fab2eac1d0 -Author: André Bargull -Date: Fri Dec 1 11:16:43 2017 -0800 +commit 73120a5492ce274d551d2a215e65ba30085be7ef +Author: Rick Waldron +Date: Wed Jan 10 17:33:03 2018 -0500 - Fix copy-paste bugs in BigInt tests (#1361) + Fix: various lint fixes diff --git a/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/length.js b/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/length.js index e4aa2d52fb83..72bb65b0e73d 100644 --- a/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/length.js +++ b/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/length.js @@ -5,7 +5,7 @@ es6id: B.2.4.1 description: > Date.prototype.getYear.length is 0. -info: > +info: | Date.prototype.getYear ( ) 17 ECMAScript Standard Built-in Objects: diff --git a/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/name.js b/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/name.js index 13322ae2d25d..6a3db43a9f95 100644 --- a/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/name.js +++ b/js/src/tests/test262/annexB/built-ins/Date/prototype/getYear/name.js @@ -5,7 +5,7 @@ es6id: B.2.4.1 description: > Date.prototype.getYear.name is "getYear". -info: > +info: | Date.prototype.getYear ( ) 17 ECMAScript Standard Built-in Objects: diff --git a/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/length.js b/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/length.js index a4c25a687302..946c22d3d163 100644 --- a/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/length.js +++ b/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/length.js @@ -5,7 +5,7 @@ es6id: B.2.4.2 description: > Date.prototype.setYear.length is 1. -info: > +info: | Date.prototype.setYear ( ) 17 ECMAScript Standard Built-in Objects: diff --git a/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/name.js b/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/name.js index 510be2545e49..f35e39d32787 100644 --- a/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/name.js +++ b/js/src/tests/test262/annexB/built-ins/Date/prototype/setYear/name.js @@ -5,7 +5,7 @@ es6id: B.2.4.2 description: > Date.prototype.setYear.name is "setYear". -info: > +info: | Date.prototype.setYear ( ) 17 ECMAScript Standard Built-in Objects: diff --git a/js/src/tests/test262/annexB/built-ins/Date/prototype/toGMTString/value.js b/js/src/tests/test262/annexB/built-ins/Date/prototype/toGMTString/value.js index f78fbd21df7f..27e9f98edd4a 100644 --- a/js/src/tests/test262/annexB/built-ins/Date/prototype/toGMTString/value.js +++ b/js/src/tests/test262/annexB/built-ins/Date/prototype/toGMTString/value.js @@ -5,7 +5,7 @@ esid: sec-date.prototype.togmtstring es6id: B.2.4.3 es5id: B.2.6 description: Value of `Date.prototype.toGMTString` -info: > +info: | The function object that is the initial value of Date.prototype.toGMTString is the same function object that is the initial value of Date.prototype.toUTCString. diff --git a/js/src/tests/test262/annexB/built-ins/Function/browser.js b/js/src/tests/test262/annexB/built-ins/Function/browser.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-close-comment-body.js b/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-close-comment-body.js new file mode 100644 index 000000000000..b3264b6442b2 --- /dev/null +++ b/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-close-comment-body.js @@ -0,0 +1,22 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-createdynamicfunction +description: > + Create a Function with the function body being a html close comment. +info: | + 19.2.1.1.1 Runtime Semantics: CreateDynamicFunction(constructor, newTarget, kind, args) + ... + 7. If kind is "normal", then + a. Let goal be the grammar symbol FunctionBody[~Yield, ~Await]. + ... + 11. Let body be the result of parsing bodyText, interpreted as UTF-16 encoded Unicode text + as described in 6.1.4, using goal as the goal symbol. Throw a SyntaxError exception if + the parse fails. + ... +---*/ + +Function("-->"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-close-comment-params.js b/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-close-comment-params.js new file mode 100644 index 000000000000..ba05187ba1ec --- /dev/null +++ b/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-close-comment-params.js @@ -0,0 +1,23 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-createdynamicfunction +description: > + Create a Function with the function parameters being a html close comment. +info: | + 19.2.1.1.1 Runtime Semantics: CreateDynamicFunction(constructor, newTarget, kind, args) + ... + 7. If kind is "normal", then + ... + b. Let parameterGoal be the grammar symbol FormalParameters[~Yield, ~Await]. + ... + 10. Let parameters be the result of parsing P, interpreted as UTF-16 encoded Unicode text + as described in 6.1.4, using parameterGoal as the goal symbol. Throw a SyntaxError + exception if the parse fails. + ... +---*/ + +Function("-->", ""); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-open-comment-body.js b/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-open-comment-body.js new file mode 100644 index 000000000000..3dc973128b4c --- /dev/null +++ b/js/src/tests/test262/annexB/built-ins/Function/createdynfn-html-open-comment-body.js @@ -0,0 +1,22 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-createdynamicfunction +description: > + Create a Function with the function body being a html open comment. +info: | + 19.2.1.1.1 Runtime Semantics: CreateDynamicFunction(constructor, newTarget, kind, args) + ... + 7. If kind is "normal", then + a. Let goal be the grammar symbol FunctionBody[~Yield, ~Await]. + ... + 11. Let body be the result of parsing bodyText, interpreted as UTF-16 encoded Unicode text + as described in 6.1.4, using goal as the goal symbol. Throw a SyntaxError exception if + the parse fails. + ... +---*/ + +Function(" SingleLineCommentChars[opt] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-null.js b/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-null.js index 88b795357dfd..6f81a33a2095 100644 --- a/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-null.js +++ b/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-null.js @@ -5,7 +5,7 @@ es6id: 13.3.3.5 description: > Cannot convert null argument value to object -info: > +info: | 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern diff --git a/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-undefined.js b/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-undefined.js index dc38dd554700..a36358aadc37 100644 --- a/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-undefined.js +++ b/js/src/tests/test262/language/destructuring/binding/initialization-requires-object-coercible-undefined.js @@ -5,7 +5,7 @@ es6id: 13.3.3.5 description: > Cannot convert undefined argument value to object -info: > +info: | 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern diff --git a/js/src/tests/test262/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js b/js/src/tests/test262/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js index 81fd0bf0e053..30adcdb6e43b 100644 --- a/js/src/tests/test262/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js +++ b/js/src/tests/test262/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js @@ -5,7 +5,7 @@ es6id: 13.3.3.5 description: > Normal completion when initializing an empty ObjectBindingPattern -info: > +info: | 13.3.3.5 Runtime Semantics: BindingInitialization BindingPattern : ObjectBindingPattern diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-initializer.js b/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-initializer.js index 046f8ed424df..1f0f0701965b 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-initializer.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-initializer.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ArrayBindingPattern with an element list with initializers -info: > +info: | Destructuring Binding Patterns - Syntax ArrayBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-object-patterns.js b/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-object-patterns.js index 79aecd193528..5630c2d0fed5 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-object-patterns.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-with-object-patterns.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ArrayBindingPattern with Object patterns on the element list -info: > +info: | Destructuring Binding Patterns - Syntax ArrayBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-without-initializer.js b/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-without-initializer.js index 5b4fabec13e8..c5d7280b4a54 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-without-initializer.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/array-elements-without-initializer.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ArrayBindingPattern with an element list without initializers -info: > +info: | Destructuring Binding Patterns - Syntax ArrayBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-elisions.js b/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-elisions.js index 3a65bd5cd266..75f987ef2714 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-elisions.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-elisions.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ArrayBindingPattern with elisions only -info: > +info: | Destructuring Binding Patterns - Syntax ArrayBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-no-elements.js b/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-no-elements.js index 17548fc5b364..8e5ea61503d9 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-no-elements.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/array-pattern-with-no-elements.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ArrayBindingPattern with no elements -info: > +info: | Destructuring Binding Patterns - Syntax ArrayBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/array-rest-elements.js b/js/src/tests/test262/language/destructuring/binding/syntax/array-rest-elements.js index 6c115ae0149e..cc556b0d933e 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/array-rest-elements.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/array-rest-elements.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > Array Binding Pattern with Rest Element -info: > +info: | Destructuring Binding Patterns - Syntax ArrayBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js b/js/src/tests/test262/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js index f8599d1e4575..c8e9a23d7942 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ObjectBindingPattern can be `{ }` -info: > +info: | Destructuring Binding Patterns - Syntax ObjectBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-bindings-elements.js b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-bindings-elements.js index 24c68db204d0..0d05300ee0af 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-bindings-elements.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-bindings-elements.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ObjectBindingPattern with binding elements -info: > +info: | Destructuring Binding Patterns - Syntax ObjectBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js index f6a51d06497b..916c41c7a7c9 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The Binding Property List followed by a single comma is a valid syntax -info: > +info: | Destructuring Binding Patterns - Syntax ObjectBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-single-name-bindings.js b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-single-name-bindings.js index 8a09d5ec375e..38701e033b76 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-single-name-bindings.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-single-name-bindings.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ObjectBindingPattern with a simple property list and single name binding -info: > +info: | Destructuring Binding Patterns - Syntax ObjectBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-with-property-list.js b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-with-property-list.js index fedd0a77f843..174eea3e5b62 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/property-list-with-property-list.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/property-list-with-property-list.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > The ObjectBindingPattern with deep binding property lists -info: > +info: | Destructuring Binding Patterns - Syntax ObjectBindingPattern[Yield] : diff --git a/js/src/tests/test262/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js b/js/src/tests/test262/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js index b1da424e4188..8c6f6dab0e57 100644 --- a/js/src/tests/test262/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js +++ b/js/src/tests/test262/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js @@ -5,7 +5,7 @@ es6id: 13.3.3 description: > Recursive array and object binding patterns -info: > +info: | Destructuring Binding Patterns - Syntax BindingPattern[Yield] : diff --git a/js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js b/js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js index ef2b6946a699..8f5897367193 100644 --- a/js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js +++ b/js/src/tests/test262/language/directive-prologue/10.1.1-2gs.js @@ -8,7 +8,7 @@ description: > Strict Mode - Use Strict Directive Prologue is ''use strict'' which lost the last character ';' negative: - phase: early + phase: parse type: SyntaxError flags: [raw] ---*/ diff --git a/js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js b/js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js index 7535ff215fd2..f7af720b2273 100644 --- a/js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js +++ b/js/src/tests/test262/language/directive-prologue/10.1.1-5gs.js @@ -8,7 +8,7 @@ description: > Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears at the start of the code negative: - phase: early + phase: parse type: SyntaxError flags: [raw] ---*/ diff --git a/js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js b/js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js index 18c389e5671c..532f2df7f3ff 100644 --- a/js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js +++ b/js/src/tests/test262/language/directive-prologue/10.1.1-8gs.js @@ -8,7 +8,7 @@ description: > Strict Mode - Use Strict Directive Prologue is ''use strict';' which appears twice in the code negative: - phase: early + phase: parse type: SyntaxError flags: [raw] ---*/ diff --git a/js/src/tests/test262/language/directive-prologue/14.1-4gs.js b/js/src/tests/test262/language/directive-prologue/14.1-4gs.js index 85d67775a64a..4c11ee5e5057 100644 --- a/js/src/tests/test262/language/directive-prologue/14.1-4gs.js +++ b/js/src/tests/test262/language/directive-prologue/14.1-4gs.js @@ -8,7 +8,7 @@ description: > StrictMode - a Use Strict Directive followed by a strict mode violation negative: - phase: early + phase: parse type: SyntaxError flags: [raw] ---*/ diff --git a/js/src/tests/test262/language/directive-prologue/14.1-5gs.js b/js/src/tests/test262/language/directive-prologue/14.1-5gs.js index 9b6d32a12add..e7428935850d 100644 --- a/js/src/tests/test262/language/directive-prologue/14.1-5gs.js +++ b/js/src/tests/test262/language/directive-prologue/14.1-5gs.js @@ -8,7 +8,7 @@ description: > StrictMode - a Use Strict Directive embedded in a directive prologue followed by a strict mode violation negative: - phase: early + phase: parse type: SyntaxError flags: [raw] ---*/ diff --git a/js/src/tests/test262/language/eval-code/direct/block-decl-strict-caller-strict.js b/js/src/tests/test262/language/eval-code/direct/block-decl-strict-caller-strict.js index bd7fffebd17f..fa8f1fbef119 100644 --- a/js/src/tests/test262/language/eval-code/direct/block-decl-strict-caller-strict.js +++ b/js/src/tests/test262/language/eval-code/direct/block-decl-strict-caller-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode es6id: B.3.3.2 flags: [onlyStrict] -info: > +info: | Block statement in eval code containing a function declaration B.3.3.3 Changes to EvalDeclarationInstantiation diff --git a/js/src/tests/test262/language/eval-code/direct/block-decl-strict-source.js b/js/src/tests/test262/language/eval-code/direct/block-decl-strict-source.js index 92a5d22ce146..9f7c2b886f7b 100644 --- a/js/src/tests/test262/language/eval-code/direct/block-decl-strict-source.js +++ b/js/src/tests/test262/language/eval-code/direct/block-decl-strict-source.js @@ -3,7 +3,7 @@ /*--- description: AnnexB extension not honored in strict mode es6id: B.3.3.2 -info: > +info: | Block statement in eval code containing a function declaration B.3.3.3 Changes to EvalDeclarationInstantiation diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-block.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-block.js index 8d9a5fea90d1..36a26e2f61b9 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-block.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-block.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T1 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-do-while.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-do-while.js index dfdd00644b58..12760f781aff 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-do-while.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-do-while.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T6 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-empty.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-empty.js index f41c0369b1c6..3e54e9485e79 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-empty.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-empty.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T3 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-for.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-for.js index a35caad82ece..40e14b1932e5 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-for.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-for.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T8 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-if.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-if.js index 093e9ad2d3e2..880fc08b19ca 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-if.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-if.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T4 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-switch.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-switch.js index 7e6ce62d8d0e..aa0446a88b0e 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-switch.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-switch.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T5 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-var.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-var.js index 438683b78953..ff5cfbab7c2c 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-var.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-var.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T2 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-while.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-while.js index 1924858c3eeb..8d890407c78c 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-while.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-empty-while.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined es5id: 15.1.2.1_A3.2_T7 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-obj.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-obj.js index 9d8b49794ab3..2c6a8fd8aa3a 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-obj.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-obj.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is a value V, then return the value V es5id: 15.1.2.1_A3.1_T2 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-prim.js b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-prim.js index f4202688cbe7..2a2f5353f733 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-prim.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-nrml-expr-prim.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is a value V, then return the value V es5id: 15.1.2.1_A3.1_T1 diff --git a/js/src/tests/test262/language/eval-code/direct/cptn-thrw-prim.js b/js/src/tests/test262/language/eval-code/direct/cptn-thrw-prim.js index e55c6665e486..b16e5e32e3ec 100644 --- a/js/src/tests/test262/language/eval-code/direct/cptn-thrw-prim.js +++ b/js/src/tests/test262/language/eval-code/direct/cptn-thrw-prim.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception es5id: 15.1.2.1_A3.3_T4 diff --git a/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-function.js b/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-function.js index 2e47913f4bdd..26dcb5943fa2 100644 --- a/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-function.js +++ b/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-function.js @@ -4,7 +4,7 @@ /*--- es6id: 18.2.1.2 description: Global functions are not created if conflicting function declarations were detected. -info: > +info: | Runtime Semantics: EvalDeclarationInstantiation( body, varEnv, lexEnv, strict) ... diff --git a/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-variable.js b/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-variable.js index dd6706365820..eae1df64d40d 100644 --- a/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-variable.js +++ b/js/src/tests/test262/language/eval-code/direct/non-definable-function-with-variable.js @@ -4,7 +4,7 @@ /*--- es6id: 18.2.1.2 description: Global variables are not created if conflicting function declarations were detected. -info: > +info: | Runtime Semantics: EvalDeclarationInstantiation( body, varEnv, lexEnv, strict) ... diff --git a/js/src/tests/test262/language/eval-code/direct/non-definable-global-function.js b/js/src/tests/test262/language/eval-code/direct/non-definable-global-function.js index df05cf002376..71b91fd057dc 100644 --- a/js/src/tests/test262/language/eval-code/direct/non-definable-global-function.js +++ b/js/src/tests/test262/language/eval-code/direct/non-definable-global-function.js @@ -4,7 +4,7 @@ /*--- es6id: 18.2.1.2 description: Throws a TypeError if a global function cannot be defined. -info: > +info: | Runtime Semantics: EvalDeclarationInstantiation( body, varEnv, lexEnv, strict) ... diff --git a/js/src/tests/test262/language/eval-code/direct/non-definable-global-generator.js b/js/src/tests/test262/language/eval-code/direct/non-definable-global-generator.js index 0eee65a5ea2a..ebdf1f717ab4 100644 --- a/js/src/tests/test262/language/eval-code/direct/non-definable-global-generator.js +++ b/js/src/tests/test262/language/eval-code/direct/non-definable-global-generator.js @@ -4,7 +4,7 @@ /*--- es6id: 18.2.1.2 description: Throws a TypeError if a global generator function cannot be defined. -info: > +info: | Runtime Semantics: EvalDeclarationInstantiation( body, varEnv, lexEnv, strict) ... diff --git a/js/src/tests/test262/language/eval-code/direct/non-definable-global-var.js b/js/src/tests/test262/language/eval-code/direct/non-definable-global-var.js index aed15cba9b1b..920b581fca97 100644 --- a/js/src/tests/test262/language/eval-code/direct/non-definable-global-var.js +++ b/js/src/tests/test262/language/eval-code/direct/non-definable-global-var.js @@ -4,7 +4,7 @@ /*--- es6id: 18.2.1.2 description: Throws a TypeError if a global variable cannot be defined. -info: > +info: | Runtime Semantics: EvalDeclarationInstantiation( body, varEnv, lexEnv, strict) ... diff --git a/js/src/tests/test262/language/eval-code/direct/parse-failure-3.js b/js/src/tests/test262/language/eval-code/direct/parse-failure-3.js index 154577bcad9f..bd49362573d8 100644 --- a/js/src/tests/test262/language/eval-code/direct/parse-failure-3.js +++ b/js/src/tests/test262/language/eval-code/direct/parse-failure-3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception es5id: 15.1.2.1_A3.3_T1 diff --git a/js/src/tests/test262/language/eval-code/direct/parse-failure-4.js b/js/src/tests/test262/language/eval-code/direct/parse-failure-4.js index a7350dd99e23..2eec96f7034d 100644 --- a/js/src/tests/test262/language/eval-code/direct/parse-failure-4.js +++ b/js/src/tests/test262/language/eval-code/direct/parse-failure-4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception es5id: 15.1.2.1_A3.3_T2 diff --git a/js/src/tests/test262/language/eval-code/direct/parse-failure-5.js b/js/src/tests/test262/language/eval-code/direct/parse-failure-5.js index d548e6ab4783..08a127add665 100644 --- a/js/src/tests/test262/language/eval-code/direct/parse-failure-5.js +++ b/js/src/tests/test262/language/eval-code/direct/parse-failure-5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception es5id: 15.1.2.1_A3.3_T3 diff --git a/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-caller-strict.js b/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-caller-strict.js index 9bcf2d6fdd14..17b367db7fd4 100644 --- a/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-caller-strict.js +++ b/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-caller-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode es6id: B.3.3.3 flags: [onlyStrict] -info: > +info: | Function declaration in the `case` clause of a `switch` statement in eval code diff --git a/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-source.js b/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-source.js index 992d13a731ae..a343d0568841 100644 --- a/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-source.js +++ b/js/src/tests/test262/language/eval-code/direct/switch-case-decl-strict-source.js @@ -3,7 +3,7 @@ /*--- description: AnnexB extension not honored in strict mode es6id: B.3.3.3 -info: > +info: | Function declaration in the `case` clause of a `switch` statement in eval code diff --git a/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-caller-strict.js b/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-caller-strict.js index 175b9e2a158a..e055d0826508 100644 --- a/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-caller-strict.js +++ b/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-caller-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode es6id: B.3.3.3 flags: [onlyStrict] -info: > +info: | Function declaration in the `default` clause of a `switch` statement in eval code diff --git a/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-source.js b/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-source.js index 0611fc561255..194eb4ef796c 100644 --- a/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-source.js +++ b/js/src/tests/test262/language/eval-code/direct/switch-dflt-decl-strict-source.js @@ -3,7 +3,7 @@ /*--- description: AnnexB extension not honored in strict mode es6id: B.3.3.3 -info: > +info: | Function declaration in the `default` clause of a `switch` statement in eval code diff --git a/js/src/tests/test262/language/eval-code/direct/var-env-lower-lex-catch-non-strict.js b/js/src/tests/test262/language/eval-code/direct/var-env-lower-lex-catch-non-strict.js index e0063d87bbbb..cb4b33302932 100644 --- a/js/src/tests/test262/language/eval-code/direct/var-env-lower-lex-catch-non-strict.js +++ b/js/src/tests/test262/language/eval-code/direct/var-env-lower-lex-catch-non-strict.js @@ -4,7 +4,7 @@ esid: sec-evaldeclarationinstantiation es6id: 18.2.1.2 description: Variable collision with lexical binding in lower scope -info: > +info: | Annex B extensions permit re-declarations from FunctionDeclaration, VariableStatement, the VariableDeclarationList of a for statement, and the ForBinding of a for-in statement. Bindings from the ForBinding of a for-of diff --git a/js/src/tests/test262/language/eval-code/indirect/block-decl-strict.js b/js/src/tests/test262/language/eval-code/indirect/block-decl-strict.js index 3fe3f2a54dd3..f2adc904d49f 100644 --- a/js/src/tests/test262/language/eval-code/indirect/block-decl-strict.js +++ b/js/src/tests/test262/language/eval-code/indirect/block-decl-strict.js @@ -3,7 +3,7 @@ /*--- description: AnnexB extension not honored in strict mode es6id: B.3.3.2 -info: > +info: | Block statement in eval code containing a function declaration B.3.3.3 Changes to EvalDeclarationInstantiation diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-block.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-block.js index 4d46006405fb..c4d7ac885c47 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-block.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-block.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-do-while.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-do-while.js index 3de7ea369922..c0fa9f8f24f3 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-do-while.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-do-while.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-empty.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-empty.js index 65d4437a8709..9bc0b415d684 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-empty.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-empty.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-for.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-for.js index b2ea62c03fc9..c864cbee0a0e 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-for.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-for.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-if.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-if.js index 91104a4aa555..3e7cba8a737f 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-if.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-if.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-switch.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-switch.js index 3ae7fa7a2a05..b8ada36f5d04 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-switch.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-switch.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-var.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-var.js index c53823c9a916..0af364f670b5 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-var.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-var.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-while.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-while.js index ccfd6f034196..1218e74bac83 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-while.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-empty-while.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is empty, then return the value undefined esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-obj.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-obj.js index 5da5698368d5..5612fd8e7426 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-obj.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-obj.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is a value V, then return the value V esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-prim.js b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-prim.js index 37b24f3f1000..6e2d959349b1 100644 --- a/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-prim.js +++ b/js/src/tests/test262/language/eval-code/indirect/cptn-nrml-expr-prim.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is normal and its completion value is a value V, then return the value V esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/parse-failure-3.js b/js/src/tests/test262/language/eval-code/indirect/parse-failure-3.js index 80641f210306..d37260479955 100644 --- a/js/src/tests/test262/language/eval-code/indirect/parse-failure-3.js +++ b/js/src/tests/test262/language/eval-code/indirect/parse-failure-3.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/parse-failure-4.js b/js/src/tests/test262/language/eval-code/indirect/parse-failure-4.js index 142ad9978a65..bad09ae71f79 100644 --- a/js/src/tests/test262/language/eval-code/indirect/parse-failure-4.js +++ b/js/src/tests/test262/language/eval-code/indirect/parse-failure-4.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/parse-failure-5.js b/js/src/tests/test262/language/eval-code/indirect/parse-failure-5.js index 4dcece35b96d..2052420b1aee 100644 --- a/js/src/tests/test262/language/eval-code/indirect/parse-failure-5.js +++ b/js/src/tests/test262/language/eval-code/indirect/parse-failure-5.js @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result(3).type is not normal, then Result(3).type must be throw. Throw Result(3).value as an exception esid: sec-performeval diff --git a/js/src/tests/test262/language/eval-code/indirect/switch-case-decl-strict.js b/js/src/tests/test262/language/eval-code/indirect/switch-case-decl-strict.js index 43835f1aef3b..73a2ffade1a6 100644 --- a/js/src/tests/test262/language/eval-code/indirect/switch-case-decl-strict.js +++ b/js/src/tests/test262/language/eval-code/indirect/switch-case-decl-strict.js @@ -3,7 +3,7 @@ /*--- description: AnnexB extension not honored in strict mode es6id: B.3.3.3 -info: > +info: | Function declaration in the `case` clause of a `switch` statement in eval code diff --git a/js/src/tests/test262/language/eval-code/indirect/switch-dflt-decl-strict.js b/js/src/tests/test262/language/eval-code/indirect/switch-dflt-decl-strict.js index 8f7aff237cac..c272028e0427 100644 --- a/js/src/tests/test262/language/eval-code/indirect/switch-dflt-decl-strict.js +++ b/js/src/tests/test262/language/eval-code/indirect/switch-dflt-decl-strict.js @@ -3,7 +3,7 @@ /*--- description: AnnexB extension not honored in strict mode es6id: B.3.3.3 -info: > +info: | Function declaration in the `default` clause of a `switch` statement in eval code diff --git a/js/src/tests/test262/language/export/escaped-as-export-specifier.js b/js/src/tests/test262/language/export/escaped-as-export-specifier.js index c63fddd8f5e7..36f69f9d9bcb 100644 --- a/js/src/tests/test262/language/export/escaped-as-export-specifier.js +++ b/js/src/tests/test262/language/export/escaped-as-export-specifier.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `as` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/export/escaped-default.js b/js/src/tests/test262/language/export/escaped-default.js index 8f923637f3d3..0dbc5cf1bd28 100644 --- a/js/src/tests/test262/language/export/escaped-default.js +++ b/js/src/tests/test262/language/export/escaped-default.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `default` keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/export/escaped-from.js b/js/src/tests/test262/language/export/escaped-from.js index 84b4facead39..2a93a61889f0 100644 --- a/js/src/tests/test262/language/export/escaped-from.js +++ b/js/src/tests/test262/language/export/escaped-from.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `from` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A1.js index bfdca000c50c..bf66753d3bf2 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between AdditiveExpression and "+" or between "+" and MultiplicativeExpression are allowed es5id: 11.6.1_A1 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A2.3_T1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A2.3_T1.js index bc54825d4bc8..3db4faa450ba 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.6.1_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.1.js index 7676e869c485..64f613c89c0c 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T1.1 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.2.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.2.js index 7e349f8aad88..22c6927a74a0 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.2.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T1.2 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.3.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.3.js index 4edcab50b00a..40cac55c40c8 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.3.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T1.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T1.3 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.1.js index a1da62cfd375..7d4f5035c393 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T2.1 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.2.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.2.js index a14be8d958f7..9121a6759fcc 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.2.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T2.2 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.3.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.3.js index 9be21399ce3e..819d62a09b24 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.3.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T2.3 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.4.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.4.js index dd51a7c04ede..698f8827979e 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.4.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T2.4 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.5.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.5.js index e41fd211a8fe..a158008056d3 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.5.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.1_T2.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String and Type(Primitive(y)) is not String, then operator x + y returns ToNumber(x) + ToNumber(y) es5id: 11.6.1_A3.1_T2.5 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.1.js index 4657418dafb8..e72b6b341e95 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String or Type(Primitive(y)) is String, then operator x + y returns the result of concatenating ToString(x) followed by ToString(y) diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.2.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.2.js index 3ae243152b6b..fdf973ffdd03 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.2.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String or Type(Primitive(y)) is String, then operator x + y returns the result of concatenating ToString(x) followed by ToString(y) diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.1.js index c6163432525e..a4d00435cab3 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String or Type(Primitive(y)) is String, then operator x + y returns the result of concatenating ToString(x) followed by ToString(y) diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.2.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.2.js index 9db67fc5a835..cfd20b4953ef 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.2.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String or Type(Primitive(y)) is String, then operator x + y returns the result of concatenating ToString(x) followed by ToString(y) diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.3.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.3.js index 366a76fbf9ad..c417516d3a4d 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.3.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String or Type(Primitive(y)) is String, then operator x + y returns the result of concatenating ToString(x) followed by ToString(y) diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.4.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.4.js index c525dc40c0d7..67b1f6b28617 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.4.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A3.2_T2.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String or Type(Primitive(y)) is String, then operator x + y returns the result of concatenating ToString(x) followed by ToString(y) diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T1.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T1.js index 9f71e5bea75f..fddd527671c1 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T1.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T1 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T2.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T2.js index ef070b5d76db..66cbba1207f9 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T2.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T2 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T3.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T3.js index df83e3a2e516..714743304b86 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T3.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T3 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T4.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T4.js index 720e3f16ed2e..fe5e6bdec068 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T4.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T4 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T5.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T5.js index a546c2c35d86..c5d10b8f9335 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T5.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T5 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T6.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T6.js index db2b13e7e44c..e9952970d78c 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T6.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T6 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T7.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T7.js index a16501ec17e8..8434b7b4a7a3 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T7.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T7 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T8.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T8.js index 89c5663e59d3..da1e7d511098 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T8.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T8 diff --git a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T9.js b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T9.js index 100cffb27fc1..444e4b02123d 100644 --- a/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T9.js +++ b/js/src/tests/test262/language/expressions/addition/S11.6.1_A4_T9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of an addition is determined using the rules of IEEE 754 double-precision arithmetics es5id: 11.6.1_A4_T9 diff --git a/js/src/tests/test262/language/expressions/addition/bigint-errors.js b/js/src/tests/test262/language/expressions/addition/bigint-errors.js new file mode 100644 index 000000000000..4757ded21a40 --- /dev/null +++ b/js/src/tests/test262/language/expressions/addition/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: addition operator ToNumeric with BigInt operands +esid: sec-addition-operator-plus-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") + 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n + Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) + 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n + Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) + 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n + { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) + 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n + { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) + 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n + { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/addition/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/addition/bigint-toprimitive.js new file mode 100644 index 000000000000..d3aed538beb5 --- /dev/null +++ b/js/src/tests/test262/language/expressions/addition/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: addition operator ToNumeric with BigInt operands +esid: sec-addition-operator-plus-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) + 1n, 3n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(1n + { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 3n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) + 1n, 3n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(1n + { + valueOf: function() { + return 2n; + }, + toString: err +}, 3n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(1n + { + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(1n + { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(1n + { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n + { + valueOf: null, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n + { + valueOf: 1, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n + { + valueOf: {}, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n + { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n + { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) + 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n + { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) + 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n + { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) + 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n + { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) + 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n + { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) + 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n + { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) + 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n + { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) + 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n + { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) + 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n + { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) + 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n + { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) + 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n + { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) + 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n + { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) + 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n + { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/addition/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/addition/bigint-wrapped-values.js new file mode 100644 index 000000000000..782249d47f7f --- /dev/null +++ b/js/src/tests/test262/language/expressions/addition/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: addition operator ToNumeric with BigInt operands +esid: sec-addition-operator-plus-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) + 1n, 3n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(1n + Object(2n), 3n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(1n + { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 3n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: valueOf"); +assert.sameValue(1n + { + valueOf: function() { + return 2n; + } +}, 3n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) + 1n, 3n, "ToPrimitive: toString"); +assert.sameValue(1n + { + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-err.js b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-err.js index 10745638075f..13617e9dc7a7 100644 --- a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-err.js +++ b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-err.js @@ -6,7 +6,7 @@ es6id: 12.7.3.1 description: > Behavior when error thrown by invocation of `Symbol.toPrimitive` method during coercion -info: > +info: | [...] 5. Let lprim be ? ToPrimitive(lval). 6. Let rprim be ? ToPrimitive(rval). diff --git a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-invocation.js b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-invocation.js index 238077c5826a..8e84913f028c 100644 --- a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-invocation.js +++ b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-invocation.js @@ -4,7 +4,7 @@ esid: sec-addition-operator-plus-runtime-semantics-evaluation es6id: 12.7.3.1 description: Invocation of `Symbol.toPrimitive` method during coercion -info: > +info: | [...] 5. Let lprim be ? ToPrimitive(lval). 6. Let rprim be ? ToPrimitive(rval). diff --git a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-obj.js b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-obj.js index 84f9df4f634d..e09ff50bf4f3 100644 --- a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-obj.js +++ b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-obj.js @@ -5,7 +5,7 @@ esid: sec-addition-operator-plus-runtime-semantics-evaluation es6id: 12.7.3.1 description: > Behavior when coercion via `Symbol.toPrimitive` yields an Object -info: > +info: | [...] 5. Let lprim be ? ToPrimitive(lval). 6. Let rprim be ? ToPrimitive(rval). diff --git a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-prim.js b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-prim.js index f0b6a1d7e11e..ad4d2d24ad13 100644 --- a/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-prim.js +++ b/js/src/tests/test262/language/expressions/addition/coerce-symbol-to-prim-return-prim.js @@ -5,7 +5,7 @@ esid: sec-addition-operator-plus-runtime-semantics-evaluation es6id: 12.7.3.1 description: > Behavior when coercion via `Symbol.toPrimitive` yields a primitive value -info: > +info: | [...] 5. Let lprim be ? ToPrimitive(lval). 6. Let rprim be ? ToPrimitive(rval). diff --git a/js/src/tests/test262/language/expressions/addition/get-symbol-to-prim-err.js b/js/src/tests/test262/language/expressions/addition/get-symbol-to-prim-err.js index 488363e94858..00fadaa04a0c 100644 --- a/js/src/tests/test262/language/expressions/addition/get-symbol-to-prim-err.js +++ b/js/src/tests/test262/language/expressions/addition/get-symbol-to-prim-err.js @@ -5,7 +5,7 @@ esid: sec-addition-operator-plus-runtime-semantics-evaluation es6id: 12.7.3.1 description: > Behavior when error is thrown while accessing `Symbol.toPrimitive` property -info: > +info: | [...] 5. Let lprim be ? ToPrimitive(lval). 6. Let rprim be ? ToPrimitive(rval). diff --git a/js/src/tests/test262/language/expressions/array/11.1.4_4-5-1.js b/js/src/tests/test262/language/expressions/array/11.1.4_4-5-1.js index 5ec79ebb4ef8..dbb5ec41e886 100644 --- a/js/src/tests/test262/language/expressions/array/11.1.4_4-5-1.js +++ b/js/src/tests/test262/language/expressions/array/11.1.4_4-5-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.4; The production ElementList : Elisionopt AssignmentExpression diff --git a/js/src/tests/test262/language/expressions/array/11.1.4_5-6-1.js b/js/src/tests/test262/language/expressions/array/11.1.4_5-6-1.js index 19721a388bb5..c10e03c7e363 100644 --- a/js/src/tests/test262/language/expressions/array/11.1.4_5-6-1.js +++ b/js/src/tests/test262/language/expressions/array/11.1.4_5-6-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.4; The production ElementList : ElementList , Elisionopt AssignmentExpression diff --git a/js/src/tests/test262/language/expressions/array/S11.1.4_A1.6.js b/js/src/tests/test262/language/expressions/array/S11.1.4_A1.6.js index ff11b7485f99..874bb3060d95 100644 --- a/js/src/tests/test262/language/expressions/array/S11.1.4_A1.6.js +++ b/js/src/tests/test262/language/expressions/array/S11.1.4_A1.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Evaluate the production ArrayLiteral: [ Elision, AssignmentExpression, Elision ] es5id: 11.1.4_A1.6 diff --git a/js/src/tests/test262/language/expressions/array/S11.1.4_A1.7.js b/js/src/tests/test262/language/expressions/array/S11.1.4_A1.7.js index 6a9cb1b8464e..46b2530e8a57 100644 --- a/js/src/tests/test262/language/expressions/array/S11.1.4_A1.7.js +++ b/js/src/tests/test262/language/expressions/array/S11.1.4_A1.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Evaluate the production ArrayLiteral: [ AssignmentExpression, Elision, AssignmentExpression ] es5id: 11.1.4_A1.7 diff --git a/js/src/tests/test262/language/expressions/arrow-function/dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/arrow-function/dflt-params-duplicates.js index c22f991c3a26..d88c32282912 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dflt-params-rest.js b/js/src/tests/test262/language/expressions/arrow-function/dflt-params-rest.js index 52ede44b6a0a..378553ce105a 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-arrow-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-ary.js index 03d25ae943d2..23ef76f4a85c 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-id.js index cba01a287231..e1e7a6c109cb 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-obj.js index 025c7ef20f43..439d47cb6cc1 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-ary.js index 7db179268aa0..68ce434fa50e 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-id.js index 072c6924eadb..682ce4a9cc39 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-obj.js index 6383e5296d21..b6051333665f 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-ary.js index 6d0975b3bbb6..35c3f7d7d942 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-id.js index 03f6a23c97f2..f9b1dfda829c 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-obj.js index a69985f422c5..f6f17c8faf82 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-ary.js index 590166cc8550..05a86df94608 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-id.js index 0ed2d08bb795..8efd091b939a 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-obj.js index 5ef7cab2589d..b34436cdef54 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/arrow-function/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.2.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-expr.js b/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-expr.js index a587656f82b8..7a513a10c732 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-expr.js +++ b/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-expr.js @@ -18,7 +18,7 @@ info: | - It is a Syntax Error if ArrowParameters Contains YieldExpression is true. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-id-strict-strict.js b/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-id-strict-strict.js index 351c4d664680..d1bb8aebf944 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-id-strict-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/param-dflt-yield-id-strict-strict.js @@ -14,7 +14,7 @@ info: | features: [default-parameters] flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js index 573f40e05ec8..2a65c40b57ea 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-arrow-function-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ArrowFunction : ArrowParameters => ConciseBody diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js index 9d6cac11b546..5e06260ffb08 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-futurereservedword.js @@ -17,7 +17,7 @@ description: > ReservedWord : FutureReservedWord negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword-strict.js index 59b0911e38a0..846dc92805e8 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword-strict.js @@ -20,7 +20,7 @@ description: > Strict Mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js index 7f3b7521db89..3b1a12e30e0a 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier.js @@ -17,7 +17,7 @@ description: > ReservedWord : Keyword negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments-strict.js index 2901b4213cc9..7151e3bbff11 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments-strict.js @@ -12,7 +12,7 @@ description: > No parameter named "arguments" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval-strict.js index 48720150a9b4..54c9aaaa0564 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval-strict.js @@ -13,7 +13,7 @@ description: > No parameter named "eval" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield-strict.js index 7237a433d0b2..e9088cd470c4 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield-strict.js @@ -13,7 +13,7 @@ description: > No parameter named "yield" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js index 61b5e8f1b7aa..6d1424bf0850 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-rest.js @@ -9,7 +9,7 @@ description: > Includes ...rest negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments-strict.js index 9ece17ebe451..a7b4321facb0 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments-strict.js @@ -17,7 +17,7 @@ description: > No parameters named "arguments" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js index 952fdc1d56e0..4e8fd888f7ee 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js @@ -18,7 +18,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js index 6da4a81db812..c988885dc57a 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js @@ -18,7 +18,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js index 915addb43afe..4eb8045b9716 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js @@ -20,7 +20,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js index ac14ad23eb83..469e4207cff1 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js @@ -18,7 +18,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js index 81b3300a99dc..7cf178826cca 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js @@ -20,7 +20,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js index bf30f96c4df7..e2516e893ea9 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js @@ -20,7 +20,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js index 0dd7ffebcbd5..bad91e465927 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js @@ -22,7 +22,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js index 24a15796b814..340d563de666 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js @@ -22,7 +22,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js index 16212b41313b..829f163e732c 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js @@ -20,7 +20,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js index 6fc64fc294b8..9ab1f10f3ba6 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js @@ -16,7 +16,7 @@ description: > No duplicates, rest negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js index b558411983d0..a9b9d3bb5c99 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js @@ -16,7 +16,7 @@ description: > No duplicates negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval-strict.js index 6c2e2dd09207..da7db71675dd 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval-strict.js @@ -17,7 +17,7 @@ description: > No parameters named "eval" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield-strict.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield-strict.js index aaf0c9526f9f..4172082be67d 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield-strict.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield-strict.js @@ -12,7 +12,7 @@ description: > No parameter named "yield" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js index dfb8be66cf17..b445fbe1a9d5 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js @@ -8,7 +8,7 @@ description: > ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js index cb58c4d67f0e..a25fbf53ad80 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js @@ -10,7 +10,7 @@ description: > No parens around ArrowParameters negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js index d4a04bc72685..d1c59c870576 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js @@ -7,7 +7,7 @@ description: > ArrowFunction[In, Yield] : ArrowParameters[?Yield] [no LineTerminator here] => ConciseBody[?In] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js index bec1e6313bdd..8a984c46c877 100644 --- a/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/expressions/arrow-function/syntax/early-errors/use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-arrow-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if an arrow function contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of ConciseBody is true and IsSimpleParameterList of ArrowParameters is false. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-28-s-strict.js b/js/src/tests/test262/language/expressions/assignment/11.13.1-4-28-s-strict.js deleted file mode 100644 index a1b605b59ed9..000000000000 --- a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-28-s-strict.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -// Copyright (c) 2012 Ecma International. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es5id: 11.13.1-4-28-s -description: > - Strict Mode - SyntaxError is thrown if the identifier 'eval' - appears as the LeftHandSideExpression of simple assignment(=) - under strict mode -flags: [onlyStrict] ----*/ - -function testcase() { - var err = null; - var blah = eval; - try { - eval("var eval = 20;"); - } catch (e) { - err = e; - } - assert(err instanceof SyntaxError, 'err instanceof SyntaxError'); - assert.sameValue(blah, eval, 'blah'); - } -testcase(); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-29-s-strict.js b/js/src/tests/test262/language/expressions/assignment/11.13.1-4-29-s-strict.js deleted file mode 100644 index 57e02a4cb33f..000000000000 --- a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-29-s-strict.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -// Copyright (c) 2012 Ecma International. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es5id: 11.13.1-4-29-s -description: > - Strict Mode - SyntaxError is thrown if the identifier 'arguments' - appears as the LeftHandSideExpression of simple assignment(=) - under strict mode -flags: [onlyStrict] ----*/ - -function testcase() { - var err = null; - var blah = arguments; - try { - eval("var arguments = 20;"); - } catch (e) { - err = e; - } - assert(err instanceof SyntaxError, 'err instanceof SyntaxError'); - assert.sameValue(blah, arguments, 'blah'); - } -testcase(); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-30-s-strict.js b/js/src/tests/test262/language/expressions/assignment/11.13.1-4-30-s-strict.js deleted file mode 100644 index fb29c7b86e5e..000000000000 --- a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-30-s-strict.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -// Copyright (c) 2012 Ecma International. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es5id: 11.13.1-4-30-s -description: > - Strict Mode - SyntaxError is thrown if the identifier 'eval' - appears as the LeftHandSideExpression (PrimaryExpression) of - simple assignment(=) under strict mode -flags: [onlyStrict] ----*/ - - var blah = eval; -assert.throws(SyntaxError, function() { - eval("(eval) = 20;"); -}); -assert.sameValue(blah, eval, 'blah'); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-31-s-strict.js b/js/src/tests/test262/language/expressions/assignment/11.13.1-4-31-s-strict.js deleted file mode 100644 index 23b32f8ed9c2..000000000000 --- a/js/src/tests/test262/language/expressions/assignment/11.13.1-4-31-s-strict.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -// Copyright (c) 2012 Ecma International. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -es5id: 11.13.1-4-31-s -description: > - Strict Mode - SyntaxError is thrown if the identifier 'arguments' - appears as the LeftHandSideExpression (PrimaryExpression) of - simple assignment(=) under strict mode -flags: [onlyStrict] ----*/ - -function testcase() { - var err = null; - var blah = arguments; - try { - eval("(arguments) = 20;"); - } catch (e) { - err = e; - } - assert(err instanceof SyntaxError, 'err instanceof SyntaxError'); - assert.sameValue(blah, arguments, 'blah'); -} -testcase(); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/assignment/S11.13.1_A1.js b/js/src/tests/test262/language/expressions/assignment/S11.13.1_A1.js deleted file mode 100644 index 2a15ea697181..000000000000 --- a/js/src/tests/test262/language/expressions/assignment/S11.13.1_A1.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2009 the Sputnik authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -info: > - White Space and Line Terminator between LeftHandSideExpression and "=" or - between "=" and AssignmentExpression are allowed -es5id: 11.13.1_A1 -description: Checking by using eval -flags: [noStrict] ----*/ - -//CHECK#1 -if ((eval("x\u0009=\u0009true")) !== true) { - $ERROR('#1: (x\\u0009=\\u0009true) === true'); -} - -//CHECK#2 -if ((eval("x\u000B=\u000Btrue")) !== true) { - $ERROR('#2: (x\\u000B=\\u000Btrue) === true'); -} - -//CHECK#3 -if ((eval("x\u000C=\u000Ctrue")) !== true) { - $ERROR('#3: (x\\u000C=\\u000Ctrue) === true'); -} - -//CHECK#4 -if ((eval("x\u0020=\u0020true")) !== true) { - $ERROR('#4: (x\\u0020=\\u0020true) === true'); -} - -//CHECK#5 -if ((eval("x\u00A0=\u00A0true")) !== true) { - $ERROR('#5: (x\\u00A0=\\u00A0true) === true'); -} - -//CHECK#6 -if ((eval("x\u000A=\u000Atrue")) !== true) { - $ERROR('#6: (x\\u000A=\\u000Atrue) === true'); -} - -//CHECK#7 -if ((eval("x\u000D=\u000Dtrue")) !== true) { - $ERROR('#7: (x\\u000D=\\u000Dtrue) === true'); -} - -//CHECK#8 -if ((eval("x\u2028=\u2028true")) !== true) { - $ERROR('#8: (x\\u2028=\\u2028true) === true'); -} - -//CHECK#9 -if ((eval("x\u2029=\u2029true")) !== true) { - $ERROR('#9: (x\\u2029=\\u2029true) === true'); -} - - -//CHECK#10 -if ((eval("x\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029=\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029true")) !== true) { - $ERROR('#10: (x\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029=\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029true) === true'); -} - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/assignment/S8.12.5_A1.js b/js/src/tests/test262/language/expressions/assignment/S8.12.5_A1.js index 97bcb5456fb5..e05b5268d58e 100644 --- a/js/src/tests/test262/language/expressions/assignment/S8.12.5_A1.js +++ b/js/src/tests/test262/language/expressions/assignment/S8.12.5_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Put]] method of O is called with property P and value V, and If O doesn't have a property with name P, then creates a property with name P, set its value to V and give it empty attributes diff --git a/js/src/tests/test262/language/expressions/assignment/S8.12.5_A2.js b/js/src/tests/test262/language/expressions/assignment/S8.12.5_A2.js index 0000266c6580..699bef43a412 100644 --- a/js/src/tests/test262/language/expressions/assignment/S8.12.5_A2.js +++ b/js/src/tests/test262/language/expressions/assignment/S8.12.5_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Put]] method of O is called with property P and value V, then set the value of the property to V. The attributes of the property are not changed es5id: 8.12.5_A2 diff --git a/js/src/tests/test262/language/expressions/assignment/destructuring/obj-prop-__proto__dup.js b/js/src/tests/test262/language/expressions/assignment/destructuring/obj-prop-__proto__dup.js index cc664bafc7fb..406b03b15431 100644 --- a/js/src/tests/test262/language/expressions/assignment/destructuring/obj-prop-__proto__dup.js +++ b/js/src/tests/test262/language/expressions/assignment/destructuring/obj-prop-__proto__dup.js @@ -4,7 +4,7 @@ esid: sec-destructuring-assignment es6id: 12.14.5 description: Duplicate __proto__ property names -info: > +info: | Annex B defines an early error for duplicate PropertyName of `__proto__`, in object initializers, but this does not apply to Object Assignment patterns diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-init-yield-ident-invalid-strict.js index c749530f301f..506fbe81fd70 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-invalid.js index 14acda04ad4f..36aa4b69bd5a 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-yield-ident-invalid-strict.js index c6ca0f8d0914..3364d94fb16f 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-invalid.js index 011966e17d7d..72b239a5ab3b 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js index 5388d9d04443..018341452a3e 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-simple-strict-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-simple-strict-strict.js index 31796d30614d..a74d93d7dacb 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-simple-strict-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-yield-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-yield-invalid-strict.js index cfae661596bf..33ca523278e9 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-yield-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-elem-target-yield-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-element.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-element.js index 5dae5fcc14aa..65e5648b8cb0 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-element.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-element.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-elision.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-elision.js index be1204d87a6e..6defde79e2d7 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-elision.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-elision.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-rest.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-rest.js index 618c653accfa..44db9541a2a3 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-rest.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-before-rest.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-elision-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-elision-invalid.js index a083c6e7ba97..23091a7783fc 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-elision-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-elision-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-init.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-init.js index db9f0f02bc27..7f24f0ab8542 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-init.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-init.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-invalid.js index 5c1f387688bd..996590219e18 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-yield-ident-invalid-strict.js index cb957aa7cce1..9ce40f7817f0 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-invalid.js index 432ca8fb2173..136e92bf8cad 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js index 9389c23d107a..df4e7aae97e7 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-yield-ident-invalid-strict.js index ff89765abcb5..c6be65c4c518 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-array-rest-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-expr.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-expr.js index ccb926a9983e..4cf50861a802 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-expr.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-expr.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [generators, destructuring-binding] flags: [generated, noStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-ident-invalid-strict.js index a0f397500212..df373091084c 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-identifier-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-simple-strict-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-simple-strict-strict.js index 180131eec63e..a30257db770a 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-simple-strict-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-yield-ident-invalid-strict.js index f428fa1ea725..df94ac53a48d 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-simple-strict-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-simple-strict-strict.js index 618bd3419c68..7274122a40f4 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-simple-strict-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-id-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js index 5faabf3eca95..fac528b28feb 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js index 51deacda6847..591f135acb9e 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-invalid.js index 7cf221026474..7b47b6761d76 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js index a667975f08af..6dceaae410f0 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-invalid.js index 5f750f90a0ac..f53d20cfa638 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js index 190bb05b2083..c068a91382d8 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/dstr-obj-rest-not-last-element-invalid.js b/js/src/tests/test262/language/expressions/assignment/dstr-obj-rest-not-last-element-invalid.js index 4bb2f8f8aeb0..d313f51e2cd7 100644 --- a/js/src/tests/test262/language/expressions/assignment/dstr-obj-rest-not-last-element-invalid.js +++ b/js/src/tests/test262/language/expressions/assignment/dstr-obj-rest-not-last-element-invalid.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [object-rest, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-arrow.js b/js/src/tests/test262/language/expressions/assignment/fn-name-arrow.js index cf5f68fdcdd8..1d748d1a80b3 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-arrow.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-arrow.js @@ -4,7 +4,7 @@ /*--- es6id: 12.14.4 description: Assignment of function `name` attribute (ArrowFunction) -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-class.js b/js/src/tests/test262/language/expressions/assignment/fn-name-class.js index fd7dfb83bc9e..b499785f8c8c 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-class.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-class.js @@ -4,7 +4,7 @@ /*--- es6id: 12.14.4 description: Assignment of function `name` attribute (ClassExpression) -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-cover.js b/js/src/tests/test262/language/expressions/assignment/fn-name-cover.js index 4777d80b0f1a..7496d1770c6e 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-cover.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-cover.js @@ -5,7 +5,7 @@ es6id: 12.14.4 description: > Assignment of function `name` attribute (CoverParenthesizedExpression) -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js b/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js index 5c0667c5f2d7..1f02cae63984 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-fn.js @@ -4,7 +4,7 @@ /*--- es6id: 12.14.4 description: Assignment of function `name` attribute (FunctionExpression) -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-gen.js b/js/src/tests/test262/language/expressions/assignment/fn-name-gen.js index 4b95499ee94f..a30eef8cbc27 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-gen.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-gen.js @@ -4,7 +4,7 @@ /*--- es6id: 12.14.4 description: Assignment of function `name` attribute (GeneratorExpression) -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-cover.js b/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-cover.js index 5264cd420a82..93db79d0722c 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-cover.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-cover.js @@ -4,7 +4,7 @@ /*--- es6id: 12.14.4 description: Left-hand side as a CoverParenthesizedExpression -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-member.js b/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-member.js index 74f1bf2499ab..dcdea4de7175 100644 --- a/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-member.js +++ b/js/src/tests/test262/language/expressions/assignment/fn-name-lhs-member.js @@ -4,7 +4,7 @@ /*--- es6id: 12.14.4 description: Left-hand side as a MemberExpression -info: > +info: | AssignmentExpression[In, Yield] : LeftHandSideExpression[?Yield] = AssignmentExpression[?In, ?Yield] diff --git a/js/src/tests/test262/language/expressions/assignment/id-arguments-strict-strict.js b/js/src/tests/test262/language/expressions/assignment/id-arguments-strict-strict.js new file mode 100644 index 000000000000..5046520611f3 --- /dev/null +++ b/js/src/tests/test262/language/expressions/assignment/id-arguments-strict-strict.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es5id: 11.13.1-4-30-s +description: > + Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears as + the LeftHandSideExpression (PrimaryExpression) of simple assignment(=). +negative: + phase: early + type: SyntaxError +flags: [onlyStrict] +---*/ + +throw "Test262: This statement should not be evaluated."; + +(arguments) = 20; diff --git a/js/src/tests/test262/language/expressions/assignment/id-eval-strict-strict.js b/js/src/tests/test262/language/expressions/assignment/id-eval-strict-strict.js new file mode 100644 index 000000000000..5224c846da67 --- /dev/null +++ b/js/src/tests/test262/language/expressions/assignment/id-eval-strict-strict.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es5id: 11.13.1-4-30-s +description: > + Strict Mode - SyntaxError is thrown if the identifier 'eval' appears as the + LeftHandSideExpression (PrimaryExpression) of simple assignment(=). +negative: + phase: early + type: SyntaxError +flags: [onlyStrict] +---*/ + +throw "Test262: This statement should not be evaluated."; + +(eval) = 20; diff --git a/js/src/tests/test262/language/expressions/assignment/line-terminator.js b/js/src/tests/test262/language/expressions/assignment/line-terminator.js new file mode 100644 index 000000000000..63b2db5d5e26 --- /dev/null +++ b/js/src/tests/test262/language/expressions/assignment/line-terminator.js @@ -0,0 +1,20 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: > + White Space between LeftHandSideExpression and "=" or between "=" and + AssignmentExpression is allowed +es5id: 11.13.1_A1 +---*/ + +var x; + +x += +true; + +if (x !== true) { + $ERROR('#6: (x\\u000A=\\u000Atrue) === true'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/assignment/non-simple-target.js b/js/src/tests/test262/language/expressions/assignment/non-simple-target.js index 0aa072087dde..5e335910662a 100644 --- a/js/src/tests/test262/language/expressions/assignment/non-simple-target.js +++ b/js/src/tests/test262/language/expressions/assignment/non-simple-target.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if LeftHandSideExpression is neither an ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-boolean.js b/js/src/tests/test262/language/expressions/assignment/target-boolean.js index 2d94c6658d30..67f27c46af69 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-boolean.js +++ b/js/src/tests/test262/language/expressions/assignment/target-boolean.js @@ -15,7 +15,7 @@ info: | ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-cover-newtarget.js b/js/src/tests/test262/language/expressions/assignment/target-cover-newtarget.js index a9445f3a3877..b426610cd4f9 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-cover-newtarget.js +++ b/js/src/tests/test262/language/expressions/assignment/target-cover-newtarget.js @@ -20,7 +20,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-cover-yieldexpr.js b/js/src/tests/test262/language/expressions/assignment/target-cover-yieldexpr.js index f9e15161115a..6b761bbafb1b 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-cover-yieldexpr.js +++ b/js/src/tests/test262/language/expressions/assignment/target-cover-yieldexpr.js @@ -23,7 +23,7 @@ info: | 1. Return false. features: [generators] negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-newtarget.js b/js/src/tests/test262/language/expressions/assignment/target-newtarget.js index 6ae81d4c04c5..69305e54c5c4 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-newtarget.js +++ b/js/src/tests/test262/language/expressions/assignment/target-newtarget.js @@ -20,7 +20,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-null.js b/js/src/tests/test262/language/expressions/assignment/target-null.js index fa60c41b9d46..8108e0c734a5 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-null.js +++ b/js/src/tests/test262/language/expressions/assignment/target-null.js @@ -15,7 +15,7 @@ info: | ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-number.js b/js/src/tests/test262/language/expressions/assignment/target-number.js index 9e841f17e2fa..47edf3d03e38 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-number.js +++ b/js/src/tests/test262/language/expressions/assignment/target-number.js @@ -15,7 +15,7 @@ info: | ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/target-string.js b/js/src/tests/test262/language/expressions/assignment/target-string.js index 4642e26adba7..6816ff7502a0 100644 --- a/js/src/tests/test262/language/expressions/assignment/target-string.js +++ b/js/src/tests/test262/language/expressions/assignment/target-string.js @@ -15,7 +15,7 @@ info: | ObjectLiteral nor an ArrayLiteral and IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/assignment/white-space.js b/js/src/tests/test262/language/expressions/assignment/white-space.js new file mode 100644 index 000000000000..443b3271f364 --- /dev/null +++ b/js/src/tests/test262/language/expressions/assignment/white-space.js @@ -0,0 +1,57 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: > + White Space between LeftHandSideExpression and "=" or between "=" and + AssignmentExpression is allowed +es5id: 11.13.1_A1 +---*/ + +var x; + +x = 'U+0009'; +if (x !== 'U+0009') { + $ERROR('#1: (x\\u0009=\\u0009true) === true'); +} + +x = 'U+000B'; +if (x !== 'U+000B') { + $ERROR('#2: (x\\u000B=\\u000Btrue) === true'); +} + +x = 'U+000C'; +if (x !== 'U+000C') { + $ERROR('#3: (x\\u000C=\\u000Ctrue) === true'); +} + +x = 'U+0020'; +if (x !== 'U+0020') { + $ERROR('#4: (x\\u0020=\\u0020true) === true'); +} + +x = 'U+00A0'; +if (x !== 'U+00A0') { + $ERROR('#5: (x\\u00A0=\\u00A0true) === true'); +} + +x = 'U+000D'; +if (x !== 'U+000D') { + $ERROR('#7: (x\\u000D=\\u000Dtrue) === true'); +} + +x
=
'U+2028'; +if (x !== 'U+2028') { + $ERROR('#8: (x\\u2028=\\u2028true) === true'); +} + +x
=
'U+2029'; +if (x !== 'U+2029') { + $ERROR('#9: (x\\u2029=\\u2029true) === true'); +} + +x   

=   

'U+0009U+000BU+000CU+0020U+00A0U+000DU+2028U+2029'; +if (x !== 'U+0009U+000BU+000CU+0020U+00A0U+000DU+2028U+2029') { + $ERROR('#10: (x\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000D\\u2028\\u2029=\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000D\\u2028\\u2029true) === true'); +} + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier-escaped.js index a0a1fccd83e4..eba6c09722b4 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncArrowFunction features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier.js index daf488eb098d..9b68754ee249 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncArrowFunction features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference-escaped.js index 52b3f79f60d1..042a1b4c7b3f 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncArrowFunction features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference.js index 843c2d17e139..71ce87a0a4bb 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncArrowFunction features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier-escaped.js index b6f97d1efb94..a62d8dabd2d8 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncArrowFunction features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier.js index 78d403860d95..64ba3327db85 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncArrowFunction features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-duplicates.js index f9422b376cfc..52c854022842 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-async-arrow-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.7 Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-rest.js b/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-rest.js index 4a96952f42bf..bcefe794800f 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-async-arrow-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.7 Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js index 3ff0095054e3..551c79a80a09 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters-strict.js index 84b614f4bcab..f8daec07e38c 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains arguments negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js index 36138f445609..7c960214f371 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters' default expressions contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js index c695206da65c..5750783afa0e 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js index 57989b9d89a2..e2007013eb37 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if AsyncFunctionBody contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js index c90734890e45..d4d9db765c8a 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters-strict.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters-strict.js index c3437891be08..ee9f7dccab1f 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters-strict.js @@ -9,7 +9,7 @@ esid: pending description: > If strict mode, early error rules for StrictFormalParameters are applied negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters-strict.js index eeddec28781a..5d90f7ff6742 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains eval negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js index 6906f013178b..fbe43427b845 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js index f8f1c57ff083..219480d26df2 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js index 3d821449e6fd..51b4a5c1be8e 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js index 4f383da5f1e4..df75780a7160 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js @@ -24,7 +24,7 @@ info: | AsyncArrowHead: async [no LineTerminator here] ArrowFormalParameters negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/escaped-async.js b/js/src/tests/test262/language/expressions/async-arrow-function/escaped-async.js index edc58080c27a..7a740c30cdcd 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/escaped-async.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js index af26369eedf8..f4ba808ebce3 100644 --- a/js/src/tests/test262/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-async-arrow-function-definitions flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.7 Async Arrow Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier-escaped.js index a61b5d8b08bf..8d7bbe290fdf 100644 --- a/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier.js index 8c713435ce82..793842f77b2d 100644 --- a/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-function/await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference-escaped.js index 24cfbb3bc5ce..787b77690e0b 100644 --- a/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference.js index 964b727e8a7a..4b0228fadf8e 100644 --- a/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-function/await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier-escaped.js index 1b174ce89c16..3bb86c6745f9 100644 --- a/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier.js index b11676878585..dd875e2ca2fc 100644 --- a/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-function/await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js index 85b121d44872..9efd81e0216f 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-arguments-strict.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-arguments-strict.js index bc8a9bfeb122..00d26cc5bed5 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-arguments-strict.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-arguments-strict.js @@ -9,7 +9,7 @@ esid: pending description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-eval-strict.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-eval-strict.js index ac0c97faddfd..1d6a66918403 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-eval-strict.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-binding-identifier-eval-strict.js @@ -9,7 +9,7 @@ esid: pending description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-call.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-call.js index e0ec3cf62389..f24aa1d1c7d4 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if AsyncFunctionBody contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-property.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-property.js index c8e050614dac..f7d82e74410f 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-property.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-body-contains-super-property.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters-strict.js index 32f1e7781c40..1e6ecaafb74d 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains eval in strict mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js index a80c4fc860f8..10d213963388 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js index cb41023c0df0..8197bf0066cf 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js index ec9feb260259..070bfc047618 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js index 6a50ad00821f..b59b69864e77 100644 --- a/js/src/tests/test262/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js +++ b/js/src/tests/test262/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js @@ -8,7 +8,7 @@ esid: pending description: > Async function expressions are not a simple assignment target. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/escaped-async.js b/js/src/tests/test262/language/expressions/async-function/escaped-async.js index 2f13e36a72a8..bf4f620cb74b 100644 --- a/js/src/tests/test262/language/expressions/async-function/escaped-async.js +++ b/js/src/tests/test262/language/expressions/async-function/escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier-escaped.js index 1cf7bcfbdf21..d364efd52356 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier.js index 432edf9d218d..93a95039b184 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-function/named-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference-escaped.js index 7a5c8efffffd..3db03d38e6c2 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference.js index 07ad5774be19..a5fd8835d765 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-function/named-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier-escaped.js index 03084ab52cc7..f1bfa4f1f295 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier.js index 2324b7928221..93f3cf1754a8 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-function/named-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionExpression features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/async-function/named-dflt-params-duplicates.js index 75f79f241829..71d14bb0f760 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/async-function/named-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-dflt-params-rest.js b/js/src/tests/test262/language/expressions/async-function/named-dflt-params-rest.js index d08b50238e8f..1ed5b29a148f 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/async-function/named-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js index 24f70172ddf4..722b673557b8 100644 --- a/js/src/tests/test262/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-async-function-definitions flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-duplicates.js index e6af1b4da270..884434be0e88 100644 --- a/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-rest.js b/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-rest.js index 6a99a6ba598e..070ac7160958 100644 --- a/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/async-function/nameless-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js index fe4f55a32a2d..a48be53d31c4 100644 --- a/js/src/tests/test262/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-async-function-definitions flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier-escaped.js index fb7546ebdcd1..0ad17fa3624f 100644 --- a/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier.js index 6203e161413e..a5d79dc6924d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference-escaped.js index a1969da2d622..bccf61c43e54 100644 --- a/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference.js index 6f6b3b10cbe7..a8f1e19a9296 100644 --- a/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-generator/await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier-escaped.js index cbc2ee837f5d..783cf7798fb0 100644 --- a/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier.js index b68def4991cd..53ea134f3bb4 100644 --- a/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/async-generator/dflt-params-duplicates.js index 3cd51e5ce262..9143607984cd 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/async-generator/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dflt-params-rest.js b/js/src/tests/test262/language/expressions/async-generator/dflt-params-rest.js index 63d4e84b04a6..cc2d5b7a297c 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/async-generator/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-ary.js index dfea5453e69c..a2fd023cebec 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-id.js index 5ca2fb3dc829..d48501400fbb 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-obj.js index 5264d2d98c3a..367225b16af6 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-ary.js index b85c6c05cfd2..7edc29cdfa6a 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-id.js index 0fbd9243d32b..154e43a6de27 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-obj.js index 193c09eb8204..56775292dce7 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js index 70b9850eba38..2f542c78516e 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js index 2790e0277c84..6aa5c6f2e74d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js index 57aa7e0ecca7..2052f18cb878 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js index 18f87f7bd382..a4287574d8e0 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js index 8f8609474329..b818d8230f55 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js index 94c29061419b..c6da8f4abe7b 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-ary.js index 5f83f6f650d2..71882142bdfb 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-id.js index da08813b448e..3bc0352f366e 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-obj.js index a11413956868..3203bb0eaf98 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-ary.js index 8bede1194725..b1fad72206b7 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-id.js index 5975b9164ba1..0711aedf0e78 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-obj.js index 53b4d44c310c..9e0ab89dbda2 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-ary.js index 4caacc31c466..870adb23cd2b 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-id.js index 4338021df97a..b13d0eec47d0 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-obj.js index 32892b281c9f..1e1b8d1bff22 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-ary.js index 7f3a2d356244..2fb85a38ecad 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-id.js index f0f176748171..74e06b716c2b 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-obj.js index a39df3fff125..10139a256dce 100644 --- a/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/async-generator/dstr-named-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js index 866a3a7a8be7..72d5efe9becb 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-NSPL-with-USD.js @@ -9,7 +9,7 @@ description: > It is a Syntax Error if ContainsUseStrict of AsyncGeneratorBody is true and IsSimpleParameterList of UniqueFormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters-strict.js index 843333aad2b2..75524594da58 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters-strict.js @@ -9,7 +9,7 @@ esid: pending description: > It is a SyntaxError if FormalParameters contains arguments in strict mode. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] features: [async-iteration] diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js index 36e18e6e16c7..776678bfd1ff 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-await-as-function-binding-identifier.js @@ -4,11 +4,11 @@ /*--- author: Caitlin Potter -esid: 12.1.1 +esid: pending description: > `await` is not a valid BindingIdentifier for AsyncGeneratorExpressions. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments-strict.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments-strict.js index f8a71e7bbacd..26a5a2175b53 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-arguments-strict.js @@ -10,7 +10,7 @@ description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] features: [async-iteration] diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-eval-strict.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-eval-strict.js index 08dba76d9b68..696f10dd638b 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-eval-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-binding-identifier-eval-strict.js @@ -10,7 +10,7 @@ description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] features: [async-iteration] diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js index 650af25d235b..be6a3a1de35f 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-call.js @@ -8,7 +8,7 @@ esid: pending description: > It is a syntax error if AsyncGeneratorBody contains SuperCall is true. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js index d56bd8ab81f1..8126345d77ab 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-body-contains-super-property.js @@ -8,7 +8,7 @@ esid: pending description: > It is a syntax error if AsyncGeneratorBody contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters-strict.js index d7ea583a54a5..afcbc3a76da1 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters-strict.js @@ -9,7 +9,7 @@ esid: pending description: > It is a SyntaxError if FormalParameters contains eval in strict mode. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] features: [async-iteration] diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js index c4eb20213fd4..97455a746e0c 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js @@ -9,7 +9,7 @@ description: > It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js index 50c5e44285c0..e6d8249fa4ef 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js @@ -9,7 +9,7 @@ description: > It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js index 2efda3e4184f..e2cec5c90ceb 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await-expr.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if FormalParameters Contains AwaitExpression is true. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await.js index 55fc789d6002..bbe5e9193261 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-await.js @@ -9,7 +9,7 @@ description: > `await` is a reserved keyword within async generator function bodies and may not be used as the binding identifier of a parameter. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js index 4532f52d726e..66e5cff20d1b 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js @@ -8,7 +8,7 @@ esid: pending description: > It is a syntax error if FormalParameters contains SuperCall is true. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js index 366955396dfa..27cb934701e1 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js @@ -8,7 +8,7 @@ esid: pending description: > It is a syntax error if FormalParameters contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js index f749fa884413..6fb0005dfe44 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield-expr.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if FormalParameters Contains YieldExpression is true. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js index 40eeb7efdcbc..bf5e7f0e4c20 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-formals-contains-yield.js @@ -9,7 +9,7 @@ description: > `yield` is a reserved keyword within async generator function bodies and may not be used as the binding identifier of a parameter. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-await.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-await.js index f4b667953b9a..6a98262bd74d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-await.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-await.js @@ -9,7 +9,7 @@ description: > `await` is a reserved keyword within async generator function bodies and may not be used as a label. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-yield.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-yield.js index 67f51abf3e58..e18618395b9d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-yield.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-label-name-yield.js @@ -9,7 +9,7 @@ description: > `yield` is a reserved keyword within async generator function bodies and may not be used as a label. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js index a1fd2e89652b..21f5e71a1fd1 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js @@ -8,7 +8,7 @@ esid: pending description: > Async generator function expressions are not a simple assignment target. negative: - phase: early + phase: parse type: ReferenceError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js index 0aeff5821086..ff380df75d2d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js @@ -4,11 +4,11 @@ /*--- author: Caitlin Potter -esid: 12.1.1 +esid: pending description: > `yield` is not a valid BindingIdentifier for AsyncGeneratorExpressions. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js index 4e9bcb39023f..b01895d2649d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js +++ b/js/src/tests/test262/language/expressions/async-generator/early-errors-expression-yield-star-after-newline.js @@ -4,11 +4,11 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > A newline may not precede the `*` token in a `yield` expression. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/escaped-async.js b/js/src/tests/test262/language/expressions/async-generator/escaped-async.js index 7bcc6f310f28..7ceeed41cd81 100644 --- a/js/src/tests/test262/language/expressions/async-generator/escaped-async.js +++ b/js/src/tests/test262/language/expressions/async-generator/escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-await-as-yield-operand.js b/js/src/tests/test262/language/expressions/async-generator/expression-await-as-yield-operand.js index 0518a3b442dd..5f691ae92f51 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-await-as-yield-operand.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-await-as-yield-operand.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > AwaitExpressions are valid operands to yield expressions. flags: [async] diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-await-promise-as-yield-operand.js b/js/src/tests/test262/language/expressions/async-generator/expression-await-promise-as-yield-operand.js index ace95582a435..b2d0c216030d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-await-promise-as-yield-operand.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-await-promise-as-yield-operand.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > AwaitExpressions are valid operands to yield expressions. flags: [async] diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js b/js/src/tests/test262/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js index f8b8b52140a3..2b94f9beca96 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-await-thenable-as-yield-operand.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > AwaitExpressions are valid operands to yield expressions. flags: [async] diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-operand.js b/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-operand.js index 1fbb3541a34e..fbd852c134fe 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-operand.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-operand.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > `yield` expressions may be used as the right-hand-side of other `yield` expressions. diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-statement.js b/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-statement.js index 985a513d13db..b11b04cbe899 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-statement.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-yield-as-statement.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > `yield` is a valid statement within async generator function bodies. flags: [async] diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-yield-newline.js b/js/src/tests/test262/language/expressions/async-generator/expression-yield-newline.js index 9ca1438b27af..bd122822dfe9 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-yield-newline.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-yield-newline.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > Newlines terminate `yield` expressions. flags: [async] diff --git a/js/src/tests/test262/language/expressions/async-generator/expression-yield-star-before-newline.js b/js/src/tests/test262/language/expressions/async-generator/expression-yield-star-before-newline.js index 6c14fa78b202..567b71ad8ae0 100644 --- a/js/src/tests/test262/language/expressions/async-generator/expression-yield-star-before-newline.js +++ b/js/src/tests/test262/language/expressions/async-generator/expression-yield-star-before-newline.js @@ -3,7 +3,7 @@ /*--- author: Caitlin Potter -esid: 14.4 +esid: sec-generator-function-definitions description: > The right-hand side of a `yield *` expression may appear on a new line. flags: [async] diff --git a/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier-escaped.js index ce1898cf2ae8..0f8ef600156e 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier.js index 413b06141848..b8fddfde12fb 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference-escaped.js index bf92c03e88fb..6b7f10391809 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference.js index eff2d1bf8c59..e7654532d641 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier-escaped.js index f0dc09f18bcf..d1e1b4ef8596 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier.js index f9faec298753..2ecfdcf39f8f 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-duplicates.js index 3b90cea23519..7f461d792eab 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-rest.js b/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-rest.js index d3defcf7ac77..d4e9708da0ea 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js index f657f39a5860..f33f40bf2000 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier-escaped.js index 219e179b61ea..f64a5639180f 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier.js index 708cf95f4d6e..1681d64b3a4c 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference-escaped.js index 4aa472733db8..db3175c770b3 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference.js index c6c6cf7c8006..3184f80ed6ff 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier-escaped.js index 8d77b0c044c6..0dca64f65e12 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier.js index 5a012f78b126..8d0dd56f5cac 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-spread-strict-strict.js index 5fd9dbacf994..65cdc27ce67d 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorExpression features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-strict-strict.js index ee1828bfe508..924a406bf61f 100644 --- a/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/named-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/async-generator/rest-params-trailing-comma-early-error.js index f47b8848c442..ff2d51681fe6 100644 --- a/js/src/tests/test262/language/expressions/async-generator/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/async-generator/rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-evaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier-escaped.js index 51745cb10249..a80bc257beed 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier.js index e93c1b4209c9..311655c36e6c 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference-escaped.js index 6417c4493635..26a6d4a62623 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference.js index 8a395960be3c..bed3a9a344a2 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier-escaped.js index 46f57c37fd13..4b492cabfc10 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier.js index 5efa88972936..48a18f20e551 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/async-generator/yield-identifier-spread-strict-strict.js index 212d908f1db8..bbbd73cce718 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorExpression features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/async-generator/yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/async-generator/yield-identifier-strict-strict.js index 2c1bb1f034cb..f0a49fe6dfd6 100644 --- a/js/src/tests/test262/language/expressions/async-generator/yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/async-generator/yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorExpression features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/await/await-BindingIdentifier-nested.js b/js/src/tests/test262/language/expressions/await/await-BindingIdentifier-nested.js index 8cdf70082373..bf3bd84111f7 100644 --- a/js/src/tests/test262/language/expressions/await/await-BindingIdentifier-nested.js +++ b/js/src/tests/test262/language/expressions/await/await-BindingIdentifier-nested.js @@ -8,7 +8,7 @@ esid: pending description: > Await is not allowed as an identifier in functions nested in async functions negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/await/early-errors-await-not-simple-assignment-target.js b/js/src/tests/test262/language/expressions/await/early-errors-await-not-simple-assignment-target.js index 51aa5fea7ed6..6df6cbaae9df 100644 --- a/js/src/tests/test262/language/expressions/await/early-errors-await-not-simple-assignment-target.js +++ b/js/src/tests/test262/language/expressions/await/early-errors-await-not-simple-assignment-target.js @@ -8,7 +8,7 @@ esid: pending description: > await is not a simple assignment target and cannot be assigned to. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/await/no-operand.js b/js/src/tests/test262/language/expressions/await/no-operand.js index 989960b3be5b..ff0d72060a6b 100644 --- a/js/src/tests/test262/language/expressions/await/no-operand.js +++ b/js/src/tests/test262/language/expressions/await/no-operand.js @@ -8,7 +8,7 @@ esid: pending description: > await requries an operand. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A1.js b/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A1.js index e9e44d109d70..30abbebf8255 100644 --- a/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A1.js +++ b/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between BitwiseANDExpression and "&" or between "&" and EqualityExpression are allowed es5id: 11.10.1_A1 diff --git a/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A2.3_T1.js b/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A2.3_T1.js index bfe288e38327..7fb1130e6d80 100644 --- a/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/bitwise-and/S11.10.1_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToInt32(first expression) is called first, and then ToInt32(second expression) es5id: 11.10.1_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/bitwise-and/bigint-errors.js b/js/src/tests/test262/language/expressions/bitwise-and/bigint-errors.js new file mode 100644 index 000000000000..9ce4860f8d44 --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-and/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-and operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") & 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n & Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) & 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n & Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) & 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n & { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) & 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n & { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) & 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n & { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-and/bigint-non-primitive.js b/js/src/tests/test262/language/expressions/bitwise-and/bigint-non-primitive.js index fd046a832167..6490161dff14 100644 --- a/js/src/tests/test262/language/expressions/bitwise-and/bigint-non-primitive.js +++ b/js/src/tests/test262/language/expressions/bitwise-and/bigint-non-primitive.js @@ -1,3 +1,4 @@ +// |reftest| skip -- BigInt is not supported // Copyright (C) 2017 Josh Wolfe. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. @@ -5,7 +6,6 @@ description: Bitwise AND for BigInt non-primitive values esid: sec-binary-bitwise-operators-runtime-semantics-evaluation info: | - 5. Let lnum be ? ToNumeric(lval). 6. Let rnum be ? ToNumeric(rval). ... diff --git a/js/src/tests/test262/language/expressions/bitwise-and/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/bitwise-and/bigint-toprimitive.js new file mode 100644 index 000000000000..4ac47ccba9e4 --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-and/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-and operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) & 3n, 2n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(3n & { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 2n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) & 3n, 2n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(3n & { + valueOf: function() { + return 2n; + }, + toString: err +}, 2n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(3n & { + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(3n & { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(3n & { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n & { + valueOf: null, + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n & { + valueOf: 1, + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n & { + valueOf: {}, + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(3n & { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(3n & { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) & 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n & { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) & 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n & { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) & 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n & { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) & 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n & { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) & 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n & { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) & 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n & { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) & 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n & { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) & 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n & { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) & 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n & { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) & 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n & { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) & 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n & { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) & 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n & { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-and/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/bitwise-and/bigint-wrapped-values.js new file mode 100644 index 000000000000..c83ededd6102 --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-and/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-and operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) & 3n, 2n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(3n & Object(2n), 2n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(3n & { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 2n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: valueOf"); +assert.sameValue(3n & { + valueOf: function() { + return 2n; + } +}, 2n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) & 3n, 2n, "ToPrimitive: toString"); +assert.sameValue(3n & { + toString: function() { + return 2n; + } +}, 2n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-not/S11.4.8_A1.js b/js/src/tests/test262/language/expressions/bitwise-not/S11.4.8_A1.js index 708540f4229d..dbf1e1e16075 100644 --- a/js/src/tests/test262/language/expressions/bitwise-not/S11.4.8_A1.js +++ b/js/src/tests/test262/language/expressions/bitwise-not/S11.4.8_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "~" and UnaryExpression are allowed es5id: 11.4.8_A1 diff --git a/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A1.js b/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A1.js index 20f6ee25ee08..9afed14ec16f 100644 --- a/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A1.js +++ b/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between BitwiseORExpression and "|" or between "|" and BitwiseXORExpression are allowed es5id: 11.10.3_A1 diff --git a/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A2.3_T1.js b/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A2.3_T1.js index 6e118797b9e9..7924618913b0 100644 --- a/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/bitwise-or/S11.10.3_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToInt32(first expression) is called first, and then ToInt32(second expression) es5id: 11.10.3_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/bitwise-or/bigint-errors.js b/js/src/tests/test262/language/expressions/bitwise-or/bigint-errors.js new file mode 100644 index 000000000000..4e450ae48820 --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-or/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-or operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") | 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n | Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) | 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n | Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) | 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n | { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) | 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n | { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) | 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n | { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-or/bigint-non-primitive.js b/js/src/tests/test262/language/expressions/bitwise-or/bigint-non-primitive.js index f29e32403ec5..816b1050ed14 100644 --- a/js/src/tests/test262/language/expressions/bitwise-or/bigint-non-primitive.js +++ b/js/src/tests/test262/language/expressions/bitwise-or/bigint-non-primitive.js @@ -1,3 +1,4 @@ +// |reftest| skip -- BigInt is not supported // Copyright (C) 2017 Josh Wolfe. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. @@ -5,7 +6,6 @@ description: Bitwise OR for BigInt non-primitive values esid: sec-binary-bitwise-operators-runtime-semantics-evaluation info: | - 5. Let lnum be ? ToNumeric(lval). 6. Let rnum be ? ToNumeric(rval). ... diff --git a/js/src/tests/test262/language/expressions/bitwise-or/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/bitwise-or/bigint-toprimitive.js new file mode 100644 index 000000000000..048ab9c5d70c --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-or/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-or operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) | 1n, 3n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(1n | { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 3n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) | 1n, 3n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(1n | { + valueOf: function() { + return 2n; + }, + toString: err +}, 3n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(1n | { + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(1n | { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(1n | { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n | { + valueOf: null, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n | { + valueOf: 1, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n | { + valueOf: {}, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n | { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n | { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) | 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n | { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) | 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n | { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) | 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n | { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) | 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n | { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) | 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n | { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) | 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n | { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) | 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n | { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) | 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n | { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) | 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n | { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) | 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n | { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) | 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n | { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) | 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n | { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-or/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/bitwise-or/bigint-wrapped-values.js new file mode 100644 index 000000000000..198c572dc32f --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-or/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-or operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) | 1n, 3n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(1n | Object(2n), 3n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(1n | { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 3n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: valueOf"); +assert.sameValue(1n | { + valueOf: function() { + return 2n; + } +}, 3n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) | 1n, 3n, "ToPrimitive: toString"); +assert.sameValue(1n | { + toString: function() { + return 2n; + } +}, 3n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A1.js b/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A1.js index 4f9905ad6f80..9d49ba7ccea0 100644 --- a/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A1.js +++ b/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between BitwiseXORExpression and "^" or between "^" and BitwiseANDExpression are allowed es5id: 11.10.2_A1 diff --git a/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A2.3_T1.js b/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A2.3_T1.js index 1c48a233a3e5..f28173163a2b 100644 --- a/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/bitwise-xor/S11.10.2_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToInt32(first expression) is called first, and then ToInt32(second expression) es5id: 11.10.2_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/bitwise-xor/bigint-errors.js b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-errors.js new file mode 100644 index 000000000000..b60764e4ef2a --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-xor operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") ^ 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ^ Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) ^ 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ^ Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) ^ 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ^ { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) ^ 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ^ { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) ^ 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ^ { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-xor/bigint-non-primitive.js b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-non-primitive.js index 4bb6abff4b13..45d12f5ab548 100644 --- a/js/src/tests/test262/language/expressions/bitwise-xor/bigint-non-primitive.js +++ b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-non-primitive.js @@ -1,3 +1,4 @@ +// |reftest| skip -- BigInt is not supported // Copyright (C) 2017 Josh Wolfe. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. @@ -5,7 +6,6 @@ description: Bitwise XOR for BigInt non-primitive values esid: sec-binary-bitwise-operators-runtime-semantics-evaluation info: | - 5. Let lnum be ? ToNumeric(lval). 6. Let rnum be ? ToNumeric(rval). ... diff --git a/js/src/tests/test262/language/expressions/bitwise-xor/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-toprimitive.js new file mode 100644 index 000000000000..afad4c4f7adc --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-xor operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) ^ 3n, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(3n ^ { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) ^ 3n, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(3n ^ { + valueOf: function() { + return 2n; + }, + toString: err +}, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(3n ^ { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(3n ^ { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(3n ^ { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n ^ { + valueOf: null, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n ^ { + valueOf: 1, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n ^ { + valueOf: {}, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(3n ^ { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(3n ^ { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) ^ 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n ^ { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) ^ 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n ^ { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) ^ 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n ^ { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) ^ 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n ^ { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) ^ 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n ^ { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) ^ 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n ^ { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) ^ 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n ^ { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) ^ 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ^ { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) ^ 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ^ { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) ^ 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ^ { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) ^ 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ^ { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) ^ 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ^ { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/bitwise-xor/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-wrapped-values.js new file mode 100644 index 000000000000..ecbb7cee9a5a --- /dev/null +++ b/js/src/tests/test262/language/expressions/bitwise-xor/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: bitwise-xor operator ToNumeric with BigInt operands +esid: sec-binary-bitwise-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) ^ 3n, 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(3n ^ Object(2n), 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(3n ^ { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: valueOf"); +assert.sameValue(3n ^ { + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) ^ 3n, 1n, "ToPrimitive: toString"); +assert.sameValue(3n ^ { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/S11.2.3_A1.js b/js/src/tests/test262/language/expressions/call/S11.2.3_A1.js index 97751808eef8..432a20cf7d7b 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.3_A1.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between MemberExpression and Arguments are allowed es5id: 11.2.3_A1 diff --git a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T1.js b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T1.js index f79a46b6070d..69d74555f29f 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T1.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If MemberExpression does not implement the internal [[Call]] method, throw TypeError es5id: 11.2.3_A4_T1 diff --git a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T2.js b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T2.js index 1dd16d77d539..5ed076f2acc0 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T2.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If MemberExpression does not implement the internal [[Call]] method, throw TypeError es5id: 11.2.3_A4_T2 diff --git a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T3.js b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T3.js index e510645ca9a4..5cbd1c77ddd7 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T3.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If MemberExpression does not implement the internal [[Call]] method, throw TypeError es5id: 11.2.3_A4_T3 diff --git a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T4.js b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T4.js index 25cebba5c638..d09fc904255a 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T4.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If MemberExpression does not implement the internal [[Call]] method, throw TypeError es5id: 11.2.3_A4_T4 diff --git a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T5.js b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T5.js index 921c73b87922..68189c9bc991 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T5.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.3_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If MemberExpression does not implement the internal [[Call]] method, throw TypeError es5id: 11.2.3_A4_T5 diff --git a/js/src/tests/test262/language/expressions/call/S11.2.4_A1.3_T1.js b/js/src/tests/test262/language/expressions/call/S11.2.4_A1.3_T1.js index e91884453d22..7cb6c2bcc8f9 100644 --- a/js/src/tests/test262/language/expressions/call/S11.2.4_A1.3_T1.js +++ b/js/src/tests/test262/language/expressions/call/S11.2.4_A1.3_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Arguments : (ArgumentList : ArgumentList,, AssignmentExpression) is a bad syntax es5id: 11.2.4_A1.3_T1 description: incorrect syntax negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/call/eval-first-arg.js b/js/src/tests/test262/language/expressions/call/eval-first-arg.js index 544a2cccba8e..2b5c89188ce1 100644 --- a/js/src/tests/test262/language/expressions/call/eval-first-arg.js +++ b/js/src/tests/test262/language/expressions/call/eval-first-arg.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If the eval function is called with some argument, then use a first argument es5id: 15.1.2.1_A1.2_T1 diff --git a/js/src/tests/test262/language/expressions/call/eval-spread-empty-leading.js b/js/src/tests/test262/language/expressions/call/eval-spread-empty-leading.js new file mode 100644 index 000000000000..e3170f8ad1ea --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/eval-spread-empty-leading.js @@ -0,0 +1,43 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Direct eval call with empty leading spread. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + i. Let argList be ? ArgumentListEvaluation(Arguments). + ii. If argList has no elements, return undefined. + iii. Let evalText be the first element of argList. + ... + +features: [Symbol.iterator] +---*/ + +var nextCount = 0; +var iter = {}; +iter[Symbol.iterator] = function() { + return { + next: function() { + var i = nextCount++; + return {done: true, value: undefined}; + } + }; +}; + +var x = "global"; + +(function() { + var x = "local"; + eval(...iter, "x = 0;"); + assert.sameValue(x, 0); +})(); + +assert.sameValue(x, "global"); +assert.sameValue(nextCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/eval-spread-empty-trailing.js b/js/src/tests/test262/language/expressions/call/eval-spread-empty-trailing.js new file mode 100644 index 000000000000..6827e2fc1012 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/eval-spread-empty-trailing.js @@ -0,0 +1,43 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Direct eval call with empty trailing spread. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + i. Let argList be ? ArgumentListEvaluation(Arguments). + ii. If argList has no elements, return undefined. + iii. Let evalText be the first element of argList. + ... + +features: [Symbol.iterator] +---*/ + +var nextCount = 0; +var iter = {}; +iter[Symbol.iterator] = function() { + return { + next: function() { + var i = nextCount++; + return {done: true, value: undefined}; + } + }; +}; + +var x = "global"; + +(function() { + var x = "local"; + eval("x = 0;", ...iter); + assert.sameValue(x, 0); +})(); + +assert.sameValue(x, "global"); +assert.sameValue(nextCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/eval-spread-empty.js b/js/src/tests/test262/language/expressions/call/eval-spread-empty.js new file mode 100644 index 000000000000..e2c513b11b53 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/eval-spread-empty.js @@ -0,0 +1,36 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Direct eval call with empty spread. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + i. Let argList be ? ArgumentListEvaluation(Arguments). + ii. If argList has no elements, return undefined. + ... + +features: [Symbol.iterator] +---*/ + +var nextCount = 0; +var iter = {}; +iter[Symbol.iterator] = function() { + return { + next: function() { + var i = nextCount++; + return {done: true, value: undefined}; + } + }; +}; + +var result = eval(...iter); + +assert.sameValue(result, undefined); +assert.sameValue(nextCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/eval-spread.js b/js/src/tests/test262/language/expressions/call/eval-spread.js new file mode 100644 index 000000000000..dda111785a6e --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/eval-spread.js @@ -0,0 +1,51 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Direct eval call with spread. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 3. If Type(ref) is Reference and IsPropertyReference(ref) is false and GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + i. Let argList be ? ArgumentListEvaluation(Arguments). + ii. If argList has no elements, return undefined. + iii. Let evalText be the first element of argList. + ... + +features: [Symbol.iterator] +---*/ + +var elements = [ + "x = 1;", + "x = 2;", +]; + +var nextCount = 0; +var iter = {}; +iter[Symbol.iterator] = function() { + return { + next: function() { + var i = nextCount++; + if (i < elements.length) { + return {done: false, value: elements[i]}; + } + return {done: true, value: undefined}; + } + }; +}; + +var x = "global"; + +(function() { + var x = "local"; + eval(...iter); + assert.sameValue(x, 1); +})(); + +assert.sameValue(x, "global"); +assert.sameValue(nextCount, 3); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-call-args-strict.js b/js/src/tests/test262/language/expressions/call/tco-call-args-strict.js index d682f84c783f..0cfa38388885 100644 --- a/js/src/tests/test262/language/expressions/call/tco-call-args-strict.js +++ b/js/src/tests/test262/language/expressions/call/tco-call-args-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/call/tco-cross-realm-class-construct.js b/js/src/tests/test262/language/expressions/call/tco-cross-realm-class-construct.js new file mode 100644 index 000000000000..e04b89d60383 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-cross-realm-class-construct.js @@ -0,0 +1,42 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Check TypeError is thrown from correct realm with tco-call to class constructor from derived + class [[Construct]] invocation. +info: | + 12.3.4.3 Runtime Semantics: EvaluateDirectCall( func, thisValue, arguments, tailPosition ) + ... + 4. If tailPosition is true, perform PrepareForTailCall(). + 5. Let result be Call(func, thisValue, argList). + 6. Assert: If tailPosition is true, the above call will not return here, but instead evaluation will continue as if the following return has already occurred. + 7. Assert: If result is not an abrupt completion, then Type(result) is an ECMAScript language type. + 8. Return result. + + 9.2.1 [[Call]] ( thisArgument, argumentsList) + ... + 2. If F.[[FunctionKind]] is "classConstructor", throw a TypeError exception. + 3. Let callerContext be the running execution context. + 4. Let calleeContext be PrepareForOrdinaryCall(F, undefined). + 5. Assert: calleeContext is now the running execution context. + ... + +features: [tail-call-optimization, class] +---*/ + +// - The class constructor call is in a valid tail-call position, which means PrepareForTailCall is performed. +// - The function call returns from `otherRealm` and proceeds the tail-call in this realm. +// - Calling the class constructor throws a TypeError from the current realm, that means this realm and not `otherRealm`. +var code = "(class { constructor() { return (class {})(); } });"; + +var otherRealm = $262.createRealm(); +var tco = otherRealm.evalScript(code); + +assert.throws(TypeError, function() { + new tco(); +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-cross-realm-class-derived-construct.js b/js/src/tests/test262/language/expressions/call/tco-cross-realm-class-derived-construct.js new file mode 100644 index 000000000000..c54ea6cc4c8c --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-cross-realm-class-derived-construct.js @@ -0,0 +1,42 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Check TypeError is thrown from correct realm with tco-call to class constructor from + class [[Construct]] invocation. +info: | + 12.3.4.3 Runtime Semantics: EvaluateDirectCall( func, thisValue, arguments, tailPosition ) + ... + 4. If tailPosition is true, perform PrepareForTailCall(). + 5. Let result be Call(func, thisValue, argList). + 6. Assert: If tailPosition is true, the above call will not return here, but instead evaluation will continue as if the following return has already occurred. + 7. Assert: If result is not an abrupt completion, then Type(result) is an ECMAScript language type. + 8. Return result. + + 9.2.1 [[Call]] ( thisArgument, argumentsList) + ... + 2. If F.[[FunctionKind]] is "classConstructor", throw a TypeError exception. + 3. Let callerContext be the running execution context. + 4. Let calleeContext be PrepareForOrdinaryCall(F, undefined). + 5. Assert: calleeContext is now the running execution context. + ... + +features: [tail-call-optimization, class] +---*/ + +// - The class constructor call is in a valid tail-call position, which means PrepareForTailCall is performed. +// - The function call returns from `otherRealm` and proceeds the tail-call in this realm. +// - Calling the class constructor throws a TypeError from the current realm, that means this realm and not `otherRealm`. +var code = "(class extends Object { constructor() { return (class {})(); } });"; + +var otherRealm = $262.createRealm(); +var tco = otherRealm.evalScript(code); + +assert.throws(TypeError, function() { + new tco(); +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-cross-realm-fun-call.js b/js/src/tests/test262/language/expressions/call/tco-cross-realm-fun-call.js new file mode 100644 index 000000000000..2b0e426b9b6e --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-cross-realm-fun-call.js @@ -0,0 +1,41 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Check TypeError is thrown from correct realm with tco-call to class constructor from [[Call]] invocation. +info: | + 12.3.4.3 Runtime Semantics: EvaluateDirectCall( func, thisValue, arguments, tailPosition ) + ... + 4. If tailPosition is true, perform PrepareForTailCall(). + 5. Let result be Call(func, thisValue, argList). + 6. Assert: If tailPosition is true, the above call will not return here, but instead evaluation will continue as if the following return has already occurred. + 7. Assert: If result is not an abrupt completion, then Type(result) is an ECMAScript language type. + 8. Return result. + + 9.2.1 [[Call]] ( thisArgument, argumentsList) + ... + 2. If F.[[FunctionKind]] is "classConstructor", throw a TypeError exception. + 3. Let callerContext be the running execution context. + 4. Let calleeContext be PrepareForOrdinaryCall(F, undefined). + 5. Assert: calleeContext is now the running execution context. + ... + +features: [tail-call-optimization, class] +---*/ + +// - The class constructor call is in a valid tail-call position, which means PrepareForTailCall is performed. +// - The function call returns from `otherRealm` and proceeds the tail-call in this realm. +// - Calling the class constructor throws a TypeError from the current realm, that means this realm and not `otherRealm`. +var code = "'use strict'; (function() { return (class {})(); });"; + +var otherRealm = $262.createRealm(); +var tco = otherRealm.evalScript(code); + +assert.throws(TypeError, function() { + tco(); +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-cross-realm-fun-construct.js b/js/src/tests/test262/language/expressions/call/tco-cross-realm-fun-construct.js new file mode 100644 index 000000000000..c1863ad9afa6 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-cross-realm-fun-construct.js @@ -0,0 +1,41 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Check TypeError is thrown from correct realm with tco-call to class constructor from [[Construct]] invocation. +info: | + 12.3.4.3 Runtime Semantics: EvaluateDirectCall( func, thisValue, arguments, tailPosition ) + ... + 4. If tailPosition is true, perform PrepareForTailCall(). + 5. Let result be Call(func, thisValue, argList). + 6. Assert: If tailPosition is true, the above call will not return here, but instead evaluation will continue as if the following return has already occurred. + 7. Assert: If result is not an abrupt completion, then Type(result) is an ECMAScript language type. + 8. Return result. + + 9.2.1 [[Call]] ( thisArgument, argumentsList) + ... + 2. If F.[[FunctionKind]] is "classConstructor", throw a TypeError exception. + 3. Let callerContext be the running execution context. + 4. Let calleeContext be PrepareForOrdinaryCall(F, undefined). + 5. Assert: calleeContext is now the running execution context. + ... + +features: [tail-call-optimization, class] +---*/ + +// - The class constructor call is in a valid tail-call position, which means PrepareForTailCall is performed. +// - The function call returns from `otherRealm` and proceeds the tail-call in this realm. +// - Calling the class constructor throws a TypeError from the current realm, that means this realm and not `otherRealm`. +var code = "'use strict'; (function() { return (class {})(); });"; + +var otherRealm = $262.createRealm(); +var tco = otherRealm.evalScript(code); + +assert.throws(TypeError, function() { + new tco(); +}); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-member-args-strict.js b/js/src/tests/test262/language/expressions/call/tco-member-args-strict.js index 4545efecaa66..46490813ca5e 100644 --- a/js/src/tests/test262/language/expressions/call/tco-member-args-strict.js +++ b/js/src/tests/test262/language/expressions/call/tco-member-args-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/call/tco-non-eval-function-dynamic.js b/js/src/tests/test262/language/expressions/call/tco-non-eval-function-dynamic.js new file mode 100644 index 000000000000..55d442a5b7c1 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-non-eval-function-dynamic.js @@ -0,0 +1,47 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Tail-call with identifier named "eval" in function environment, local "eval" binding dynamically added. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 6. If Type(ref) is Reference and IsPropertyReference(ref) is false and + GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + ... + ... + 9. Return ? EvaluateCall(func, ref, arguments, tailCall). + + 12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition ) + ... + 7. If tailPosition is true, perform PrepareForTailCall(). + 8. Let result be Call(func, thisValue, argList). + ... + +flags: [noStrict] +features: [tail-call-optimization] +includes: [tcoHelper.js] +---*/ + +var callCount = 0; + +(function() { + function f(n) { + "use strict"; + if (n === 0) { + callCount += 1 + return; + } + return eval(n - 1); + } + eval("var eval = f;"); + f($MAX_ITERATIONS); +})(); + +assert.sameValue(callCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-non-eval-function.js b/js/src/tests/test262/language/expressions/call/tco-non-eval-function.js new file mode 100644 index 000000000000..1d704f449450 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-non-eval-function.js @@ -0,0 +1,47 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Tail-call with identifier named "eval" in function environment. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 6. If Type(ref) is Reference and IsPropertyReference(ref) is false and + GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + ... + ... + 9. Return ? EvaluateCall(func, ref, arguments, tailCall). + + 12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition ) + ... + 7. If tailPosition is true, perform PrepareForTailCall(). + 8. Let result be Call(func, thisValue, argList). + ... + +flags: [noStrict] +features: [tail-call-optimization] +includes: [tcoHelper.js] +---*/ + +var callCount = 0; + +(function() { + function f(n) { + "use strict"; + if (n === 0) { + callCount += 1 + return; + } + return eval(n - 1); + } + var eval = f; + f($MAX_ITERATIONS); +})(); + +assert.sameValue(callCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-non-eval-global.js b/js/src/tests/test262/language/expressions/call/tco-non-eval-global.js new file mode 100644 index 000000000000..9587c817b9a0 --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-non-eval-global.js @@ -0,0 +1,46 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Tail-call with identifier named "eval" in global environment. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 6. If Type(ref) is Reference and IsPropertyReference(ref) is false and + GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + ... + ... + 9. Return ? EvaluateCall(func, ref, arguments, tailCall). + + 12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition ) + ... + 7. If tailPosition is true, perform PrepareForTailCall(). + 8. Let result be Call(func, thisValue, argList). + ... + +flags: [noStrict] +features: [tail-call-optimization] +includes: [tcoHelper.js] +---*/ + +var callCount = 0; + +function f(n) { + "use strict"; + if (n === 0) { + callCount += 1 + return; + } + return eval(n - 1); +} +eval = f; + +f($MAX_ITERATIONS); + +assert.sameValue(callCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/call/tco-non-eval-with.js b/js/src/tests/test262/language/expressions/call/tco-non-eval-with.js new file mode 100644 index 000000000000..3535cc7a338d --- /dev/null +++ b/js/src/tests/test262/language/expressions/call/tco-non-eval-with.js @@ -0,0 +1,49 @@ +// |reftest| skip -- tail-call-optimization is not supported +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-function-calls-runtime-semantics-evaluation +description: > + Tail-call with identifier named "eval" in object environment. +info: | + 12.3.4.1 Runtime Semantics: Evaluation + ... + 6. If Type(ref) is Reference and IsPropertyReference(ref) is false and + GetReferencedName(ref) is "eval", then + a. If SameValue(func, %eval%) is true, then + ... + ... + 9. Return ? EvaluateCall(func, ref, arguments, tailCall). + + 12.3.4.2 Runtime Semantics: EvaluateCall( func, ref, arguments, tailPosition ) + ... + 7. If tailPosition is true, perform PrepareForTailCall(). + 8. Let result be Call(func, thisValue, argList). + ... + +flags: [noStrict] +features: [tail-call-optimization] +includes: [tcoHelper.js] +---*/ + +var callCount = 0; + +var f, scope = {}; +with (scope) { + f = function (n) { + "use strict"; + if (n === 0) { + callCount += 1 + return; + } + return eval(n - 1); + } +} +scope.eval = f; + +f($MAX_ITERATIONS); + +assert.sameValue(callCount, 1); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-duplicates.js index ec5ab0cbdb88..a8c790709bb1 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-rest.js index bb513a0406c1..36a20136cdf7 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js index e477a39b5428..537ac55cce5f 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js index 6a6ece4b4324..907ba5b1c189 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-rest.js index f7721b11377d..35a081730e8f 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js index ffa4f7f41226..918f56e77172 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier-escaped.js index 9cbeb8a1a72d..6b829a82d35b 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier.js index 86df91c4bde3..e135bdcd6a36 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference-escaped.js index 833303e808fa..eb70dedcf32a 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference.js index 8f1542d80263..a2058dca18a4 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier-escaped.js index ce209311887b..5c4731077be4 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier.js index 713b98af6956..5a7c4ca1b1df 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier-escaped.js index 5c8ccbf86690..5acbc4256677 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier.js index 8e83ca7910f8..1f1963574439 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference-escaped.js index 7109ff0f92c4..5f45e79c7951 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference.js index 115dda813b0c..b160057d8579 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier-escaped.js index 3adf65245f73..389f8f6da45e 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier.js index 2db51e87011e..514241f6d8e3 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier-escaped.js index 49d3799cb240..be5f00a1e0cb 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier.js index e718577ae863..8509f18f8ab7 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference-escaped.js index 89d514ba16b5..d1d9e61ce85f 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference.js index 469e6e32ddde..52daa30e00e1 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier-escaped.js index d4c32e423f61..86c53513ad2d 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier.js index 64e9879ff5f3..a4bfd61e955c 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict-strict.js index f8285d7c2601..ec10052f3dd5 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-strict-strict.js index 5f0824c0ce56..580c079eaa75 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-static-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier-escaped.js index c597bdf0c359..6df2f49a8e00 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier.js index df6235777e74..efc671172d9b 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference-escaped.js index 1ca9b4721e00..f42742ffa495 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference.js index 9554cbae75ed..e24f043809c8 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier-escaped.js index 735707ec984a..fe1fce0af22e 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier.js index 4a958775bf18..ea04baa8ebb4 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-spread-strict-strict.js index 15414ce003e9..0f86e808d5b1 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-strict-strict.js index 9dae71f78af3..865582b389c2 100644 --- a/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/async-gen-method-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-duplicates.js index 7fc964200dcc..6927c7105ce2 100644 --- a/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-rest.js index f5896c1195c4..caf722d9957a 100644 --- a/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/async-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js index 6187a094ef55..68ee436dcf99 100644 --- a/js/src/tests/test262/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-class-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-duplicates.js index fd87b5034c9f..9972f07c38c2 100644 --- a/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-rest.js index c665d5772b76..64070f51a884 100644 --- a/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/async-meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js index 211a6e3c26ad..d6fd4f8428ed 100644 --- a/js/src/tests/test262/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-class-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier-escaped.js index 6085aa68e34b..dd212acdd396 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier.js index 0e6548b2041d..504a36b86ca3 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-method-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference-escaped.js index fdcd5c0a351e..cc4a45aa5c73 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference.js index e79ffeb7e830..eb31ec0ff2a9 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/async-method-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier-escaped.js index 55beb5adbf6b..209372da9f9c 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier.js index da269e02551b..73358644665a 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-method-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier-escaped.js index 52dab6881d62..936c5c311deb 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier.js index 03f297d44ba6..76845ee2f594 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference-escaped.js index 983923e07c5b..a8b8f813abdb 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference.js index acbd348f1f40..850dd51e7533 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier-escaped.js index fb3067753dab..667d75ef918e 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier.js index 0e1b33944223..dce6b517b101 100644 --- a/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/async-method-static-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js index 6fa14c4e76fd..576ed3f73602 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js index 73b6ae974edc..f05e564b2cf4 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js index 2bf54e7cdb5a..9019c9a66c39 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js index af2aa042428e..81b48c819179 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js index 931c6f047bb9..fcb33d1d6880 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js index 43b8c57eb6eb..acbb8c0dcb87 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js index 2c610e6f0ab0..65b1602890cc 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js index 96b5c6889767..3c2894e487f2 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js index 1185995af670..41bd44a69b1a 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js index 25d45821646a..6c81c32ad565 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js index 984c006fa38c..63d2b194f733 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js index 7cf4a3473163..bb2dec84da89 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js index 02ad771874ed..612b8499defc 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js index c3d3cde845d6..00c77bf7236d 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js index 2ab4a8200eac..ddbe90c64082 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js index b5c231e0f54e..09a306273074 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js index 7ace6264785f..980cbcedfe4e 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js index cf20a34bb590..0b5cc48e558a 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js index 607bd4b6a892..ae3a8a9893ee 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js index a9a5fbb81996..c6baa6b59e76 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js index 1d8fed4677f2..08f78941a884 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js index 0e318c683209..7cd05c1df939 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js index c68c9fb9b3b5..8d809c481f3f 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js index 39f7cbf6956e..371566c4e23e 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js index 12ff5b046b58..6b573e6118fa 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js index f9af188dfd37..dc03eb145089 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js index bd22dfb7d05b..537c2b68922f 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js index 73036f459f0a..f2622c3a11a6 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js index 27729141625b..493bc2b89e6a 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js index 4b23da0dad9b..f27fc54cac35 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js index 42ecacd62209..daabc9eb846f 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js index fd850e9d9b5f..80af6f6e662c 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js index e40b6536e3de..0739645e16c7 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js index 2f355ac39319..71a106f5a881 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js index ed9d0d01aa6b..06825312c7c0 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js index 7c54c9e2a9f0..aa16f60a8c5a 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js index e30b9b92aa24..49789e0c3e4c 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js index f6ea2d9a2ddf..b9c058b73e75 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js index 2473e6f9270b..41228a2e32b1 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js index c2a10d43d0b2..afe2341da8b7 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js index 66a7731ff82b..c4e395665849 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js index 84ca4d387bcb..612db0df2429 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js index 62615f4c9325..386baa4ccba7 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js index b88c22072e2a..731c1eabe36e 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js index 49709e0d403e..79b0167a2f42 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js index 3301785efa9b..4453b62ad8a5 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js index c7f3b1983e6e..16a448d960eb 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js index bdbc54aebc0c..be227055e3dc 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-ary.js index 9a8a26488845..6ef3ed0f27fd 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-id.js index e6771dd7377a..76b84368e3ca 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-obj.js index b7240862d458..5d708e7b6a9f 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-ary.js index acd5f2bacbb9..6aaf06cfbaa4 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-id.js index e6c6895ffd44..f4e11c43ea0b 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-obj.js index 427a2ac45b68..acb990894267 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js index 968398842942..7ff3459e50c2 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js index adb95c4c1d5a..02bb5259f2a5 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js index ac703c51759f..cf1ca4c11e62 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js index bd69e67a5629..859172cc939e 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js index 5d5fbcadd493..5184878fa8a1 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js index e67e580cde68..c220a2e1734d 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-ary.js index fb30f6b95cb3..83ca0b98119d 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-id.js index 55f9e99689ff..8a559f43e80b 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-obj.js index fa97e3f70884..b8b6a75f0895 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js index b250235e3ab7..31a4e0c6c7e0 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js index 6134d1875541..5a432adbe0ac 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js index f80bd39ce53f..969fcede5e1d 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js index 1a4ae44fc370..7387bffb8924 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js index 8decfef846fc..437b4d155384 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js index eaaa62b6e78d..4a06e9979993 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js index ab58f3fbd2aa..3bafecd97eba 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js index a2043a9e00c6..bf8014e42ea0 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js index d70206a23f96..5ac7185193ed 100644 --- a/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/err-field-delete-call-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-field-delete-call-expression-privatename.js index b5e4164e90fb..b95146443b54 100644 --- a/js/src/tests/test262/language/expressions/class/err-field-delete-call-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-field-delete-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-field-delete-covered-call-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-field-delete-covered-call-expression-privatename.js index 23d42fce69e2..98709b42da80 100644 --- a/js/src/tests/test262/language/expressions/class/err-field-delete-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-field-delete-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-field-delete-covered-member-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-field-delete-covered-member-expression-privatename.js index 429917555bac..c781997789fb 100644 --- a/js/src/tests/test262/language/expressions/class/err-field-delete-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-field-delete-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-field-delete-member-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-field-delete-member-expression-privatename.js index 1a0d41cc857d..6044ea190774 100644 --- a/js/src/tests/test262/language/expressions/class/err-field-delete-member-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-field-delete-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js index 47732a7bd0f2..bd933a421851 100644 --- a/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js index ee7fb8ea96ac..cfd2db7e01ca 100644 --- a/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-method-delete-call-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-method-delete-call-expression-privatename.js index dea956c7f740..a6edf3cfd051 100644 --- a/js/src/tests/test262/language/expressions/class/err-method-delete-call-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-method-delete-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-method-delete-covered-call-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-method-delete-covered-call-expression-privatename.js index ba575d1f231f..3d40305b0b61 100644 --- a/js/src/tests/test262/language/expressions/class/err-method-delete-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-method-delete-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-method-delete-covered-member-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-method-delete-covered-member-expression-privatename.js index 8ffc60430b3c..0b24bd45ed86 100644 --- a/js/src/tests/test262/language/expressions/class/err-method-delete-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-method-delete-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-method-delete-member-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-method-delete-member-expression-privatename.js index e58fa88620af..ea222e76b3ad 100644 --- a/js/src/tests/test262/language/expressions/class/err-method-delete-member-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-method-delete-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js index 7ae968b64ee2..2730b961adf3 100644 --- a/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js b/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js index 44939d69ab14..18d8b457c2da 100644 --- a/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-computed-names.js index 12aaee3acc5d..f817a3483f86 100644 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-computed-names.js deleted file mode 100644 index b081ee2b1be1..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-gen.template -/*--- -description: Static Computed property names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js deleted file mode 100644 index 6d3d7a098ff5..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-gen.template -/*--- -description: Static computed property symbol names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-literal-names.js deleted file mode 100644 index 47d5d062a5da..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-gen.template -/*--- -description: Static literal property names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-private-names.js deleted file mode 100644 index 562d265ce6c1..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-gen-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-gen.template -/*--- -description: literal private names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-computed-names.js index 852517281df5..20063b20df25 100644 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-computed-names.js deleted file mode 100644 index c7e4addb80be..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-method.template -/*--- -description: Static Computed property names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js deleted file mode 100644 index c68b3b1b37ee..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-method.template -/*--- -description: Static computed property symbol names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-literal-names.js deleted file mode 100644 index 6004b80faed6..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-method.template -/*--- -description: Static literal property names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-private-names.js deleted file mode 100644 index c221f42a1274..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-method-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-method.template -/*--- -description: literal private names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js index 33fe326d321b..aba9a27ee4a6 100644 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static async *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static async *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js deleted file mode 100644 index 496031c46fbc..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-names.js +++ /dev/null @@ -1,61 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-gen.template -/*--- -description: Static Computed property names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static async *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js deleted file mode 100644 index d492443ed2dc..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,75 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-gen.template -/*--- -description: Static computed property symbol names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static async *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js deleted file mode 100644 index 86e2c86a481c..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-literal-names.js +++ /dev/null @@ -1,78 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-gen.template -/*--- -description: Static literal property names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static async *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js deleted file mode 100644 index 541c8d4de1d3..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-gen-static-private-names.js +++ /dev/null @@ -1,71 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-gen.template -/*--- -description: literal private names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static async *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js index 1d1a09e23508..f2d1cf68d90d 100644 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static async m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static async m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js deleted file mode 100644 index 8fd9d7c10a27..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-method.template -/*--- -description: Static Computed property names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static async m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js deleted file mode 100644 index 9f8a419a9fef..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-method.template -/*--- -description: Static computed property symbol names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static async m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js deleted file mode 100644 index be32ac8af258..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-method.template -/*--- -description: Static literal property names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static async m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js deleted file mode 100644 index 04bdf9950a91..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-async-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-async-method.template -/*--- -description: literal private names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static async m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-computed-names.js index 3ddae57223b1..07055e1a8792 100644 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js deleted file mode 100644 index a858f1fded92..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-gen.template -/*--- -description: Static Computed property names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js deleted file mode 100644 index 761a3f20789c..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-gen.template -/*--- -description: Static computed property symbol names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js deleted file mode 100644 index b39d0b788310..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-gen.template -/*--- -description: Static literal property names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js deleted file mode 100644 index 08b23912879d..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-gen-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-gen.template -/*--- -description: literal private names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-computed-names.js index 88a33aa30e10..c9eada9a3d68 100644 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js deleted file mode 100644 index 1d30fb0cd8c4..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-method.template -/*--- -description: Static Computed property names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js deleted file mode 100644 index b3eb077414b5..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-method.template -/*--- -description: Static computed property symbol names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js deleted file mode 100644 index fccf52f04026..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-method.template -/*--- -description: Static literal property names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-private-names.js deleted file mode 100644 index c5dc964084aa..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-after-same-line-static-method-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-static-method.template -/*--- -description: literal private names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js index d8e8f2be6870..ace5834fe87b 100644 --- a/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js index 23c8e2005abc..8004efe1ee2e 100644 --- a/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-arrow-fnc-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-asi-3.js b/js/src/tests/test262/language/expressions/class/fields-asi-3.js index 8ed9477d5638..e5820b010042 100644 --- a/js/src/tests/test262/language/expressions/class/fields-asi-3.js +++ b/js/src/tests/test262/language/expressions/class/fields-asi-3.js @@ -7,7 +7,7 @@ description: ASI test in field declarations -- error when computed name interpre esid: sec-automatic-semicolon-insertion features: [class, class-fields-public] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/class/fields-asi-4.js b/js/src/tests/test262/language/expressions/class/fields-asi-4.js index 29633f6e45c7..3d17c7c7d0fb 100644 --- a/js/src/tests/test262/language/expressions/class/fields-asi-4.js +++ b/js/src/tests/test262/language/expressions/class/fields-asi-4.js @@ -7,7 +7,7 @@ description: ASI test in field declarations -- error when generator interpreted esid: sec-automatic-semicolon-insertion features: [class, class-fields-public, generators] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-arguments.js index 8c5afc73b5fc..24465ddddb87 100644 --- a/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-super.js index 70ff6706c0b3..483be6e9f61b 100644 --- a/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-comp-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-computed-name-static-propname-constructor.js b/js/src/tests/test262/language/expressions/class/fields-computed-name-static-propname-constructor.js deleted file mode 100644 index 7e24e88ae257..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-computed-name-static-propname-constructor.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// Copyright (C) 2017 Valerie Young. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: > - static class fields forbid PropName 'constructor' (no early error for - ComputedPropertyName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -info: | - Static Semantics: PropName - ... - ComputedPropertyName : [ AssignmentExpression ] - Return empty. - - // This test file also tests the ComputedPropertyName won't trigger the - // following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or - "constructor". ----*/ - -var C = class { - static ["constructor"]; -}; - -assert.sameValue(C.hasOwnProperty("constructor"), true); - -var c = new C(); -assert.sameValue(c.hasOwnProperty("constructor"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-computed-name-static-propname-prototype.js b/js/src/tests/test262/language/expressions/class/fields-computed-name-static-propname-prototype.js deleted file mode 100644 index 9bb6ee0ceb0b..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-computed-name-static-propname-prototype.js +++ /dev/null @@ -1,61 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// Copyright (C) 2017 Valerie Young. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: > - Cannot redefine a non-configurable, non-writable "prototype" property -esid: runtime-semantics-class-definition-evaluation -features: [class, class-fields-public] -info: | - // This test file also tests the ComputedPropertyName won't trigger the - // following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or - "constructor". - - 2.13.2 Runtime Semantics: ClassDefinitionEvaluation - - ... - 21. Perform MakeConstructor(F, false, proto). - ... - 25. Else, let elements be NonConstructorMethodDefinitions of ClassBody. - 26. Let fieldRecords be a new empty List. - 26. For each ClassElement me in order from elements - a. If IsStatic of me is false, then - i. Let fields be the result of performing ClassElementEvaluation for e - with arguments proto and false. - ... - 33. Let result be InitializeStaticFields(F). - ... - - // ClassElementEvaluation should evaluate the ComputedPropertyName - - 12.2.6.7 Runtime Semantics: Evaluation - - ComputedPropertyName:[AssignmentExpression] - - 1. Let exprValue be the result of evaluating AssignmentExpression. - 2. Let propName be ? GetValue(exprValue). - 3. Return ? ToPropertyKey(propName). - - // And the Static Fields should be defined to the class - - 2.8 InitializeStaticFields(F) - - ... - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). ----*/ - -assert.throws(TypeError, function() { - var C = class { - static ["prototype"]; - }; -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive-symbol.js b/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive-symbol.js index 067fa8a5a1e0..27b0fdfecb9c 100644 --- a/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive-symbol.js +++ b/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive-symbol.js @@ -25,9 +25,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive.js b/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive.js index 3805b20a3bc5..83808232638f 100644 --- a/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive.js +++ b/js/src/tests/test262/language/expressions/class/fields-computed-name-toprimitive.js @@ -25,9 +25,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js b/js/src/tests/test262/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js deleted file mode 100644 index 3f29510a3d71..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-computed-variable-name-static-propname-constructor.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-constructor.case -// - src/class-fields/propname-error-static/cls-expr-static-variable-name.template -/*--- -description: static class field forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -info: | - Static Semantics: PropName - ... - ComputedPropertyName : [ AssignmentExpression ] - Return empty. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -var constructor = 'foo'; -var C = class { - static [constructor]; -}; - -assert.sameValue(C.hasOwnProperty("foo"), true); - -var c = new C(); -assert.sameValue(c.hasOwnProperty("foo"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js b/js/src/tests/test262/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js deleted file mode 100644 index 402bfa9caf9b..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-computed-variable-name-static-propname-prototype.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-prototype.case -// - src/class-fields/propname-error-static/cls-expr-static-variable-name.template -/*--- -description: static class fields forbid PropName 'prototype' (no early error -- PropName of ComputedPropertyName not forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -info: | - Static Semantics: PropName - ... - ComputedPropertyName : [ AssignmentExpression ] - Return empty. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -var prototype = 'foo'; -var C = class { - static [prototype]; -}; - -assert.sameValue(C.hasOwnProperty("foo"), true); - -var c = new C(); -assert.sameValue(c.hasOwnProperty("foo"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-duplicate-privatenames.js b/js/src/tests/test262/language/expressions/class/fields-duplicate-privatenames.js index ffc84f02722b..22ba29c1a309 100644 --- a/js/src/tests/test262/language/expressions/class/fields-duplicate-privatenames.js +++ b/js/src/tests/test262/language/expressions/class/fields-duplicate-privatenames.js @@ -7,7 +7,7 @@ description: Syntax error if the same private field defined twice esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-arguments.js index eaea6a8b2a2b..77052e2f9922 100644 --- a/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-super.js index 4e479c4378c3..518b70fac489 100644 --- a/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-equality-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js index 99d214a5f15f..47f01e6cd5ff 100644 --- a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js +++ b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-referenceerror.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js index e84df9c6e7b3..8fa713400700 100644 --- a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js +++ b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-toprimitive-err.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js index 728ab9cc604b..e3c8df3d4bb0 100644 --- a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js +++ b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-tostring-err.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js index cf4975776a55..af8212a66864 100644 --- a/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js +++ b/js/src/tests/test262/language/expressions/class/fields-evaluation-error-computed-name-valueof-err.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/expressions/class/fields-init-value-incremental.js b/js/src/tests/test262/language/expressions/class/fields-init-value-incremental.js index 79bb4aac8a70..5e57516f9185 100644 --- a/js/src/tests/test262/language/expressions/class/fields-init-value-incremental.js +++ b/js/src/tests/test262/language/expressions/class/fields-init-value-incremental.js @@ -29,59 +29,43 @@ info: | ... ---*/ -var x = 0; +var x = 1; var C = class { - static [x++] = x++; [x++] = x++; - static [x++] = x++; [x++] = x++; } var c1 = new C(); var c2 = new C(); -verifyProperty(C, "0", { +verifyProperty(c1, "1", { + value: 3, + enumerable: true, + configurable: true, + writable: true, +}); + +verifyProperty(c1, "2", { value: 4, enumerable: true, configurable: true, writable: true, }); -verifyProperty(C, "2", { +verifyProperty(c2, "1", { value: 5, enumerable: true, configurable: true, writable: true, }); -verifyProperty(c1, "1", { +verifyProperty(c2, "2", { value: 6, enumerable: true, configurable: true, writable: true, }); -verifyProperty(c1, "3", { - value: 7, - enumerable: true, - configurable: true, - writable: true, -}); - -verifyProperty(c2, "1", { - value: 8, - enumerable: true, - configurable: true, - writable: true, -}); - -verifyProperty(c2, "3", { - value: 9, - enumerable: true, - configurable: true, - writable: true, -}); - reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-initializer-static-private-fields-forbidden.js b/js/src/tests/test262/language/expressions/class/fields-initializer-static-private-fields-forbidden.js new file mode 100644 index 000000000000..bab9d3be2b74 --- /dev/null +++ b/js/src/tests/test262/language/expressions/class/fields-initializer-static-private-fields-forbidden.js @@ -0,0 +1,19 @@ +// |reftest| skip error:SyntaxError -- class-fields-private is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-private-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-expr-static-field-initializer.template +/*--- +description: static private class fields forbidden (early error -- static ClassElementName Initializer) +features: [class, class-fields-private] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + static #field = 0; +}; diff --git a/js/src/tests/test262/language/expressions/class/fields-initializer-static-public-fields-forbidden.js b/js/src/tests/test262/language/expressions/class/fields-initializer-static-public-fields-forbidden.js new file mode 100644 index 000000000000..386b65b5fe95 --- /dev/null +++ b/js/src/tests/test262/language/expressions/class/fields-initializer-static-public-fields-forbidden.js @@ -0,0 +1,19 @@ +// |reftest| skip error:SyntaxError -- class-fields-public is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-public-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-expr-static-field-initializer.template +/*--- +description: static public class fields forbidden (early error -- static ClassElementName Initializer) +features: [class, class-fields-public] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + static field = 0; +}; diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-arguments.js index 8939d37e6a32..388d00b44b7f 100644 --- a/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-super.js index e596ea37fa55..90fe29e4e199 100644 --- a/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-literal-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-propname-constructor.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-propname-constructor.js index 1cfb7b738822..d34f400cc35f 100644 --- a/js/src/tests/test262/language/expressions/class/fields-literal-name-propname-constructor.js +++ b/js/src/tests/test262/language/expressions/class/fields-literal-name-propname-constructor.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: PropName diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-static-private-fields-forbidden.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-static-private-fields-forbidden.js new file mode 100644 index 000000000000..2e9907c9445c --- /dev/null +++ b/js/src/tests/test262/language/expressions/class/fields-literal-name-static-private-fields-forbidden.js @@ -0,0 +1,20 @@ +// |reftest| skip error:SyntaxError -- class-fields-private is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-private-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-expr-static-literal-name.template +/*--- +description: static private class fields forbidden (early error -- PropName of IdentifierName is forbidden) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + static #field; +}; diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-static-propname-constructor.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-static-propname-constructor.js deleted file mode 100644 index b6f0cda30ef1..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-literal-name-static-propname-constructor.js +++ /dev/null @@ -1,32 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-constructor.case -// - src/class-fields/propname-error-static/cls-expr-static-literal-name.template -/*--- -description: static class field forbid PropName 'constructor' (early error -- PropName of IdentifierName is forbidden) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - LiteralPropertyName : IdentifierName - Return StringValue of IdentifierName. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static constructor; -}; diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-static-propname-prototype.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-static-propname-prototype.js deleted file mode 100644 index b4bfddd352c2..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-literal-name-static-propname-prototype.js +++ /dev/null @@ -1,32 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-prototype.case -// - src/class-fields/propname-error-static/cls-expr-static-literal-name.template -/*--- -description: static class fields forbid PropName 'prototype' (early error -- PropName of IdentifierName is forbidden) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - LiteralPropertyName : IdentifierName - Return StringValue of IdentifierName. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static prototype; -}; diff --git a/js/src/tests/test262/language/expressions/class/fields-literal-name-static-public-fields-forbidden.js b/js/src/tests/test262/language/expressions/class/fields-literal-name-static-public-fields-forbidden.js new file mode 100644 index 000000000000..af60903b176a --- /dev/null +++ b/js/src/tests/test262/language/expressions/class/fields-literal-name-static-public-fields-forbidden.js @@ -0,0 +1,20 @@ +// |reftest| skip error:SyntaxError -- class-fields-public is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-public-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-expr-static-literal-name.template +/*--- +description: static public class fields forbidden (early error -- PropName of IdentifierName is forbidden) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-public] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + static field; +}; diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-computed-names.js index b1b844788261..9c2614dd62ff 100644 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-computed-names.js @@ -27,7 +27,7 @@ var x = "b"; var C = class { foo = "foobar"; m() { return 42 } - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] m2() { return 39 } bar = "barbaz"; @@ -77,16 +77,6 @@ verifyProperty(c, "bar", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-computed-names.js deleted file mode 100644 index 1e54298180f0..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-computed-names.js +++ /dev/null @@ -1,95 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-multiple-definitions.template -/*--- -description: Static Computed property names (multiple fields definitions) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - foo = "foobar"; - m() { return 42 } - static ["a"] = 42; ["a"] = 39 - m2() { return 39 } - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js deleted file mode 100644 index 184a75371159..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-computed-symbol-names.js +++ /dev/null @@ -1,109 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-multiple-definitions.template -/*--- -description: Static computed property symbol names (multiple fields definitions) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - foo = "foobar"; - m() { return 42 } - static [x]; static [y] = 42 - m2() { return 39 } - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-literal-names.js deleted file mode 100644 index e7e95446d1eb..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-literal-names.js +++ /dev/null @@ -1,112 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-multiple-definitions.template -/*--- -description: Static literal property names (multiple fields definitions) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - foo = "foobar"; - m() { return 42 } - static a; b = 42; - static c = fn - m2() { return 39 } - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-private-names.js deleted file mode 100644 index 91f0e9b03a64..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-definitions-static-private-names.js +++ /dev/null @@ -1,105 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-multiple-definitions.template -/*--- -description: literal private names (multiple fields definitions) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - foo = "foobar"; - m() { return 42 } - static #x; static #y - m2() { return 39 } - bar = "barbaz"; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js index 05b36a861628..59bfb7af3338 100644 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] foo = "foobar" bar = "barbaz"; @@ -55,16 +55,6 @@ verifyProperty(c, "bar", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js deleted file mode 100644 index f01aca3b920a..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-computed-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-multiple-stacked-definitions.template -/*--- -description: Static Computed property names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39 - foo = "foobar" - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js deleted file mode 100644 index 3a351c1ae7d0..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js +++ /dev/null @@ -1,87 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-multiple-stacked-definitions.template -/*--- -description: Static computed property symbol names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42 - foo = "foobar" - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js deleted file mode 100644 index 195471460c37..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-literal-names.js +++ /dev/null @@ -1,90 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-multiple-stacked-definitions.template -/*--- -description: Static literal property names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn - foo = "foobar" - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js deleted file mode 100644 index 9b5122620ff5..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-multiple-stacked-definitions-static-private-names.js +++ /dev/null @@ -1,83 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-multiple-stacked-definitions.template -/*--- -description: literal private names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y - foo = "foobar" - bar = "barbaz"; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-computed-names.js index 89a635df6a89..9adb692bb984 100644 --- a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] m() { return 42; } } @@ -42,16 +42,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js deleted file mode 100644 index 3d5071b112f8..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-new-no-sc-line-method.template -/*--- -description: Static Computed property names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39 - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js deleted file mode 100644 index 09f954d8997d..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-new-no-sc-line-method.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42 - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js deleted file mode 100644 index 95ad0c9576d3..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-new-no-sc-line-method.template -/*--- -description: Static literal property names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js deleted file mode 100644 index 875e9d80bad9..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-no-sc-line-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-new-no-sc-line-method.template -/*--- -description: literal private names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y - m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-computed-names.js index abc3357c58f6..c1be82b79b89 100644 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + [x] = 42; [10] = "meep"; ["not initialized"]; *m() { return 42; } } @@ -42,16 +42,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js deleted file mode 100644 index 54f94cc0f3ce..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-generator.template -/*--- -description: Static Computed property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39; - *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js deleted file mode 100644 index f2958be0e03f..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-generator.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42; - *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js deleted file mode 100644 index d6fc6b2a3d67..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-generator.template -/*--- -description: Static literal property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn; - *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-private-names.js deleted file mode 100644 index 8f05abbc0d8e..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-gen-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-generator.template -/*--- -description: literal private names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y; - *m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-computed-names.js index dcb6c6bfc038..e1286ba84859 100644 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + [x] = 42; [10] = "meep"; ["not initialized"]; m() { return 42; } } @@ -42,16 +42,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-computed-names.js deleted file mode 100644 index fcab60d533b6..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-method.template -/*--- -description: Static Computed property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39; - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js deleted file mode 100644 index 6394030554e3..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-method.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42; - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-literal-names.js deleted file mode 100644 index 78a439aeb795..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-method.template -/*--- -description: Static literal property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn; - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-private-names.js deleted file mode 100644 index 7e95baf35411..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-new-sc-line-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-new-sc-line-method.template -/*--- -description: literal private names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y; - m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js index cfa2b0901d0c..36fcbfa42720 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js index b1e545503ab0..9e1cb870d55e 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-arrow-fnc-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js index d1b2c6e236f6..560861ffdeda 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-super.js index 9dcd3ffdd919..54038cb6fa37 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-literal-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js index d88244e857c3..51257076fcc5 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-super.js index 4dc4e118d9ae..ad030431c18b 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-ternary-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js index 2b1fcfd4f3bb..0b894b214b10 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-super.js index c131cb3b7111..4fa7623d1685 100644 --- a/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-private-typeof-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-privatename-constructor-err.js b/js/src/tests/test262/language/expressions/class/fields-privatename-constructor-err.js index d5747598424f..5a7a5e40fb13 100644 --- a/js/src/tests/test262/language/expressions/class/fields-privatename-constructor-err.js +++ b/js/src/tests/test262/language/expressions/class/fields-privatename-constructor-err.js @@ -7,7 +7,7 @@ description: Private class fields early error with StringValue "#constructor" esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElementName : PrivateName; diff --git a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-regular-definitions-computed-names.js index 9eb105ed10a7..e14e404c5fea 100644 --- a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-regular-definitions-computed-names.js @@ -25,22 +25,12 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] } var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-computed-names.js deleted file mode 100644 index b6d34d20cf43..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-computed-names.js +++ /dev/null @@ -1,49 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-regular-definitions.template -/*--- -description: Static Computed property names (regular fields defintion) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39 - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js deleted file mode 100644 index d89c499e9852..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-computed-symbol-names.js +++ /dev/null @@ -1,63 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-regular-definitions.template -/*--- -description: Static computed property symbol names (regular fields defintion) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42 - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-literal-names.js deleted file mode 100644 index b47746a22844..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-literal-names.js +++ /dev/null @@ -1,66 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-regular-definitions.template -/*--- -description: Static literal property names (regular fields defintion) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-private-names.js deleted file mode 100644 index ae397d49799f..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-regular-definitions-static-private-names.js +++ /dev/null @@ -1,58 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-regular-definitions.template -/*--- -description: literal private names (regular fields defintion) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-computed-names.js index 5f7aef7b49cb..0386d26861e0 100644 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - async *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + async *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C.prototype, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-computed-names.js deleted file mode 100644 index bbd62c9a1690..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-computed-names.js +++ /dev/null @@ -1,61 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-gen.template -/*--- -description: Static Computed property names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - async *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js deleted file mode 100644 index 04b11c1e8219..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,75 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-gen.template -/*--- -description: Static computed property symbol names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - async *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-literal-names.js deleted file mode 100644 index 73650e8c2f53..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-literal-names.js +++ /dev/null @@ -1,78 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-gen.template -/*--- -description: Static literal property names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - async *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-private-names.js deleted file mode 100644 index e5b0e7fdec31..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-gen-static-private-names.js +++ /dev/null @@ -1,71 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-gen.template -/*--- -description: literal private names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - async *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-computed-names.js index 57b4caf85b72..908f4dc680a6 100644 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - async m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + async m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C.prototype, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-computed-names.js deleted file mode 100644 index 425b5a1ef35d..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-method.template -/*--- -description: Static Computed property names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - async m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js deleted file mode 100644 index fb775cdf420a..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-method.template -/*--- -description: Static computed property symbol names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - async m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-literal-names.js deleted file mode 100644 index 2f7a89fc691c..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-method.template -/*--- -description: Static literal property names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - async m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-private-names.js deleted file mode 100644 index 16315910aee8..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-async-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-after-same-line-async-method.template -/*--- -description: literal private names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - async m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-gen-computed-names.js index 600a798e60a3..b2cf69963b29 100644 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-same-line-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; *m() { return 42; } + [x] = 42; [10] = "meep"; ["not initialized"]; *m() { return 42; } } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-computed-names.js deleted file mode 100644 index 2daf6f89fb6b..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-same-line-generator.template -/*--- -description: Static Computed property names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39; *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js deleted file mode 100644 index c34e9603b3ab..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-same-line-generator.template -/*--- -description: Static computed property symbol names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42; *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-literal-names.js deleted file mode 100644 index 5b934a1cf24a..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-same-line-generator.template -/*--- -description: Static literal property names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn; *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-private-names.js deleted file mode 100644 index cc36f796c96e..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-gen-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-same-line-generator.template -/*--- -description: literal private names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y; *m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-method-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-method-computed-names.js index 40f07b0a8077..ab515089efc6 100644 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-method-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-same-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; var C = class { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; m() { return 42; } + [x] = 42; [10] = "meep"; ["not initialized"]; m() { return 42; } } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-computed-names.js deleted file mode 100644 index 58dc1b60bee1..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-same-line-method.template -/*--- -description: Static Computed property names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - static ["a"] = 42; ["a"] = 39; m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js deleted file mode 100644 index acbfa6326792..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-same-line-method.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - static [x]; static [y] = 42; m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-literal-names.js deleted file mode 100644 index 94073419e280..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-same-line-method.template -/*--- -description: Static literal property names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - static a; b = 42; - static c = fn; m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-private-names.js deleted file mode 100644 index 341dd343bb48..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-same-line-method-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-same-line-method.template -/*--- -description: literal private names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - static #x; static #y; m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js deleted file mode 100644 index d12ac8e19c6c..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-comp-name-init-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-expr-fields-static-comp-name.template -/*--- -description: Syntax error if `arguments` used in class field (static computed ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var x = "string"; -var C = class { - static [x] = arguments; -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-comp-name-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-static-comp-name-init-err-contains-super.js deleted file mode 100644 index 619699fb516f..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-comp-name-init-err-contains-super.js +++ /dev/null @@ -1,29 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-expr-fields-static-comp-name.template -/*--- -description: Syntax error if `super()` used in class field (static computed ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var x = "string"; -var C = class { - static [x] = super(); -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js b/js/src/tests/test262/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js deleted file mode 100644 index a5e2e1d477bd..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-computed-name-toprimitive-symbol.js +++ /dev/null @@ -1,108 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-name-toprimitive-symbol.case -// - src/class-fields/default/cls-expr.template -/*--- -description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class expression) -esid: prod-FieldDefinition -features: [computed-property-names, Symbol.toPrimitive, Symbol, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - Runtime Semantics: ClassDefinitionEvaluation - - ... - 27. For each ClassElement e in order from elements - a. If IsStatic of me is false, then - i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false. - b. Else, - i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false. - c. If fields is an abrupt completion, then - i. Set the running execution context's LexicalEnvironment to lex. - ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. - iii. Return Completion(status). - ... - - Runtime Semantics: ClassElementEvaluation - - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - - ClassElement: FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. - - Runtime Semantics: ClassFieldDefinitionEvaluation - With parameters isStatic and homeObject. - - 1. Let fieldName be the result of evaluating ClassElementName. - 2. ReturnIfAbrupt(fieldName). - ... - - Runtime Semantics: Evaluation - ComputedPropertyName: [ AssignmentExpression ] - - 1. Let exprValue be the result of evaluating AssignmentExpression. - 2. Let propName be ? GetValue(exprValue). - 3. Return ? ToPropertyKey(propName). - ----*/ -var s1 = Symbol(); -var s2 = Symbol(); -var s3 = Symbol(); -var err = function() { throw new Test262Error(); }; -var obj1 = { - [Symbol.toPrimitive]: function() { return s1; }, - toString: err, - valueOf: err -}; - -var obj2 = { - toString: function() { return s2; }, - valueOf: err -}; - -var obj3 = { - toString: undefined, - valueOf: function() { return s3; } -}; - - - -var C = class { - static [obj1] = 42; - static [obj2] = 43; - static [obj3] = 44; -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, s1), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, s2), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, s3), false); - -verifyProperty(C, s1, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, s2, { - value: 43, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, s3, { - value: 44, - enumerable: true, - writable: true, - configurable: true -}); - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, s1), false); -assert.sameValue(Object.hasOwnProperty.call(c, s2), false); -assert.sameValue(Object.hasOwnProperty.call(c, s3), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-static-computed-name-toprimitive.js b/js/src/tests/test262/language/expressions/class/fields-static-computed-name-toprimitive.js deleted file mode 100644 index 5698c769c15e..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-computed-name-toprimitive.js +++ /dev/null @@ -1,105 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-name-toprimitive.case -// - src/class-fields/default/cls-expr.template -/*--- -description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class expression) -esid: prod-FieldDefinition -features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - Runtime Semantics: ClassDefinitionEvaluation - - ... - 27. For each ClassElement e in order from elements - a. If IsStatic of me is false, then - i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false. - b. Else, - i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false. - c. If fields is an abrupt completion, then - i. Set the running execution context's LexicalEnvironment to lex. - ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. - iii. Return Completion(status). - ... - - Runtime Semantics: ClassElementEvaluation - - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - - ClassElement: FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. - - Runtime Semantics: ClassFieldDefinitionEvaluation - With parameters isStatic and homeObject. - - 1. Let fieldName be the result of evaluating ClassElementName. - 2. ReturnIfAbrupt(fieldName). - ... - - Runtime Semantics: Evaluation - ComputedPropertyName: [ AssignmentExpression ] - - 1. Let exprValue be the result of evaluating AssignmentExpression. - 2. Let propName be ? GetValue(exprValue). - 3. Return ? ToPropertyKey(propName). - ----*/ -var err = function() { throw new Test262Error(); }; -var obj1 = { - [Symbol.toPrimitive]: function() { return "d"; }, - toString: err, - valueOf: err -}; - -var obj2 = { - toString: function() { return "e"; }, - valueOf: err -}; - -var obj3 = { - toString: undefined, - valueOf: function() { return "f"; } -}; - - - -var C = class { - static [obj1] = 42; - static [obj2] = 43; - static [obj3] = 44; -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "d"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "e"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "f"), false); - -verifyProperty(C, "d", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, "e", { - value: 43, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, "f", { - value: 44, - enumerable: true, - writable: true, - configurable: true -}); - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "d"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "e"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "f"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-static-literal-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-static-literal-init-err-contains-arguments.js deleted file mode 100644 index a7442209843e..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-literal-init-err-contains-arguments.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-expr-fields-static-literal-name.template -/*--- -description: Syntax error if `arguments` used in class field (static literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static x = arguments; -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-literal-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-static-literal-init-err-contains-super.js deleted file mode 100644 index 1def35018ba8..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-literal-init-err-contains-super.js +++ /dev/null @@ -1,28 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-expr-fields-static-literal-name.template -/*--- -description: Syntax error if `super()` used in class field (static literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static x = super(); -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-private-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-static-private-init-err-contains-arguments.js deleted file mode 100644 index 9cb947da7a89..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-private-init-err-contains-arguments.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-expr-fields-static-private-name.template -/*--- -description: Syntax error if `arguments` used in class field (static PrivateName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public, class-fields-private] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static #x = arguments; -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-private-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-static-private-init-err-contains-super.js deleted file mode 100644 index 13f26078f246..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-private-init-err-contains-super.js +++ /dev/null @@ -1,28 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-expr-fields-static-private-name.template -/*--- -description: Syntax error if `super()` used in class field (static PrivateName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public, class-fields-private] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static #x = super(); -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-redeclaration-symbol.js b/js/src/tests/test262/language/expressions/class/fields-static-redeclaration-symbol.js deleted file mode 100644 index dd1324f9073a..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-redeclaration-symbol.js +++ /dev/null @@ -1,53 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-redeclaration-symbol.case -// - src/class-fields/default/cls-expr.template -/*--- -description: Redeclaration of public static fields with the same name (field definitions in a class expression) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js, compareArray.js] -info: | - 2.13.2 Runtime Semantics: ClassDefinitionEvaluation - - ... - 30. Set the value of F's [[Fields]] internal slot to fieldRecords. - ... - 33. Let result be InitializeStaticFields(F). - - InitializeStaticFields(F) - - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). - ----*/ -var x = []; -var y = Symbol(); - - -var C = class { - static [y] = (x.push("a"), "old_value"); - static [y] = (x.push("b"), "same_value"); - static [y] = (x.push("c"), "same_value"); -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); - -verifyProperty(C, y, { - value: "same_value", - enumerable: true, - writable: true, - configurable: true -}); - -assert(compareArray(x, ["a", "b", "c"])); - -var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -assert(compareArray(x, ["a", "b", "c"]), "static fields are not redefined on class instatiation"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-static-redeclaration.js b/js/src/tests/test262/language/expressions/class/fields-static-redeclaration.js deleted file mode 100644 index 4cd0ab19322d..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-redeclaration.js +++ /dev/null @@ -1,53 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-redeclaration.case -// - src/class-fields/default/cls-expr.template -/*--- -description: Redeclaration of public static fields with the same name (field definitions in a class expression) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js, compareArray.js] -info: | - 2.13.2 Runtime Semantics: ClassDefinitionEvaluation - - ... - 30. Set the value of F's [[Fields]] internal slot to fieldRecords. - ... - 33. Let result be InitializeStaticFields(F). - - InitializeStaticFields(F) - - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). - ----*/ -var x = []; - - -var C = class { - static y = (x.push("a"), "old_value"); - static ["y"] = (x.push("b"), "another_value"); - static "y" = (x.push("c"), "same_value"); - static y = (x.push("d"), "same_value"); -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); - -verifyProperty(C, "y", { - value: "same_value", - enumerable: true, - writable: true, - configurable: true -}); - -assert(compareArray(x, ["a", "b", "c", "d"])); - -var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -assert(compareArray(x, ["a", "b", "c", "d"]), "static fields are not redefined on class instatiation"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js deleted file mode 100644 index 1b33f9e17472..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-string-literal-name-init-err-contains-arguments.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-expr-fields-static-string-literal-name.template -/*--- -description: Syntax error if `arguments` used in class field (static string literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static 'x' = arguments; -} diff --git a/js/src/tests/test262/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js deleted file mode 100644 index 5ff8957e424c..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-static-string-literal-name-init-err-contains-super.js +++ /dev/null @@ -1,28 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-expr-fields-static-string-literal-name.template -/*--- -description: Syntax error if `super()` used in class field (static string literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static 'x' = super(); -} diff --git a/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js index 050e3000d905..8a851ce9db9d 100644 --- a/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-super.js index 3d1d9b6e8185..9796dbf1aa21 100644 --- a/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-string-literal-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-string-name-propname-constructor.js b/js/src/tests/test262/language/expressions/class/fields-string-name-propname-constructor.js index ffa9c9cb81d6..8a555b3bd888 100644 --- a/js/src/tests/test262/language/expressions/class/fields-string-name-propname-constructor.js +++ b/js/src/tests/test262/language/expressions/class/fields-string-name-propname-constructor.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: PropName diff --git a/js/src/tests/test262/language/expressions/class/fields-string-name-static-propname-constructor.js b/js/src/tests/test262/language/expressions/class/fields-string-name-static-propname-constructor.js deleted file mode 100644 index ffddabe29dfd..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-string-name-static-propname-constructor.js +++ /dev/null @@ -1,33 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-constructor.case -// - src/class-fields/propname-error-static/cls-expr-static-string-name.template -/*--- -description: static class field forbid PropName 'constructor' (early error -- PropName of StringLiteral is forbidden) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - ... - LiteralPropertyName : StringLiteral - Return the String value whose code units are the SV of the StringLiteral. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static 'constructor'; -}; diff --git a/js/src/tests/test262/language/expressions/class/fields-string-name-static-propname-prototype.js b/js/src/tests/test262/language/expressions/class/fields-string-name-static-propname-prototype.js deleted file mode 100644 index 9f8daea5adca..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-string-name-static-propname-prototype.js +++ /dev/null @@ -1,33 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-prototype.case -// - src/class-fields/propname-error-static/cls-expr-static-string-name.template -/*--- -description: static class fields forbid PropName 'prototype' (early error -- PropName of StringLiteral is forbidden) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - ... - LiteralPropertyName : StringLiteral - Return the String value whose code units are the SV of the StringLiteral. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var C = class { - static 'prototype'; -}; diff --git a/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-arguments.js index 05bfb9d4b0b4..f6cbf5002505 100644 --- a/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-super.js index 55e1a7abfe75..b048504c5c93 100644 --- a/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-ternary-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-arguments.js b/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-arguments.js index e264e76d48f5..f8493e22c29f 100644 --- a/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-super.js b/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-super.js index b2407f65495a..003c7a2fed77 100644 --- a/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-super.js +++ b/js/src/tests/test262/language/expressions/class/fields-typeof-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-computed-names.js index 32a7cc94cf08..3bf60e64580a 100644 --- a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-computed-names.js +++ b/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-computed-names.js @@ -26,23 +26,13 @@ var x = "b"; var C = class { ;;;; - ;;;;;;static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"];;;;;;; + ;;;;;;[x] = 42; [10] = "meep"; ["not initialized"];;;;;;; ;;;; } var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js b/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js deleted file mode 100644 index 81d2e62d05f7..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-computed-names.js +++ /dev/null @@ -1,51 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-expr-wrapped-in-sc.template -/*--- -description: Static Computed property names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -var C = class { - ;;;; - ;;;;;;static ["a"] = 42; ["a"] = 39;;;;;;; - ;;;; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js b/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js deleted file mode 100644 index 43bf1294cd98..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-computed-symbol-names.js +++ /dev/null @@ -1,65 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-expr-wrapped-in-sc.template -/*--- -description: Static computed property symbol names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -var C = class { - ;;;; - ;;;;;;static [x]; static [y] = 42;;;;;;; - ;;;; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js b/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js deleted file mode 100644 index e51886057ae7..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-literal-names.js +++ /dev/null @@ -1,68 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-expr-wrapped-in-sc.template -/*--- -description: Static literal property names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -var C = class { - ;;;; - ;;;;;;static a; b = 42; - static c = fn;;;;;;; - ;;;; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-private-names.js b/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-private-names.js deleted file mode 100644 index 190b53c01dcb..000000000000 --- a/js/src/tests/test262/language/expressions/class/fields-wrapped-in-sc-static-private-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-expr-wrapped-in-sc.template -/*--- -description: literal private names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -var C = class { - ;;;; - ;;;;;;static #x; static #y;;;;;;; - ;;;; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-duplicates.js index c01ffc68c77b..4182a659dd65 100644 --- a/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-rest.js index 877c38d9b3a1..34ff76de3ea1 100644 --- a/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/gen-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js index fa3af1840472..6b78139503e9 100644 --- a/js/src/tests/test262/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-duplicates.js index 5432de877929..e70afa215d53 100644 --- a/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-rest.js index c29df68828fe..22ce261e6911 100644 --- a/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/gen-meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js index 511611109e86..6e3fe145a04f 100644 --- a/js/src/tests/test262/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/gen-method-param-dflt-yield.js b/js/src/tests/test262/language/expressions/class/gen-method-param-dflt-yield.js index e143581c1d81..9b5983af56f5 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-param-dflt-yield.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-param-dflt-yield.js @@ -17,7 +17,7 @@ info: | evaluated before the resulting generator object is in a resumable state. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js index a481817eb65e..8da4dd9e8792 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier.js index c250438e33a8..f3d6ab761d04 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js index 4fae7d254d8e..0a4cd78595b8 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference.js index 9834b5400f1f..fab3cacfe841 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js index 79c55d84364f..884dabd41bdf 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier.js index fb238b15bd43..7bc85138626f 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-spread-strict-strict.js index 02b2fa20ca13..7d7846e2a753 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-strict-strict.js index cbbdbcc6c6cf..0fbd118e2540 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-static-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js index 05391d4c5625..40717191ab79 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier.js index 40abc79fcb2e..92ff7165fb4e 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js index b7aa6f18b9f0..5fa253e6c313 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference.js index 52ff1267368e..f82642c64e66 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js index 44a2ea1f1aba..f8aa31011913 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier.js index 87c0364d46a7..2407caafaa94 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-spread-strict-strict.js index f6d977587849..2f9c0e43a26e 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-strict-strict.js index cd2ac381f8a0..d65bbf67d3e9 100644 --- a/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/class/gen-method-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/expressions/class/getter-param-dflt.js b/js/src/tests/test262/language/expressions/class/getter-param-dflt.js index 22a80e5d6238..dfd486ba4c5e 100644 --- a/js/src/tests/test262/language/expressions/class/getter-param-dflt.js +++ b/js/src/tests/test262/language/expressions/class/getter-param-dflt.js @@ -15,7 +15,7 @@ info: | get PropertyName[?Yield] ( ) { FunctionBody } features: [default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/class/meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/meth-dflt-params-duplicates.js index 5336721fde02..eadf7413b131 100644 --- a/js/src/tests/test262/language/expressions/class/meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/meth-dflt-params-rest.js index 4d2ad638b99a..80061652270d 100644 --- a/js/src/tests/test262/language/expressions/class/meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/meth-rest-params-trailing-comma-early-error.js index 150d92b67fbd..276e7c4617cc 100644 --- a/js/src/tests/test262/language/expressions/class/meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/meth-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-class-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-duplicates.js index 40952980b6a2..0df475d9bff4 100644 --- a/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-rest.js b/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-rest.js index e1b36ac8e80e..c82cfb96cfdf 100644 --- a/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/class/meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js index 23949a413f9f..389a56d279b0 100644 --- a/js/src/tests/test262/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-class-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassExpression : class BindingIdentifieropt ClassTail diff --git a/js/src/tests/test262/language/expressions/class/method-param-dflt-yield.js b/js/src/tests/test262/language/expressions/class/method-param-dflt-yield.js index 5af98e345b5c..3bfef1a20b5e 100644 --- a/js/src/tests/test262/language/expressions/class/method-param-dflt-yield.js +++ b/js/src/tests/test262/language/expressions/class/method-param-dflt-yield.js @@ -12,7 +12,7 @@ info: | PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody } features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/class/name.js b/js/src/tests/test262/language/expressions/class/name.js index 34a2ce8e8937..e8971e0f4e2a 100644 --- a/js/src/tests/test262/language/expressions/class/name.js +++ b/js/src/tests/test262/language/expressions/class/name.js @@ -4,7 +4,7 @@ /*--- es6id: 14.5.16 description: Assignment of function `name` attribute -info: > +info: | ClassExpression : class BindingIdentifieropt ClassTail 5. If className is not undefined, then diff --git a/js/src/tests/test262/language/expressions/class/static-gen-method-param-dflt-yield.js b/js/src/tests/test262/language/expressions/class/static-gen-method-param-dflt-yield.js index 7a518ba23425..a469a2381ee0 100644 --- a/js/src/tests/test262/language/expressions/class/static-gen-method-param-dflt-yield.js +++ b/js/src/tests/test262/language/expressions/class/static-gen-method-param-dflt-yield.js @@ -17,7 +17,7 @@ info: | evaluated before the resulting generator object is in a resumable state. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/class/static-method-param-dflt-yield.js b/js/src/tests/test262/language/expressions/class/static-method-param-dflt-yield.js index e1e517b8aaf1..dd6daad41f08 100644 --- a/js/src/tests/test262/language/expressions/class/static-method-param-dflt-yield.js +++ b/js/src/tests/test262/language/expressions/class/static-method-param-dflt-yield.js @@ -12,7 +12,7 @@ info: | PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody } features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/comma/S11.14_A1.js b/js/src/tests/test262/language/expressions/comma/S11.14_A1.js index 8e2e2082a0a4..2a9d0fbf3db8 100644 --- a/js/src/tests/test262/language/expressions/comma/S11.14_A1.js +++ b/js/src/tests/test262/language/expressions/comma/S11.14_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between Expression and , or between , and AssignmentExpression are allowed es5id: 11.14_A1 diff --git a/js/src/tests/test262/language/expressions/comma/tco-final-strict.js b/js/src/tests/test262/language/expressions/comma/tco-final-strict.js index f1df2fcce9e8..f3998eb21c35 100644 --- a/js/src/tests/test262/language/expressions/comma/tco-final-strict.js +++ b/js/src/tests/test262/language/expressions/comma/tco-final-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/compound-assignment/11.13.2-6-1gs-strict.js b/js/src/tests/test262/language/expressions/compound-assignment/11.13.2-6-1gs-strict.js index 7931731f6344..b2596fdb512b 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/11.13.2-6-1gs-strict.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/11.13.2-6-1gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is throw if the identifier eval appears as the LeftHandSideExpression of a Compound Assignment operator(*=) negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T1.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T1.js index ea944bb0e0a5..98b75305dde2 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T1.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T1 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T10.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T10.js index ded4686c36f3..c38b51e703d4 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T10.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T10 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T11.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T11.js index 6a5ebda583cb..47f900e67ca4 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T11.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T11.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T11 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T2.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T2.js index aaf6fa16c35a..cd459af7f2ab 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T2.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T2 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T3.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T3.js index fcbad71aed3a..69d85ab5ee2f 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T3.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T3 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T4.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T4.js index 1aff75be541e..f300ddeb9d97 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T4.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T4 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T5.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T5.js index d1a4733bdbb7..f1d3c65e4f1b 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T5.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T5 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T6.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T6.js index 0080fc02d377..8d60330773a4 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T6.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T6 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T7.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T7.js index c92888486826..3b05e1ff8b5f 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T7.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T7 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T8.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T8.js index 123fbbf9c531..d37a3732570f 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T8.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T8 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T9.js b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T9.js index f33f76631a32..05bc6376a6f3 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T9.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/S11.13.2_A1_T9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LeftHandSideExpression and "@=" or between "@=" and AssignmentExpression are allowed es5id: 11.13.2_A1_T9 diff --git a/js/src/tests/test262/language/expressions/compound-assignment/add-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/add-non-simple.js index f6e0ab7a5596..2919e4198b0e 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/add-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/add-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound addition assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/btws-and-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/btws-and-non-simple.js index 099b7cfef0f1..d202e277b818 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/btws-and-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/btws-and-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "bitwise and" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/btws-or-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/btws-or-non-simple.js index 3bff0bab7372..2c9976f4b290 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/btws-or-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/btws-or-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "bitwise or" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/btws-xor-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/btws-xor-non-simple.js index 1df8ef6db01f..04b9f6ba124b 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/btws-xor-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/btws-xor-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "bitwise xor" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/div-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/div-non-simple.js index 71089c06b10b..238b76670b33 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/div-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/div-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound division assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/left-shift-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/left-shift-non-simple.js index a3cb3b1660bc..7d416525de81 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/left-shift-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/left-shift-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "left shift" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/mod-div-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/mod-div-non-simple.js index 4bd1e62f4a97..096828b4cfff 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/mod-div-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/mod-div-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "modular division" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/mult-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/mult-non-simple.js index 456e6b0ca9e1..bdb2e9c59d9e 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/mult-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/mult-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound multiplication assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/right-shift-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/right-shift-non-simple.js index 6efcde17bc53..0d419512f358 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/right-shift-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/right-shift-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "right shift" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/subtract-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/subtract-non-simple.js index ea92373d1113..aa1dc54050a1 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/subtract-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/subtract-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound subtraction assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/compound-assignment/u-right-shift-non-simple.js b/js/src/tests/test262/language/expressions/compound-assignment/u-right-shift-non-simple.js index 047ea5ead518..145fb87f902c 100644 --- a/js/src/tests/test262/language/expressions/compound-assignment/u-right-shift-non-simple.js +++ b/js/src/tests/test262/language/expressions/compound-assignment/u-right-shift-non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.14.1 description: Compound "unsigned right shift" assignment with non-simple target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/concatenation/S9.8_A3_T2.js b/js/src/tests/test262/language/expressions/concatenation/S9.8_A3_T2.js index 3a2e15dadc4a..27084cea6540 100644 --- a/js/src/tests/test262/language/expressions/concatenation/S9.8_A3_T2.js +++ b/js/src/tests/test262/language/expressions/concatenation/S9.8_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of ToString conversion from boolean value is "true" if the argument is "true", else is "false" es5id: 9.8_A3_T2 diff --git a/js/src/tests/test262/language/expressions/concatenation/S9.8_A4_T2.js b/js/src/tests/test262/language/expressions/concatenation/S9.8_A4_T2.js index 636a1d94c3fa..ee202a688420 100644 --- a/js/src/tests/test262/language/expressions/concatenation/S9.8_A4_T2.js +++ b/js/src/tests/test262/language/expressions/concatenation/S9.8_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of String conversion from string value is the input argument (no conversion) es5id: 9.8_A4_T2 diff --git a/js/src/tests/test262/language/expressions/concatenation/S9.8_A5_T2.js b/js/src/tests/test262/language/expressions/concatenation/S9.8_A5_T2.js index 87d2aff5663a..dc4234b75b33 100644 --- a/js/src/tests/test262/language/expressions/concatenation/S9.8_A5_T2.js +++ b/js/src/tests/test262/language/expressions/concatenation/S9.8_A5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of String conversion from Object value is conversion from primitive value es5id: 9.8_A5_T2 diff --git a/js/src/tests/test262/language/expressions/conditional/S11.12_A1.js b/js/src/tests/test262/language/expressions/conditional/S11.12_A1.js index 2f4bb4a76893..be6a7294c020 100644 --- a/js/src/tests/test262/language/expressions/conditional/S11.12_A1.js +++ b/js/src/tests/test262/language/expressions/conditional/S11.12_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LogicalORExpression and "?" or between "?" and AssignmentExpression or between AssignmentExpression and ":" or between ":" and AssignmentExpression are allowed diff --git a/js/src/tests/test262/language/expressions/conditional/in-branch-2.js b/js/src/tests/test262/language/expressions/conditional/in-branch-2.js index c41d212f8967..629a640c562b 100644 --- a/js/src/tests/test262/language/expressions/conditional/in-branch-2.js +++ b/js/src/tests/test262/language/expressions/conditional/in-branch-2.js @@ -14,7 +14,7 @@ info: | LogicalORExpression[?In, ?Yield] LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/conditional/in-condition.js b/js/src/tests/test262/language/expressions/conditional/in-condition.js index 221aefbbc3cc..167ff4318e28 100644 --- a/js/src/tests/test262/language/expressions/conditional/in-condition.js +++ b/js/src/tests/test262/language/expressions/conditional/in-condition.js @@ -14,7 +14,7 @@ info: | LogicalORExpression[?In, ?Yield] LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/conditional/tco-cond-strict.js b/js/src/tests/test262/language/expressions/conditional/tco-cond-strict.js index 538730a45689..0977d097edcf 100644 --- a/js/src/tests/test262/language/expressions/conditional/tco-cond-strict.js +++ b/js/src/tests/test262/language/expressions/conditional/tco-cond-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/conditional/tco-pos-strict.js b/js/src/tests/test262/language/expressions/conditional/tco-pos-strict.js index 0e8b2882200a..71931daf96e9 100644 --- a/js/src/tests/test262/language/expressions/conditional/tco-pos-strict.js +++ b/js/src/tests/test262/language/expressions/conditional/tco-pos-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-0-1.js b/js/src/tests/test262/language/expressions/delete/11.4.1-0-1.js index 302ed79c075f..657a41c6c683 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-0-1.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-0-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-0-1 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-1.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-1.js index 136733e6e4e9..7a3cbb5d3408 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-1.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-1 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-10.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-10.js index 01f0a3689eda..12866ef13127 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-10.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-10 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-11.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-11.js index 1c611cdaefce..77fa470cdbdc 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-11.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-11.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-11 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-12.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-12.js index 0d733c1092b0..7802f1ec2c44 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-12.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-12.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-12 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-13.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-13.js index a6a07d4cf746..36c164dfd929 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-13.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-13.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-13 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-14.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-14.js index c4cce2029045..e00a85fcc86c 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-14.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-14.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-14 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-15.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-15.js index 89921836edb5..91235ddc76be 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-15.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-15.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-15 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-16.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-16.js index 9623fb59f49d..867549b759fe 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-16.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-16.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-16 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-17.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-17.js index 955777c3dceb..6e4d23fd110a 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-17.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-17.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-17 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-2.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-2.js index eafdf701a2d5..6ab08215ffd4 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-2.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-2 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3-s-strict.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3-s-strict.js index 476a832fa0f1..ade2b123b238 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3-s-strict.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-3-s diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3.js index fb600289fbac..9ef887ce3481 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-3 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-4.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-4.js index c7336fd3c72d..a21fbf22678d 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-4.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-4 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-5.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-5.js index 7a1bfed5c95f..6679e9a20138 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-5.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-5 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-6.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-6.js index 4b0214adb1a0..8511984211f2 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-6.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-6 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-7.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-7.js index d05abdb252ce..9149e8916179 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-7.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-7 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8-s-strict.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8-s-strict.js index 48a8cc33cfe4..fb7f4b135938 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8-s-strict.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-8-s diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8.js index 11d4b2ac289a..73016e61bfb3 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-8 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9-s-strict.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9-s-strict.js index 9c15652449d4..fab7a55b53c5 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9-s-strict.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-9-s diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9.js b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9.js index e2b0153a31af..ed69bc98ec22 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-4.a-9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.1-4.a-9 diff --git a/js/src/tests/test262/language/expressions/delete/11.4.1-5-a-5gs-strict.js b/js/src/tests/test262/language/expressions/delete/11.4.1-5-a-5gs-strict.js index 8562dc492be8..7866ccdca62e 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.1-5-a-5gs-strict.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.1-5-a-5gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is thrown when deleting a variable which is primitive type(boolean) negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/delete/11.4.4-4.a-3-s-strict.js b/js/src/tests/test262/language/expressions/delete/11.4.4-4.a-3-s-strict.js index 3697492289fa..5ad80f70bb68 100644 --- a/js/src/tests/test262/language/expressions/delete/11.4.4-4.a-3-s-strict.js +++ b/js/src/tests/test262/language/expressions/delete/11.4.4-4.a-3-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | This test is actually testing the [[Delete]] internal method (8.12.8). Since the language provides no way to directly exercise [[Delete]], the tests are placed here. es5id: 11.4.4-4.a-3-s diff --git a/js/src/tests/test262/language/expressions/delete/S11.4.1_A1.js b/js/src/tests/test262/language/expressions/delete/S11.4.1_A1.js index 51a9abb2c883..b8df71907812 100644 --- a/js/src/tests/test262/language/expressions/delete/S11.4.1_A1.js +++ b/js/src/tests/test262/language/expressions/delete/S11.4.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "delete" and UnaryExpression are allowed es5id: 11.4.1_A1 diff --git a/js/src/tests/test262/language/expressions/delete/S11.4.1_A4.js b/js/src/tests/test262/language/expressions/delete/S11.4.1_A4.js index e970d247a444..70588136f9f0 100644 --- a/js/src/tests/test262/language/expressions/delete/S11.4.1_A4.js +++ b/js/src/tests/test262/language/expressions/delete/S11.4.1_A4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "Delete" operator removes property, which is reference to the object, not the object es5id: 11.4.1_A4 diff --git a/js/src/tests/test262/language/expressions/delete/S11.4.1_A5-strict.js b/js/src/tests/test262/language/expressions/delete/S11.4.1_A5-strict.js index 7004d6f7a350..b37c85d06ee1 100644 --- a/js/src/tests/test262/language/expressions/delete/S11.4.1_A5-strict.js +++ b/js/src/tests/test262/language/expressions/delete/S11.4.1_A5-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | A strict delete should either succeed, returning true, or it should fail by throwing a TypeError. Under no circumstances should a strict delete return false. diff --git a/js/src/tests/test262/language/expressions/delete/S8.12.7_A1.js b/js/src/tests/test262/language/expressions/delete/S8.12.7_A1.js index 7251eaea41c9..5a451376b1f5 100644 --- a/js/src/tests/test262/language/expressions/delete/S8.12.7_A1.js +++ b/js/src/tests/test262/language/expressions/delete/S8.12.7_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Delete]] method of O is called with property name P, and If the property has the DontDelete attribute, return false es5id: 8.12.7_A1 diff --git a/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T1.js b/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T1.js index c956e5b4a735..93baf665597f 100644 --- a/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T1.js +++ b/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Delete]] method of O is called with property name P, and if O doesn't have a property with name P, return true es5id: 8.12.7_A2_T1 diff --git a/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T2.js b/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T2.js index 5671c867fefb..dd849c37484e 100644 --- a/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T2.js +++ b/js/src/tests/test262/language/expressions/delete/S8.12.7_A2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Delete]] method of O is called with property name P, and if O doesn't have a property with name P, return true es5id: 8.12.7_A2_T2 diff --git a/js/src/tests/test262/language/expressions/delete/S8.12.7_A3.js b/js/src/tests/test262/language/expressions/delete/S8.12.7_A3.js index 4bdf582aca00..ead2fec4f2c8 100644 --- a/js/src/tests/test262/language/expressions/delete/S8.12.7_A3.js +++ b/js/src/tests/test262/language/expressions/delete/S8.12.7_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Delete]] method of O is called with property name P, removes the property with name P from O and return true es5id: 8.12.7_A3 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A1.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A1.js index c8fbe17ff528..8804278e28cb 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A1.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between MultiplicativeExpression and "/" or between "/" and UnaryExpression are allowed es5id: 11.5.2_A1 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A2.3_T1.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A2.3_T1.js index b06a03a87270..7475f2e4c529 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.5.2_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.1.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.1.js index ec67b2f4afcd..9b9e1926a2f9 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.1.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T1.1 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.2.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.2.js index ef8768e6a082..c5cbaf089051 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.2.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T1.2 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T10.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T10.js index 6f2b190990ca..8122ba3ac5cb 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T10.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T10 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T2.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T2.js index afb4ec3eab09..bab65a865eb4 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T2.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T2 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T3.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T3.js index d8570a7b9700..4729ba979b12 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T3.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T3 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T4.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T4.js index e379c894dcdf..34f10eb7a762 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T4.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T4 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T5.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T5.js index abab7aafcc33..ed6a18424be8 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T5.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T5 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T6.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T6.js index d84db50462b6..81a50c33362a 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T6.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T6 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T7.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T7.js index d14d12abfa78..238742dec072 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T7.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T7 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T8.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T8.js index 0d2e70cf93c6..f5bf5faeb17e 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T8.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T8 diff --git a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T9.js b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T9.js index 08128c450efc..62898fde9ca0 100644 --- a/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T9.js +++ b/js/src/tests/test262/language/expressions/division/S11.5.2_A4_T9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of division is determined by the specification of IEEE 754 arithmetics es5id: 11.5.2_A4_T9 diff --git a/js/src/tests/test262/language/expressions/division/bigint-errors.js b/js/src/tests/test262/language/expressions/division/bigint-errors.js new file mode 100644 index 000000000000..60ca8b518469 --- /dev/null +++ b/js/src/tests/test262/language/expressions/division/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: division operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") / 1n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n / Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) / 1n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n / Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) / 1n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n / { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) / 1n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n / { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) / 1n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n / { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/division/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/division/bigint-toprimitive.js new file mode 100644 index 000000000000..279c89da59dd --- /dev/null +++ b/js/src/tests/test262/language/expressions/division/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: division operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) / 2n, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(2n / { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) / 2n, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(2n / { + valueOf: function() { + return 2n; + }, + toString: err +}, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(2n / { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(2n / { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(2n / { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n / { + valueOf: null, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n / { + valueOf: 1, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n / { + valueOf: {}, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(2n / { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(2n / { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) / 1n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n / { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) / 1n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n / { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) / 1n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n / { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) / 1n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n / { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) / 1n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n / { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) / 1n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n / { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) / 1n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n / { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) / 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n / { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) / 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n / { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) / 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n / { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) / 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n / { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) / 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n / { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/division/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/division/bigint-wrapped-values.js new file mode 100644 index 000000000000..79118e068300 --- /dev/null +++ b/js/src/tests/test262/language/expressions/division/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: division operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) / 2n, 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(2n / Object(2n), 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(2n / { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: valueOf"); +assert.sameValue(2n / { + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) / 2n, 1n, "ToPrimitive: toString"); +assert.sameValue(2n / { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A1.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A1.js index 432baface7ff..a740f8453f4a 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A1.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between EqualityExpression and "!=" or between "!=" and RelationalExpression are allowed es5id: 11.9.2_A1 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.1.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.1.js index 335a12b62f02..76595ad478fb 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.1.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Return false, if x and y are both true or both false; otherwise, return true es5id: 11.9.2_A3.1 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.2.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.2.js index 5f3dbcd82b8d..54a7a534acfa 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.2.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Boolean and Type(y) is Number, return the result of comparison ToNumber(x) != y es5id: 11.9.2_A3.2 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.3.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.3.js index fad419795433..8b777b1ca7ef 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.3.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A3.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(y) is Number and Type(y) is Boolean, return the result of comparison x != ToNumber(y) es5id: 11.9.2_A3.3 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A4.3.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A4.3.js index 928de7cb380d..05b44a4399ca 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A4.3.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A4.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Number-s minus NaN, +0, -0. Return false, if x is the same number value as y; otherwise, return true es5id: 11.9.2_A4.3 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.1.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.1.js index c7d290a932bc..4bf5ced6c245 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.1.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are String-s. Return true, if x and y are exactly the same sequence of characters; otherwise, return false es5id: 11.9.2_A5.1 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.2.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.2.js index 01ce5cea52fa..1f30d9b5b0ab 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.2.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Number and Type(y) is String, return the result of comparison x != ToNumber(y) es5id: 11.9.2_A5.2 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.3.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.3.js index 5be2f66cfd8f..baaf8dfdea9e 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.3.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A5.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is String and Type(y) is Number, return the result of comparison ToNumber(x) != y es5id: 11.9.2_A5.3 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.1.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.1.js index 15cef10258a3..bbc8c672a52c 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.1.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Object-s. Return true, if x and y are references to the same Object; otherwise, return false es5id: 11.9.2_A7.1 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.2.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.2.js index 3c3af41ed7bd..ce5033ef7f92 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.2.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is Boolean, return ToPrimitive(x) != y es5id: 11.9.2_A7.2 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.3.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.3.js index a1580cc157a6..c9f161bc1ada 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.3.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Boolean and Type(y) is Object, return x != ToPrimitive(y) es5id: 11.9.2_A7.3 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.4.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.4.js index 6a1d43459331..39f5a5098ee1 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.4.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is Number, return ToPrimitive(x) != y es5id: 11.9.2_A7.4 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.5.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.5.js index fbdae2d75ebd..a6cd7e32511f 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.5.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Number and Type(y) is Object, return x != ToPrimitive(y) es5id: 11.9.2_A7.5 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.6.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.6.js index ebead146ed2c..128779cbf5f9 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.6.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is String, return ToPrimitive(x) != y es5id: 11.9.2_A7.6 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.7.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.7.js index dd86826f6fe1..26f981d96668 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.7.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is String and Type(y) is Object, return x != ToPrimitive(y) es5id: 11.9.2_A7.7 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.8.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.8.js index 1567ae995c92..b4aadf81393c 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.8.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is primitive type, return ToPrimitive(x) != y es5id: 11.9.2_A7.8 diff --git a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.9.js b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.9.js index 9df1fd52ae92..ae11fda23bdd 100644 --- a/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.9.js +++ b/js/src/tests/test262/language/expressions/does-not-equals/S11.9.2_A7.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is primitive type and Type(y) is Object, return x != ToPrimitive(y) es5id: 11.9.2_A7.9 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A1.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A1.js index d881b33839d9..8dd508719329 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A1.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between EqualityExpression and "==" or between "==" and RelationalExpression are allowed es5id: 11.9.1_A1 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.1.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.1.js index 0229308aabdb..48972809c14b 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.1.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Return true, if x and y are both true or both false; otherwise, return false es5id: 11.9.1_A3.1 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.2.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.2.js index cf087f2e63d8..9aca298fd88c 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.2.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Boolean and Type(y) is Number, return the result of comparison ToNumber(x) == y es5id: 11.9.1_A3.2 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.3.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.3.js index 6e82f38f4324..4cf41d30b2f1 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.3.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A3.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(y) is Number and Type(y) is Boolean, return the result of comparison x == ToNumber(y) es5id: 11.9.1_A3.3 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A4.3.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A4.3.js index f7a4be798081..caee37803e60 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A4.3.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A4.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Number-s minus NaN, +0, -0. Return true, if x is the same number value as y; otherwise, return false es5id: 11.9.1_A4.3 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.1.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.1.js index 3260fe0e64bb..eb236ca82ea4 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.1.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are String-s. Return true, if x and y are exactly the same sequence of characters; otherwise, return false es5id: 11.9.1_A5.1 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.2.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.2.js index 70d1c36f93a4..45c49ceb56c6 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.2.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Number and Type(y) is String, return the result of comparison x == ToNumber(y) es5id: 11.9.1_A5.2 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.3.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.3.js index e838daace07c..5cb6bb4a8a7e 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.3.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A5.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is String and Type(y) is Number, return the result of comparison ToNumber(x) == y es5id: 11.9.1_A5.3 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.1.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.1.js index 69c915e50121..10142a21ac25 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.1.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Object-s. Return true, if x and y are references to the same Object; otherwise, return false es5id: 11.9.1_A7.1 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.2.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.2.js index 0ea92b1d593e..9774580da382 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.2.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is Boolean, return ToPrimitive(x) == y es5id: 11.9.1_A7.2 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.3.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.3.js index 8eafc10523e9..4d523a448d22 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.3.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Boolean and Type(y) is Object, return x == ToPrimitive(y) es5id: 11.9.1_A7.3 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.4.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.4.js index 7c4bc05ba58b..8ddfdbea30e7 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.4.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is Number, return ToPrimitive(x) == y es5id: 11.9.1_A7.4 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.5.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.5.js index 48450d7d53dd..f366656556f3 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.5.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Number and Type(y) is Object, return x == ToPrimitive(y) es5id: 11.9.1_A7.5 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.6.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.6.js index f77cc5c4f68e..309a0ee6214d 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.6.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is String, return ToPrimitive(x) == y es5id: 11.9.1_A7.6 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.7.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.7.js index d1b40459b40b..574b8288b42c 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.7.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is String and Type(y) is Object, return x == ToPrimitive(y) es5id: 11.9.1_A7.7 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.8.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.8.js index cc3994e305db..abf124f942bd 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.8.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is Object and Type(y) is primitive type, return ToPrimitive(x) == y es5id: 11.9.1_A7.8 diff --git a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.9.js b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.9.js index 88a51d5470e6..91ec2393bf42 100644 --- a/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.9.js +++ b/js/src/tests/test262/language/expressions/equals/S11.9.1_A7.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(x) is primitive type and Type(y) is Object, return x == ToPrimitive(y) es5id: 11.9.1_A7.9 diff --git a/js/src/tests/test262/language/expressions/equals/S9.1_A1_T3.js b/js/src/tests/test262/language/expressions/equals/S9.1_A1_T3.js index 7e305592bb16..7b83c08a26a4 100644 --- a/js/src/tests/test262/language/expressions/equals/S9.1_A1_T3.js +++ b/js/src/tests/test262/language/expressions/equals/S9.1_A1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of primitive conversion from object is a default value for the Object es5id: 9.1_A1_T3 diff --git a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-err.js b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-err.js index d5b5c30fb0b7..7bb8cf0b7383 100644 --- a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-err.js +++ b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-err.js @@ -5,7 +5,7 @@ es6id: 12.10.3 description: > Behavior when error thrown by invocation of `Symbol.toPrimitive` method during coercion -info: > +info: | [...] 7. Return the result of performing Abstract Equality Comparison rval == lval. diff --git a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-invocation.js b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-invocation.js index 3c6bcb498492..01174e471712 100644 --- a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-invocation.js +++ b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-invocation.js @@ -3,7 +3,7 @@ /*--- es6id: 12.10.3 description: Invocation of `Symbol.toPrimitive` method during coercion -info: > +info: | [...] 7. Return the result of performing Abstract Equality Comparison rval == lval. diff --git a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-obj.js b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-obj.js index efc5256b4c83..6ba1d7fb9b1e 100644 --- a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-obj.js +++ b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-obj.js @@ -4,7 +4,7 @@ es6id: 12.10.3 description: > Behavior when coercion via `Symbol.toPrimitive` yields an Object -info: > +info: | [...] 7. Return the result of performing Abstract Equality Comparison rval == lval. diff --git a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-prim.js b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-prim.js index ab1805359249..30dcfe105c4e 100644 --- a/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-prim.js +++ b/js/src/tests/test262/language/expressions/equals/coerce-symbol-to-prim-return-prim.js @@ -4,7 +4,7 @@ es6id: 12.10.3 description: > Behavior when coercion via `Symbol.toPrimitive` yields a primitive value -info: > +info: | [...] 7. Return the result of performing Abstract Equality Comparison rval == lval. diff --git a/js/src/tests/test262/language/expressions/equals/get-symbol-to-prim-err.js b/js/src/tests/test262/language/expressions/equals/get-symbol-to-prim-err.js index d6758a03d7fa..bb342d764308 100644 --- a/js/src/tests/test262/language/expressions/equals/get-symbol-to-prim-err.js +++ b/js/src/tests/test262/language/expressions/equals/get-symbol-to-prim-err.js @@ -4,7 +4,7 @@ es6id: 12.10.3 description: > Behavior when error thrown while accessing `Symbol.toPrimitive` property -info: > +info: | [...] 7. Return the result of performing Abstract Equality Comparison rval == lval. diff --git a/js/src/tests/test262/language/expressions/equals/to-prim-hint.js b/js/src/tests/test262/language/expressions/equals/to-prim-hint.js index 8a6b6c276184..53e7925c1740 100644 --- a/js/src/tests/test262/language/expressions/equals/to-prim-hint.js +++ b/js/src/tests/test262/language/expressions/equals/to-prim-hint.js @@ -4,7 +4,7 @@ /*--- esid: sec-abstract-equality-comparison description: Object operands coerced without ToPrimitive hint -info: > +info: | 7.2.14 Abstract Equality Comparison ... diff --git a/js/src/tests/test262/language/expressions/exponentiation/bigint-errors.js b/js/src/tests/test262/language/expressions/exponentiation/bigint-errors.js new file mode 100644 index 000000000000..7c8dd008a150 --- /dev/null +++ b/js/src/tests/test262/language/expressions/exponentiation/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: exponentiation operator ToNumeric with BigInt operands +esid: sec-exp-operator-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") ** 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ** Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) ** 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ** Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) ** 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ** { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) ** 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ** { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) ** 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n ** { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/exponentiation/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/exponentiation/bigint-toprimitive.js new file mode 100644 index 000000000000..d3f9d35d3b36 --- /dev/null +++ b/js/src/tests/test262/language/expressions/exponentiation/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: exponentiation operator ToNumeric with BigInt operands +esid: sec-exp-operator-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) ** 1n, 2n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(1n ** { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) ** 1n, 2n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(1n ** { + valueOf: function() { + return 2n; + }, + toString: err +}, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(1n ** { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(1n ** { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(1n ** { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n ** { + valueOf: null, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n ** { + valueOf: 1, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n ** { + valueOf: {}, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n ** { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n ** { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) ** 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n ** { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) ** 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n ** { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) ** 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n ** { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) ** 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n ** { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) ** 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n ** { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) ** 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n ** { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) ** 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n ** { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) ** 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ** { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) ** 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ** { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) ** 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ** { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) ** 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ** { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) ** 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n ** { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/exponentiation/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/exponentiation/bigint-wrapped-values.js new file mode 100644 index 000000000000..879e6d0d164d --- /dev/null +++ b/js/src/tests/test262/language/expressions/exponentiation/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: exponentiation operator ToNumeric with BigInt operands +esid: sec-exp-operator-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) ** 1n, 2n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(1n ** Object(2n), 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(1n ** { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: valueOf"); +assert.sameValue(1n ** { + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) ** 1n, 2n, "ToPrimitive: toString"); +assert.sameValue(1n ** { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-assignment-operator.js b/js/src/tests/test262/language/expressions/exponentiation/exp-assignment-operator.js index 68a036e8b0c2..a24818f7da4a 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-assignment-operator.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-assignment-operator.js @@ -5,7 +5,7 @@ author: Rick Waldron esid: sec-assignment-operators-runtime-semantics-evaluation description: Compound Exponentiation Assignment Operator -info: > +info: | AssignmentExpression: LeftHandSideExpression AssignmentOperator AssignmentExpression diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-evaluation-order.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-evaluation-order.js index f23173d9f9f7..17aca524d555 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-evaluation-order.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-evaluation-order.js @@ -5,7 +5,7 @@ author: Rick Waldron, André Bargull esid: sec-exp-operator-runtime-semantics-evaluation description: Exponentiation Operator expression order of evaluation -info: > +info: | ExponentiationExpression: UpdateExpression ** ExponentiationExpression diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js index 54337406db34..94015d9f9a49 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js @@ -5,7 +5,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Operator expression precedence of unary operators -info: > +info: | ExponentiationExpression : UnaryExpression ... diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js index 610d659489e0..80882b50a298 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js @@ -5,7 +5,7 @@ author: Rick Waldron esid: sec-update-expressions description: Exponentiation Operator expression precedence of update operators -info: > +info: | ExponentiationExpression : ... UpdateExpression `**` ExponentiationExpression diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js index 4b73c5047ebc..2a06a8177f48 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `~` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js index db4b15a32eca..a8ad884674c5 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `delete` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js index 06d4bf0148c6..9e68d9a559d4 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `!` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js index 637363deeda9..effe424d614b 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `-` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js index 465b4af252d8..f0423fae23ac 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `+` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js index 644ba5ded71d..8ced888250f4 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `typeof` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js index 0f0915b3138d..223ae4a3225f 100644 --- a/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js +++ b/js/src/tests/test262/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js @@ -6,7 +6,7 @@ author: Rick Waldron esid: sec-unary-operators description: Exponentiation Expression syntax error, `void` UnaryExpression -info: > +info: | ExponentiationExpression : UnaryExpression ... @@ -17,7 +17,7 @@ info: > ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/function/S10.1.1_A1_T2.js b/js/src/tests/test262/language/expressions/function/S10.1.1_A1_T2.js index ab6b01a8cc5c..804839aa9439 100644 --- a/js/src/tests/test262/language/expressions/function/S10.1.1_A1_T2.js +++ b/js/src/tests/test262/language/expressions/function/S10.1.1_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Program functions are defined in source text by a FunctionDeclaration or created dynamically either by using a FunctionExpression or by using the built-in Function object as a constructor es5id: 10.1.1_A1_T2 diff --git a/js/src/tests/test262/language/expressions/function/dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/function/dflt-params-duplicates.js index cf9a34920a3d..09c1a0087756 100644 --- a/js/src/tests/test262/language/expressions/function/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/function/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dflt-params-rest.js b/js/src/tests/test262/language/expressions/function/dflt-params-rest.js index faf56d12e6f9..042be69bf642 100644 --- a/js/src/tests/test262/language/expressions/function/dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/function/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-function-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-ary.js index ad034918ff4d..8eaf4a545397 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-id.js index aa245eba3f64..8b8a3247318a 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-obj.js index 86e32f6620a0..dae0ab607e31 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-ary.js index 25a47732db26..7bfd2e37e65c 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-id.js index a4e135acb97d..cf5f96dec79e 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-obj.js index 9734d0302617..d9bd915c675f 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/function/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-ary.js index 5945c121fd22..c43e6c508ab3 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-id.js index 842d3fe5866a..7bf8adc4108c 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-obj.js index 01b69ee42a6c..6f5e2b935d12 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js index 910d285e0478..0967d56407a9 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-id.js index 38fd6294557e..1f7783bf539d 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js index be92dade6f7e..f01076abcb90 100644 --- a/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.20 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/early-body-super-call.js b/js/src/tests/test262/language/expressions/function/early-body-super-call.js index 038ab034c8a7..acf49f24ccc1 100644 --- a/js/src/tests/test262/language/expressions/function/early-body-super-call.js +++ b/js/src/tests/test262/language/expressions/function/early-body-super-call.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Body may not contain a "super" call -info: > +info: | It is a Syntax Error if FunctionBody Contains SuperCall is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/function/early-body-super-prop.js b/js/src/tests/test262/language/expressions/function/early-body-super-prop.js index 6813c06b2ab4..19f98b16bfef 100644 --- a/js/src/tests/test262/language/expressions/function/early-body-super-prop.js +++ b/js/src/tests/test262/language/expressions/function/early-body-super-prop.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Body may not contain a "super" property reference -info: > +info: | It is a Syntax Error if FunctionBody Contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/function/early-params-super-call.js b/js/src/tests/test262/language/expressions/function/early-params-super-call.js index 73cc059a1018..3f50942c180d 100644 --- a/js/src/tests/test262/language/expressions/function/early-params-super-call.js +++ b/js/src/tests/test262/language/expressions/function/early-params-super-call.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Parameters may not contain a "super" call -info: > +info: | It is a Syntax Error if FormalParameters Contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/function/early-params-super-prop.js b/js/src/tests/test262/language/expressions/function/early-params-super-prop.js index fccc1f6a1cfb..940973585987 100644 --- a/js/src/tests/test262/language/expressions/function/early-params-super-prop.js +++ b/js/src/tests/test262/language/expressions/function/early-params-super-prop.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Parameters may not contain a "super" property reference -info: > +info: | It is a Syntax Error if FunctionBody Contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/function/name.js b/js/src/tests/test262/language/expressions/function/name.js index 2b638aa03336..c1e9cb9525c5 100644 --- a/js/src/tests/test262/language/expressions/function/name.js +++ b/js/src/tests/test262/language/expressions/function/name.js @@ -4,7 +4,7 @@ /*--- es6id: 14.1.20 description: Assignment of function `name` attribute -info: > +info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } 1. If the function code for FunctionExpression is strict mode code, let diff --git a/js/src/tests/test262/language/expressions/function/param-dflt-yield-strict-strict.js b/js/src/tests/test262/language/expressions/function/param-dflt-yield-strict-strict.js index 56707d15c20d..bca5f8527da7 100644 --- a/js/src/tests/test262/language/expressions/function/param-dflt-yield-strict-strict.js +++ b/js/src/tests/test262/language/expressions/function/param-dflt-yield-strict-strict.js @@ -14,7 +14,7 @@ info: | features: [generators, default-parameters] flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/function/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/function/rest-params-trailing-comma-early-error.js index 30eba163cab0..b772b24b65e1 100644 --- a/js/src/tests/test262/language/expressions/function/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/function/rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-function-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionExpression : function ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/function/use-strict-with-non-simple-param.js b/js/src/tests/test262/language/expressions/function/use-strict-with-non-simple-param.js index 49a9338b5f3c..62d0c61bb3d2 100644 --- a/js/src/tests/test262/language/expressions/function/use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/expressions/function/use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a function contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/generators/dflt-params-duplicates.js index 7cba74719297..0d0fec70b8aa 100644 --- a/js/src/tests/test262/language/expressions/generators/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/generators/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dflt-params-rest.js b/js/src/tests/test262/language/expressions/generators/dflt-params-rest.js index 761fde9db506..862db581251b 100644 --- a/js/src/tests/test262/language/expressions/generators/dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/generators/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js index bd1b70bb670b..0084596f9b9d 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js index ade619b58acb..9a46768386b9 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js index 3220dc8c5839..8c078ccfd4a9 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js index bc872255d90d..8cb9c4a0bf93 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js index 59967e2201c7..b0fe980e6b74 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js index e9fc7f852256..c4480102895c 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js index 5a14aac42bdc..9178ebb20657 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js index f447123c6436..f89838f5e4d4 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js index c75b1cf47af8..891ae2f953e8 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js index b64b700fad8b..b1ffcb5c11a7 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js index dcdc88352f08..0e74786edead 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js index ea0904d2dac9..73b179fba593 100644 --- a/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.14 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/eval-body-proto-realm.js b/js/src/tests/test262/language/expressions/generators/eval-body-proto-realm.js index 414f331c9255..7162532e507f 100644 --- a/js/src/tests/test262/language/expressions/generators/eval-body-proto-realm.js +++ b/js/src/tests/test262/language/expressions/generators/eval-body-proto-realm.js @@ -5,7 +5,7 @@ esid: sec-generator-function-definitions-runtime-semantics-evaluatebody es6id: 14.4.11 description: > Default [[Prototype]] value derived from realm of the generator function -info: > +info: | 1. Let G be ? OrdinaryCreateFromConstructor(functionObject, "%GeneratorPrototype%", « [[GeneratorState]], [[GeneratorContext]] »). [...] diff --git a/js/src/tests/test262/language/expressions/generators/implicit-name.js b/js/src/tests/test262/language/expressions/generators/implicit-name.js index 0f2a35deb3d7..d7c3752b1a16 100644 --- a/js/src/tests/test262/language/expressions/generators/implicit-name.js +++ b/js/src/tests/test262/language/expressions/generators/implicit-name.js @@ -2,7 +2,7 @@ // See LICENSE for details. /*--- -info: > +info: | Generator can be declared with GeneratorExpression syntax es6id: 14.4 author: Sam Mikes diff --git a/js/src/tests/test262/language/expressions/generators/name.js b/js/src/tests/test262/language/expressions/generators/name.js index 87f826fb00bd..1c44a94f115e 100644 --- a/js/src/tests/test262/language/expressions/generators/name.js +++ b/js/src/tests/test262/language/expressions/generators/name.js @@ -4,7 +4,7 @@ /*--- es6id: 14.4.1 description: Assignment of function `name` attribute -info: > +info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } 1. If the function code for this GeneratorExpression is strict mode code, diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier-escaped.js index 798a6d825913..32a465339a02 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier.js index 86565942a4af..29ace85043dd 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference-escaped.js index bbe95cecd2fc..8c7d3de58680 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference.js index 54579283c716..375883231cd7 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier-escaped.js index d693564be71d..7cac1a1dd968 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier.js index eb601d06dc09..3b27df23b9dd 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/generators/named-yield-identifier-spread-strict-strict.js index 0799b4e0ffb9..3813b5ab08f8 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorExpression features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/named-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/generators/named-yield-identifier-strict-strict.js index 49d08851ca8c..494089ebda0b 100644 --- a/js/src/tests/test262/language/expressions/generators/named-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/generators/named-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/no-name.js b/js/src/tests/test262/language/expressions/generators/no-name.js index e5b2705e9119..34d7e0b10e2c 100644 --- a/js/src/tests/test262/language/expressions/generators/no-name.js +++ b/js/src/tests/test262/language/expressions/generators/no-name.js @@ -2,7 +2,7 @@ // See LICENSE for details. /*--- -info: > +info: | Generator can be declared with GeneratorExpression syntax es6id: 14.4 author: Sam Mikes diff --git a/js/src/tests/test262/language/expressions/generators/param-dflt-yield.js b/js/src/tests/test262/language/expressions/generators/param-dflt-yield.js index b8dced100dc1..8efa9d58113b 100644 --- a/js/src/tests/test262/language/expressions/generators/param-dflt-yield.js +++ b/js/src/tests/test262/language/expressions/generators/param-dflt-yield.js @@ -17,7 +17,7 @@ info: | evaluated before the resulting generator object is in a resumable state. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/generators/rest-params-trailing-comma-early-error.js index 49008a4ffa20..762462ed1770 100644 --- a/js/src/tests/test262/language/expressions/generators/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/generators/rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-evaluation features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorExpression : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/generators/use-strict-with-non-simple-param.js b/js/src/tests/test262/language/expressions/generators/use-strict-with-non-simple-param.js index 6ed5a329c678..643726672c34 100644 --- a/js/src/tests/test262/language/expressions/generators/use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/expressions/generators/use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-generator-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a generator contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of FormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier-escaped.js index a55a7c397392..f3ee0ba4e753 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier.js index 3541d7813432..7fe934f89dd3 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-generator-expression-binding-identifier.js b/js/src/tests/test262/language/expressions/generators/yield-as-generator-expression-binding-identifier.js index c6b095d643b3..8663679b73c8 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-generator-expression-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-generator-expression-binding-identifier.js @@ -8,7 +8,7 @@ description: > es6id: 12.1.1 flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference-escaped.js index 7424749e9ff0..425c5a8a4e58 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference.js index 303e9b4305a6..49de3d25cd6a 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier-escaped.js index a67f83abc245..76cd353d5be9 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier.js index ea2c9a5fc38a..0bcc492abef2 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-logical-or-expression.js b/js/src/tests/test262/language/expressions/generators/yield-as-logical-or-expression.js index a52a6c7df0f7..2466b818ae1e 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-logical-or-expression.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-logical-or-expression.js @@ -7,7 +7,7 @@ description: > `yield` expressions are not LogicalOrExpressions. es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/yield-as-parameter.js b/js/src/tests/test262/language/expressions/generators/yield-as-parameter.js index b0df83b94ad6..7bcea40ef60d 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-as-parameter.js +++ b/js/src/tests/test262/language/expressions/generators/yield-as-parameter.js @@ -8,7 +8,7 @@ description: > not be used as the binding identifier of a parameter. es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/generators/yield-identifier-spread-strict-strict.js index 2d7e240ceb2f..8ba1b6233b2e 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/generators/yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorExpression features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/generators/yield-identifier-strict-strict.js index fbbe5d5b2e7a..45ba89df2b13 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/generators/yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorExpression features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/generators/yield-star-after-newline.js b/js/src/tests/test262/language/expressions/generators/yield-star-after-newline.js index 2878537c3c4e..0d948dd215f7 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-star-after-newline.js +++ b/js/src/tests/test262/language/expressions/generators/yield-star-after-newline.js @@ -7,7 +7,7 @@ description: > A newline may not precede the `*` token in a `yield` expression. es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/generators/yield-weak-binding.js b/js/src/tests/test262/language/expressions/generators/yield-weak-binding.js index 65d4b4fe0900..98c1a78b79f4 100644 --- a/js/src/tests/test262/language/expressions/generators/yield-weak-binding.js +++ b/js/src/tests/test262/language/expressions/generators/yield-weak-binding.js @@ -7,7 +7,7 @@ description: > `yield` expressions bind weakly es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A1.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A1.js index fc784b671516..4a13a62ab008 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A1.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between RelationalExpression and "=>" or "=>" and ShiftExpression are allowed es5id: 11.8.4_A1 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A2.3_T1.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A2.3_T1.js index b67269614d53..01b7ad08a5eb 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.8.4_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.1.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.1.js index 11331d8e0674..b8b9a13a2198 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.1.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T1.1 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.2.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.2.js index fbc553876373..acd988279985 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.2.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T1.2 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.3.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.3.js index 135d2349fa47..7e2b0ac1589c 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.3.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T1.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T1.3 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.1.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.1.js index eeeaef9ed056..e416761aa559 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.1.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.1 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.2.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.2.js index 283f9ebe0af2..db7fccbfdc3e 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.2.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.2 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.3.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.3.js index 15880974462c..3cf6329b4c6e 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.3.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.3 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.4.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.4.js index b286876d228a..b99c046785e3 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.4.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.4 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.5.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.5.js index f1f781fe47c4..166a5647b905 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.5.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.5 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.6.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.6.js index d7a4c218c400..7ee01da280d5 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.6.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.6 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.7.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.7.js index f02a47c03194..7c7877a203d9 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.7.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.7 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.8.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.8.js index 092e187d9439..3e94d2d6ab66 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.8.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.8 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.9.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.9.js index 38e51b9b88d2..a6c08bfb29c4 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.9.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.1_T2.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x >= y returns ToNumber(x) >= ToNumber(y) es5id: 11.8.4_A3.1_T2.9 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.1.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.1.js index 10cad847e84d..fab514f69fd1 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.1.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x >= y returns ToString(x) >= ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String es5id: 11.8.4_A3.2_T1.1 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.2.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.2.js index 5846487e9878..47e15df3bed4 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.2.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A3.2_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x >= y returns ToString(x) >= ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String es5id: 11.8.4_A3.2_T1.2 diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T1.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T1.js index a4265f7c07ee..9faead805aa5 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T1.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T2.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T2.js index 9d75d4843c19..9ae27182ca19 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T2.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.9.js b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.9.js index 68727854950b..cba37a1641f7 100644 --- a/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.9.js +++ b/js/src/tests/test262/language/expressions/greater-than-or-equal/S11.8.4_A4.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If x is greater or equal than y and these values are both finite non-zero, return true; otherwise, return false es5id: 11.8.4_A4.9 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A1.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A1.js index fa71281df055..a60055f1bbc1 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A1.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between RelationalExpression and ">" or ">" and ShiftExpression are allowed es5id: 11.8.2_A1 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.1.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.1.js index 61fbdc89d2fa..207c4fc4a3e7 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.1.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T1.1 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.2.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.2.js index 7dd2afd573fe..3bbd3d1247db 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.2.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T1.2 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.3.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.3.js index f2c313a841d8..2c8834d48612 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.3.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T1.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T1.3 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.1.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.1.js index 440043d0488a..ce81bb79cf83 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.1.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.1 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.2.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.2.js index dfbe7b120b28..5f3cea2b3a37 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.2.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.2 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.3.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.3.js index efe66af45b9e..7393a641a9af 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.3.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.3 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.4.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.4.js index 9900309f5349..fa7eb904767f 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.4.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.4 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.5.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.5.js index 5191d9d7bfa9..ccbd30411ed2 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.5.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.5 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.6.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.6.js index 272eac0d423c..d84a1479a598 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.6.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.6 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.7.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.7.js index 0818dfcfb28b..ac4cfcb817fd 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.7.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.7 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.8.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.8.js index 990d0fc71a33..a21d771bcdf9 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.8.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.8 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.9.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.9.js index 889817f03914..aa8a579c013d 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.9.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.1_T2.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x > y returns ToNumber(x) > ToNumber(y) es5id: 11.8.2_A3.1_T2.9 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.1.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.1.js index 13d1d767858f..07fd6336f13f 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.1.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String and Type(Primitive(y)) is String, then operator x > y returns ToString(x) > ToString(y) es5id: 11.8.2_A3.2_T1.1 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.2.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.2.js index b66d32e14356..9c34dd128970 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.2.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A3.2_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is String and Type(Primitive(y)) is String, then operator x > y returns ToString(x) > ToString(y) es5id: 11.8.2_A3.2_T1.2 diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T1.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T1.js index e3ca016cd580..85e67dbb1bd6 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T1.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T2.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T2.js index 3119d0f50f48..cfa5f2c957c2 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T2.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.9.js b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.9.js index 951a801093be..f62c82f9fedb 100644 --- a/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.9.js +++ b/js/src/tests/test262/language/expressions/greater-than/S11.8.2_A4.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If is x greater than y and these values are both finite non-zero, return true; otherwise, return false es5id: 11.8.2_A4.9 diff --git a/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T1.js b/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T1.js index ce5d319693f6..7d32b9fe4d15 100644 --- a/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T1.js +++ b/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "This" operator doesn't use GetValue. The operators "delete" and "typeof" can be applied to parenthesised expressions es5id: 11.1.6_A2_T1 diff --git a/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T2.js b/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T2.js index 5218ba282d39..5fd1492dd8c0 100644 --- a/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T2.js +++ b/js/src/tests/test262/language/expressions/grouping/S11.1.6_A2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "This" operator doesn't use GetValue. The operators "delete" and "typeof" can be applied to parenthesised expressions es5id: 11.1.6_A2_T2 diff --git a/js/src/tests/test262/language/expressions/in/S11.8.7_A1.js b/js/src/tests/test262/language/expressions/in/S11.8.7_A1.js index ea59beeac1e0..82b5e20e58ba 100644 --- a/js/src/tests/test262/language/expressions/in/S11.8.7_A1.js +++ b/js/src/tests/test262/language/expressions/in/S11.8.7_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between RelationalExpression and "in" and between "in" and ShiftExpression are allowed es5id: 11.8.7_A1 diff --git a/js/src/tests/test262/language/expressions/in/S8.12.6_A1.js b/js/src/tests/test262/language/expressions/in/S8.12.6_A1.js index b8e948785448..5e258339db3d 100644 --- a/js/src/tests/test262/language/expressions/in/S8.12.6_A1.js +++ b/js/src/tests/test262/language/expressions/in/S8.12.6_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[HasProperty]] method of O is called with property name P and if O has a property with name P, return true es5id: 8.12.6_A1 diff --git a/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T1.js b/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T1.js index 28eff15656c5..382e4e558714 100644 --- a/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T1.js +++ b/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[HasProperty]] method of O is called with property name P and if O has not a property with name P then If the [[Prototype]] of O is null, return false or call the [[HasProperty]] method of [[Prototype]] with property name P es5id: 8.12.6_A2_T1 diff --git a/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T2.js b/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T2.js index 6b5001a56d1d..76a972ef59cd 100644 --- a/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T2.js +++ b/js/src/tests/test262/language/expressions/in/S8.12.6_A2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[HasProperty]] method of O is called with property name P and if O has not a property with name P then If the [[Prototype]] of O is null, return false or call the [[HasProperty]] method of [[Prototype]] with property name P es5id: 8.12.6_A2_T2 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A1.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A1.js index 7c1935b86182..411fbf410e2f 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A1.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between RelationalExpression and "instanceof" and between "instanceof" and ShiftExpression are allowed es5id: 11.8.6_A1 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T1.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T1.js index de9c4eedf43b..550cb0ccd80b 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T1.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently es5id: 11.8.6_A6_T1 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T2.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T2.js index a13da8e67296..73c3cdb43ac1 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T2.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently es5id: 11.8.6_A6_T2 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T3.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T3.js index 64ae00752c67..5fac55c9afe1 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T3.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently es5id: 11.8.6_A6_T3 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T4.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T4.js index f3f656fdc5cf..0a2f90ac302d 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T4.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A6_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently es5id: 11.8.6_A6_T4 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T1.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T1.js index dc9bb44a3a92..a3c279df9f12 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T1.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "instanceof" returns true it means that GetValue(RelationalExpression) is constructed with ShiftExpression es5id: 11.8.6_A7_T1 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T2.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T2.js index 7d18bd60c515..968d9122d34c 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T2.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "instanceof" returns true it means that GetValue(RelationalExpression) is constructed with ShiftExpression es5id: 11.8.6_A7_T2 diff --git a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T3.js b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T3.js index 0e2bc60fc595..707f2bdfcdc3 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T3.js +++ b/js/src/tests/test262/language/expressions/instanceof/S11.8.6_A7_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "instanceof" returns true it means that GetValue(RelationalExpression) is constructed with ShiftExpression es5id: 11.8.6_A7_T3 diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T1.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T1.js index 3a8418274c4a..6983cb79bfab 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T1.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T2.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T2.js index 0e65d26e220c..b26a45769f98 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T2.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T3.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T3.js index 210b69d3fcec..169846777276 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T3.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T4.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T4.js index 642598b2c18f..5e38ce31b7fb 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T4.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T5.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T5.js index 4badd14beef3..e3da40bb7be1 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T5.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T6.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T6.js index b19411717c06..211a986f8dda 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T6.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T7.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T7.js index b90a097cda44..157db551aabb 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T7.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T8.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T8.js index add35b77c960..66339c66b5b2 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T8.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A1_T8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V, the following steps are taken: i) If V is not an object, return false diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T2.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T2.js index 9b48deb87f20..e232b1ab2d04 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T2.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V and V is an object, the following steps are taken: i) Call the [[Get]] method of F with property name "prototype". ii) Let O be Result(i). diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T5.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T5.js index b65adfe1f80c..4d58fd13c8eb 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T5.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V and V is an object, the following steps are taken: i) Call the [[Get]] method of F with property name diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T6.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T6.js index 6ff508b2ebe9..b5ce4fdc53cd 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T6.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A2_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V and V is an object, the following steps are taken: i) Call the [[Get]] method of F with property name diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T1.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T1.js index 533738bc8a3e..10d7d7d7ebf8 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T1.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V and V is an object, the following steps are taken: i) Call the [[Get]] method of F with property name "prototype". ii) Let O be Result(i) and O is an object. diff --git a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T2.js b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T2.js index f2e07153281b..52182203cb1d 100644 --- a/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T2.js +++ b/js/src/tests/test262/language/expressions/instanceof/S15.3.5.3_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Assume F is a Function object. When the [[HasInstance]] method of F is called with value V and V is an object, the following steps are taken: i) Call the [[Get]] method of F with property name "prototype". ii) Let O be Result(i) and O is an object. diff --git a/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-object.js b/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-object.js index 6ce5ecde67aa..38ee7a8be758 100644 --- a/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-object.js +++ b/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-object.js @@ -5,7 +5,7 @@ es6id: 12.9.3 description: > Throws a TypeError if `prototype` property is not an Object. -info: > +info: | 12.9.3 Runtime Semantics: Evaluation RelationalExpression : RelationalExpression instanceof ShiftExpression ... diff --git a/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-primitive.js b/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-primitive.js index 8b87f9beba86..53ca25f50ad2 100644 --- a/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-primitive.js +++ b/js/src/tests/test262/language/expressions/instanceof/primitive-prototype-with-primitive.js @@ -5,7 +5,7 @@ es6id: 12.9.3 description: > Does not throw a TypeError if left-hand side expression and `prototype` property are both primitive values. -info: > +info: | 12.9.3 Runtime Semantics: Evaluation RelationalExpression : RelationalExpression instanceof ShiftExpression ... diff --git a/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object-throws.js b/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object-throws.js index 17d301fb2236..a7100ae4316b 100644 --- a/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object-throws.js +++ b/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object-throws.js @@ -5,7 +5,7 @@ es6id: 12.9.3 description: > "prototype" property is retrieved when left-hand side expression in `instanceof` is object. -info: > +info: | 12.9.3 Runtime Semantics: Evaluation RelationalExpression : RelationalExpression instanceof ShiftExpression ... diff --git a/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object.js b/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object.js index 3e5615725c40..a26c3e67f621 100644 --- a/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object.js +++ b/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-object.js @@ -5,7 +5,7 @@ es6id: 12.9.3 description: > "prototype" property is retrieved when left-hand side expression in `instanceof` is object. -info: > +info: | 12.9.3 Runtime Semantics: Evaluation RelationalExpression : RelationalExpression instanceof ShiftExpression ... diff --git a/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-primitive.js b/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-primitive.js index baf1e4056192..7e8a13b74dee 100644 --- a/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-primitive.js +++ b/js/src/tests/test262/language/expressions/instanceof/prototype-getter-with-primitive.js @@ -5,7 +5,7 @@ es6id: 12.9.3 description: > "prototype" property is not retrieved when left-hand side expression in `instanceof` is primitive. -info: > +info: | 12.9.3 Runtime Semantics: Evaluation RelationalExpression : RelationalExpression instanceof ShiftExpression ... diff --git a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-get-err.js b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-get-err.js index 7938b8b9ffa0..e562e9c4ff3f 100644 --- a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-get-err.js +++ b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-get-err.js @@ -4,7 +4,7 @@ /*--- es6id: 12.9.4 description: Error thrown when accessing constructor's @@hasInstance property -info: > +info: | 1. If Type(C) is not Object, throw a TypeError exception. 2. Let instOfHandler be GetMethod(C,@@hasInstance). 3. ReturnIfAbrupt(instOfHandler). diff --git a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-invocation.js b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-invocation.js index fe11e5ff327d..bc0a56e9c14b 100644 --- a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-invocation.js +++ b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-invocation.js @@ -5,7 +5,7 @@ es6id: 12.9.4 description: > Arguments and 'this' value when invoking constructor's @@hasInstance property -info: > +info: | 1. If Type(C) is not Object, throw a TypeError exception. 2. Let instOfHandler be GetMethod(C,@@hasInstance). 3. ReturnIfAbrupt(instOfHandler). diff --git a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-not-callable.js b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-not-callable.js index 3601f44056ba..4059b662c167 100644 --- a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-not-callable.js +++ b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-not-callable.js @@ -5,7 +5,7 @@ es6id: 12.9.4 description: > Error thrown when constructor's @@hasInstance property is defined but not callable -info: > +info: | 1. If Type(C) is not Object, throw a TypeError exception. 2. Let instOfHandler be GetMethod(C,@@hasInstance). 3. ReturnIfAbrupt(instOfHandler). diff --git a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js index d77279e869e9..195ac80ad125 100644 --- a/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js +++ b/js/src/tests/test262/language/expressions/instanceof/symbol-hasinstance-to-boolean.js @@ -5,7 +5,7 @@ es6id: 12.9.4 description: > Type coercion of value returned by constructor's @@hasInstance property -info: > +info: | 1. If Type(C) is not Object, throw a TypeError exception. 2. Let instOfHandler be GetMethod(C,@@hasInstance). 3. ReturnIfAbrupt(instOfHandler). diff --git a/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A1.js b/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A1.js index 81b245287037..772c6ef8a43d 100644 --- a/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A1.js +++ b/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between ShiftExpression and "<<" or between "<<" and AdditiveExpression are allowed es5id: 11.7.1_A1 diff --git a/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A2.3_T1.js b/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A2.3_T1.js index f83f6020f84f..2b60693880b5 100644 --- a/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/left-shift/S11.7.1_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.7.1_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/left-shift/bigint-errors.js b/js/src/tests/test262/language/expressions/left-shift/bigint-errors.js new file mode 100644 index 000000000000..6aafc750a9d9 --- /dev/null +++ b/js/src/tests/test262/language/expressions/left-shift/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: left-shift operator ToNumeric with BigInt operands +esid: sec-left-shift-operator-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") << 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n << Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) << 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n << Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) << 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n << { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) << 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n << { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) << 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n << { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/left-shift/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/left-shift/bigint-toprimitive.js new file mode 100644 index 000000000000..ae6370b74708 --- /dev/null +++ b/js/src/tests/test262/language/expressions/left-shift/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: left-shift operator ToNumeric with BigInt operands +esid: sec-left-shift-operator-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) << 1n, 4n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(1n << { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 4n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) << 1n, 4n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(1n << { + valueOf: function() { + return 2n; + }, + toString: err +}, 4n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(1n << { + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(1n << { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(1n << { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n << { + valueOf: null, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n << { + valueOf: 1, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(1n << { + valueOf: {}, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n << { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(1n << { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) << 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n << { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) << 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n << { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) << 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n << { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) << 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n << { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) << 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n << { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) << 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n << { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) << 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n << { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) << 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n << { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) << 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n << { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) << 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n << { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) << 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n << { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) << 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n << { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/left-shift/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/left-shift/bigint-wrapped-values.js new file mode 100644 index 000000000000..43e1d06542b3 --- /dev/null +++ b/js/src/tests/test262/language/expressions/left-shift/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: left-shift operator ToNumeric with BigInt operands +esid: sec-left-shift-operator-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) << 1n, 4n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(1n << Object(2n), 4n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(1n << { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 4n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: valueOf"); +assert.sameValue(1n << { + valueOf: function() { + return 2n; + } +}, 4n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) << 1n, 4n, "ToPrimitive: toString"); +assert.sameValue(1n << { + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A1.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A1.js index 6be346b81c76..a491867da5ac 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A1.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between RelationalExpression and "<=" or between "<=" and ShiftExpression are allowed es5id: 11.8.3_A1 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.1.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.1.js index 7730eb63bfa1..c1520603b6ef 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.1.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T1.1 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.2.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.2.js index 147ca08c482b..a09f0aa42ece 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.2.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T1.2 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.3.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.3.js index f729193c0935..e4ef159ebf05 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.3.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T1.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T1.3 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.1.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.1.js index 638ae4b995c0..79db7d8afe6e 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.1.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.1 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.2.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.2.js index 591e88b91d10..bb8b647744a8 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.2.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.2 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.3.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.3.js index 0393803e6a32..1217f0a272a0 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.3.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.3 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.4.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.4.js index f79746d002c9..dfc155a84267 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.4.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.4 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.5.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.5.js index ec863f57bcc9..9bcaa76b13db 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.5.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.5 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.6.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.6.js index 1096b651914d..f45e53cdad6a 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.6.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.6 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.7.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.7.js index 9d4664ccac78..fdfe56b949ad 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.7.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.7 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.8.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.8.js index 394cfd3ade76..bb4e424fb57e 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.8.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.8 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.9.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.9.js index 98e1faac43d1..c4cd29c53107 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.9.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.1_T2.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToNumber(x) <= ToNumber(y), if Type(Primitive(x)) is not String or Type(Primitive(y)) is not String es5id: 11.8.3_A3.1_T2.9 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.1.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.1.js index ec0ac6817ade..750a24a75624 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.1.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToString(x) <= ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String es5id: 11.8.3_A3.2_T1.1 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js index a0198954a63c..c3bed3100f0d 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A3.2_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x <= y returns ToString(x) <= ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String es5id: 11.8.3_A3.2_T1.2 diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T1.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T1.js index 3227b7c8df5b..db99f41359ef 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T1.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T2.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T2.js index 9c41189e2104..a1dc028bc585 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T2.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.9.js b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.9.js index ae795e229c68..09169b92a944 100644 --- a/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.9.js +++ b/js/src/tests/test262/language/expressions/less-than-or-equal/S11.8.3_A4.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If x is less or equal than y and these values are both finite non-zero, return true; otherwise, return false es5id: 11.8.3_A4.9 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A1.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A1.js index 1487c6063ea1..92c5e13fed53 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A1.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between RelationalExpression and "<" or between "<" and ShiftExpression are allowed es5id: 11.8.1_A1 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A2.3_T1.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A2.3_T1.js index 6acb31b58792..67f1483f408b 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.8.1_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.1.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.1.js index ef6ebe5d2d84..8462c3d69daa 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.1.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T1.1 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.2.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.2.js index 78656930593d..fc43b6456b81 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.2.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T1.2 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.3.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.3.js index d24149230ec4..5d7d4027598f 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.3.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T1.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T1.3 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.1.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.1.js index 67b0d17e3674..47a1948e5449 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.1.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.1 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.2.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.2.js index 2d4ffd752928..f7d7a6a19ad8 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.2.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.2 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.3.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.3.js index c5433d21d2d6..662884d714ac 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.3.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.3 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.4.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.4.js index 7f42096d92f1..c22b119bd8f3 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.4.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.4 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.5.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.5.js index 839c001a5ba4..a05e1e5ab6c4 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.5.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.5 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.6.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.6.js index a5fb8f150586..60fa5df339c0 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.6.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.6 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.7.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.7.js index 2096a175d224..02bc837b380f 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.7.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.7 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.8.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.8.js index f23698ff92e1..d76122899f64 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.8.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.8 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.9.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.9.js index cc3b397e33e5..43d5f8996362 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.9.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.1_T2.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String, then operator x < y returns ToNumber(x) < ToNumber(y) es5id: 11.8.1_A3.1_T2.9 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.1.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.1.js index 21b871503760..90969b47aa3a 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.1.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x < y returns ToString(x) < ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String es5id: 11.8.1_A3.2_T1.1 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.2.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.2.js index 985fe6de0156..3cd12be9a2ad 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.2.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A3.2_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Operator x < y returns ToString(x) < ToString(y), if Type(Primitive(x)) is String and Type(Primitive(y)) is String es5id: 11.8.1_A3.2_T1.2 diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T1.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T1.js index 030884f0a38c..b1b9005bc4d1 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T1.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T2.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T2.js index a4b9ab20f2ae..9f103b7c7811 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T2.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If neither x, nor y is a prefix of each other, returned result of strings comparison applies a simple lexicographic ordering to the sequences of code point value values diff --git a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.9.js b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.9.js index cd41095d8761..378add3363b1 100644 --- a/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.9.js +++ b/js/src/tests/test262/language/expressions/less-than/S11.8.1_A4.9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If x is less than y and these values are both finite non-zero, return true; otherwise, return false es5id: 11.8.1_A4.9 diff --git a/js/src/tests/test262/language/expressions/logical-and/S11.11.1_A1.js b/js/src/tests/test262/language/expressions/logical-and/S11.11.1_A1.js index 8c46d09ecfb3..9d057def7ab6 100644 --- a/js/src/tests/test262/language/expressions/logical-and/S11.11.1_A1.js +++ b/js/src/tests/test262/language/expressions/logical-and/S11.11.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LogicalANDExpression and "&&" or between "&&" and BitwiseORExpression are allowed es5id: 11.11.1_A1 diff --git a/js/src/tests/test262/language/expressions/logical-and/tco-right-strict.js b/js/src/tests/test262/language/expressions/logical-and/tco-right-strict.js index f64eb9089f83..23e1590fda78 100644 --- a/js/src/tests/test262/language/expressions/logical-and/tco-right-strict.js +++ b/js/src/tests/test262/language/expressions/logical-and/tco-right-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/logical-not/S11.4.9_A1.js b/js/src/tests/test262/language/expressions/logical-not/S11.4.9_A1.js index 87165f8607d0..fe684a03139e 100644 --- a/js/src/tests/test262/language/expressions/logical-not/S11.4.9_A1.js +++ b/js/src/tests/test262/language/expressions/logical-not/S11.4.9_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "!" and UnaryExpression are allowed es5id: 11.4.9_A1 diff --git a/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T2.js b/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T2.js index d1cb7bbe2792..79f3519a3019 100644 --- a/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T2.js +++ b/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of boolean conversion from number value is false if the argument is +0, -0, or NaN; otherwise, is true es5id: 9.2_A4_T2 diff --git a/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T4.js b/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T4.js index f801b93b8c0b..a2e60bd784ee 100644 --- a/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T4.js +++ b/js/src/tests/test262/language/expressions/logical-not/S9.2_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of boolean conversion from number value is false if the argument is +0, -0, or NaN; otherwise, is true es5id: 9.2_A4_T4 diff --git a/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T2.js b/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T2.js index d979b1ca0a65..1518122dedab 100644 --- a/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T2.js +++ b/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of boolean conversion from nonempty string value (length is not zero) is true; from empty String (length is zero) is false es5id: 9.2_A5_T2 diff --git a/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T4.js b/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T4.js index 5d4bcc857d69..d1baf671b5b8 100644 --- a/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T4.js +++ b/js/src/tests/test262/language/expressions/logical-not/S9.2_A5_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of boolean conversion from nonempty string value (length is not zero) is true; from empty String (length is zero) is false es5id: 9.2_A5_T4 diff --git a/js/src/tests/test262/language/expressions/logical-or/S11.11.2_A1.js b/js/src/tests/test262/language/expressions/logical-or/S11.11.2_A1.js index 321958714d2b..b7da0b111822 100644 --- a/js/src/tests/test262/language/expressions/logical-or/S11.11.2_A1.js +++ b/js/src/tests/test262/language/expressions/logical-or/S11.11.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between LogicalORExpression and "||" or between "||" and LogicalANDExpression are allowed es5id: 11.11.2_A1 diff --git a/js/src/tests/test262/language/expressions/logical-or/tco-right-strict.js b/js/src/tests/test262/language/expressions/logical-or/tco-right-strict.js index bb9336972fdb..0bb70f0143aa 100644 --- a/js/src/tests/test262/language/expressions/logical-or/tco-right-strict.js +++ b/js/src/tests/test262/language/expressions/logical-or/tco-right-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A1.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A1.js index d8cf6cc7dc58..6b5b9b1a48c9 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A1.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between MultiplicativeExpression and "%" or between "%" and UnaryExpression are allowed es5id: 11.5.3_A1 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A2.3_T1.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A2.3_T1.js index f8221044894b..67a988b74986 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.5.3_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.1.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.1.js index 986a5bcb5bf6..ce7b86e3e66c 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.1.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T1.1 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.2.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.2.js index f47c6cd9ed54..62b21948cc92 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.2.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T1.2 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T2.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T2.js index 778c299dd60e..83191e576bbb 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T2.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T2 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T3.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T3.js index fd9d73667193..00168181f127 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T3.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T3 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T4.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T4.js index 8deb3e4382f5..cec7b917a6d0 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T4.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T4 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T5.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T5.js index 11aacf2998f8..0c6d734dc71f 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T5.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T5 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T6.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T6.js index 001a5b796988..3b1ae44a509e 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T6.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T6 diff --git a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T7.js b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T7.js index d6a6cbbce108..ed82477911de 100644 --- a/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T7.js +++ b/js/src/tests/test262/language/expressions/modulus/S11.5.3_A4_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a ECMAScript floating-point remainder operation is determined by the rules of IEEE arithmetics es5id: 11.5.3_A4_T7 diff --git a/js/src/tests/test262/language/expressions/modulus/bigint-errors.js b/js/src/tests/test262/language/expressions/modulus/bigint-errors.js new file mode 100644 index 000000000000..164ce180ea61 --- /dev/null +++ b/js/src/tests/test262/language/expressions/modulus/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: modulus operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") % 1n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n % Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) % 1n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n % Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) % 1n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n % { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) % 1n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n % { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) % 1n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n % { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/modulus/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/modulus/bigint-toprimitive.js new file mode 100644 index 000000000000..0be91de60fd7 --- /dev/null +++ b/js/src/tests/test262/language/expressions/modulus/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: modulus operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) % 2n, 0n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(2n % { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 0n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) % 2n, 0n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(2n % { + valueOf: function() { + return 2n; + }, + toString: err +}, 0n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(2n % { + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(2n % { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(2n % { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n % { + valueOf: null, + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n % { + valueOf: 1, + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n % { + valueOf: {}, + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(2n % { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(2n % { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) % 1n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n % { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) % 1n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n % { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) % 1n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n % { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) % 1n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n % { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) % 1n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n % { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) % 1n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n % { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) % 1n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n % { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) % 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n % { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) % 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n % { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) % 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n % { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) % 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n % { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) % 1n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n % { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/modulus/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/modulus/bigint-wrapped-values.js new file mode 100644 index 000000000000..fbac1e233746 --- /dev/null +++ b/js/src/tests/test262/language/expressions/modulus/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: modulus operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) % 2n, 0n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(2n % Object(2n), 0n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(2n % { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 0n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: valueOf"); +assert.sameValue(2n % { + valueOf: function() { + return 2n; + } +}, 0n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) % 2n, 0n, "ToPrimitive: toString"); +assert.sameValue(2n % { + toString: function() { + return 2n; + } +}, 0n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A1.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A1.js index 591bff7236b2..6b9bb174908b 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A1.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between MultiplicativeExpression and "*" or between "*" and UnaryExpression are allowed es5id: 11.5.1_A1 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A2.3_T1.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A2.3_T1.js index 2ea44b00e32a..dcf998148f58 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.5.1_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.1.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.1.js index c427be95b90c..279f9cb57433 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.1.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T1.1 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.2.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.2.js index 3835c8d3df72..9f8d81cb648a 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.2.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T1.2 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T2.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T2.js index aeca8f1fc46f..cd024c58818f 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T2.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T2 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T3.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T3.js index 7c93e48b4c2a..2ecf766110cf 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T3.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T3 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T4.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T4.js index 968226f011c7..14f57d8d07b2 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T4.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T4 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T5.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T5.js index ed0273ee056e..3d691318f6cc 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T5.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T5 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T6.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T6.js index d7afc5c2d5ed..967f323790d6 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T6.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T6 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T7.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T7.js index aee0d2a0bfdd..c47a01f396dd 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T7.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T7 diff --git a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T8.js b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T8.js index 12d36aeb83d1..7d041d86a4dd 100644 --- a/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T8.js +++ b/js/src/tests/test262/language/expressions/multiplication/S11.5.1_A4_T8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of a floating-point multiplication is governed by the rules of IEEE 754 double-precision arithmetics es5id: 11.5.1_A4_T8 diff --git a/js/src/tests/test262/language/expressions/multiplication/bigint-errors.js b/js/src/tests/test262/language/expressions/multiplication/bigint-errors.js new file mode 100644 index 000000000000..34adc9ffd4bc --- /dev/null +++ b/js/src/tests/test262/language/expressions/multiplication/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: multiplication operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") * 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n * Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) * 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n * Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) * 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n * { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) * 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n * { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) * 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n * { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/multiplication/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/multiplication/bigint-toprimitive.js new file mode 100644 index 000000000000..1a76ff120a3c --- /dev/null +++ b/js/src/tests/test262/language/expressions/multiplication/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: multiplication operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) * 2n, 4n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(2n * { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 4n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) * 2n, 4n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(2n * { + valueOf: function() { + return 2n; + }, + toString: err +}, 4n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(2n * { + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(2n * { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(2n * { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n * { + valueOf: null, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n * { + valueOf: 1, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(2n * { + valueOf: {}, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(2n * { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(2n * { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) * 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n * { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) * 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n * { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) * 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n * { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) * 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n * { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) * 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n * { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) * 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n * { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) * 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n * { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) * 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n * { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) * 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n * { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) * 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n * { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) * 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n * { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) * 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n * { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/multiplication/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/multiplication/bigint-wrapped-values.js new file mode 100644 index 000000000000..685c7491661f --- /dev/null +++ b/js/src/tests/test262/language/expressions/multiplication/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: multiplication operator ToNumeric with BigInt operands +esid: sec-multiplicative-operators-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) * 2n, 4n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(2n * Object(2n), 4n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(2n * { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 4n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: valueOf"); +assert.sameValue(2n * { + valueOf: function() { + return 2n; + } +}, 4n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) * 2n, 4n, "ToPrimitive: toString"); +assert.sameValue(2n * { + toString: function() { + return 2n; + } +}, 4n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/new.target/escaped-new.js b/js/src/tests/test262/language/expressions/new.target/escaped-new.js index 18eb7eb82749..2183cfae9e2e 100644 --- a/js/src/tests/test262/language/expressions/new.target/escaped-new.js +++ b/js/src/tests/test262/language/expressions/new.target/escaped-new.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `new` keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/new.target/escaped-target.js b/js/src/tests/test262/language/expressions/new.target/escaped-target.js index aaecef51c4bd..813355092404 100644 --- a/js/src/tests/test262/language/expressions/new.target/escaped-target.js +++ b/js/src/tests/test262/language/expressions/new.target/escaped-target.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `target` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A1.1.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A1.1.js index 37981e775c36..7c144fa356c9 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A1.1.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "new" and NewExpression are allowed es5id: 11.2.2_A1.1 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A1.2.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A1.2.js index c99bb47e326d..b0f69089b858 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A1.2.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "new" and MemberExpression are allowed es5id: 11.2.2_A1.2 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T1.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T1.js index 57fc7ba55b41..5e6feba6973b 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T1.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(NewExpression) or Type(MemberExpression) is not Object, throw TypeError es5id: 11.2.2_A3_T1 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T2.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T2.js index a3495e62708a..3ee02e3baa99 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T2.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(NewExpression) or Type(MemberExpression) is not Object, throw TypeError es5id: 11.2.2_A3_T2 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T3.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T3.js index 1f7630aeb58b..ac539561fe69 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T3.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(NewExpression) or Type(MemberExpression) is not Object, throw TypeError es5id: 11.2.2_A3_T3 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T4.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T4.js index cf4bcfc9bd89..8b4be66a52f5 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T4.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(NewExpression) or Type(MemberExpression) is not Object, throw TypeError es5id: 11.2.2_A3_T4 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T5.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T5.js index ba92f5ad2ce2..43aa231b50de 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T5.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A3_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Type(NewExpression) or Type(MemberExpression) is not Object, throw TypeError es5id: 11.2.2_A3_T5 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T1.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T1.js index 014a121c7f79..0993cb7b499d 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T1.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If NewExpression or MemberExpression does not implement internal [[Construct]] method, throw TypeError es5id: 11.2.2_A4_T1 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T2.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T2.js index 62c7cc2e77d0..2d9277d678a8 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T2.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If NewExpression or MemberExpression does not implement internal [[Construct]] method, throw TypeError es5id: 11.2.2_A4_T2 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T3.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T3.js index f99ca3ed271d..1278d894edfe 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T3.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If NewExpression or MemberExpression does not implement internal [[Construct]] method, throw TypeError es5id: 11.2.2_A4_T3 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T4.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T4.js index 6bb28cb045dc..2a915a66b35e 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T4.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If NewExpression or MemberExpression does not implement internal [[Construct]] method, throw TypeError es5id: 11.2.2_A4_T4 diff --git a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T5.js b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T5.js index 2432457869b8..f3db0c95b51e 100644 --- a/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T5.js +++ b/js/src/tests/test262/language/expressions/new/S11.2.2_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If NewExpression or MemberExpression does not implement internal [[Construct]] method, throw TypeError es5id: 11.2.2_A4_T5 diff --git a/js/src/tests/test262/language/expressions/object/11.1.5-0-1.js b/js/src/tests/test262/language/expressions/object/11.1.5-0-1.js index 598672fd5257..e0211308e0fd 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5-0-1.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5-0-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | it isn't clear what specific requirements of the specificaiton are being tested here. This test should probably be replaced by some more targeted tests. AllenWB es5id: 11.1.5-0-1 diff --git a/js/src/tests/test262/language/expressions/object/11.1.5-0-2.js b/js/src/tests/test262/language/expressions/object/11.1.5-0-2.js index 1ae2f3e7e10d..7b814cea8d09 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5-0-2.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5-0-2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | it isn't clear what specific requirements of the specificaiton are being tested here. This test should probably be replaced by some more targeted tests. AllenWB es5id: 11.1.5-0-2 diff --git a/js/src/tests/test262/language/expressions/object/11.1.5-1gs-strict.js b/js/src/tests/test262/language/expressions/object/11.1.5-1gs-strict.js index 10ede746c373..fcd6fb73b4be 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5-1gs-strict.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5-1gs-strict.js @@ -10,7 +10,7 @@ description: > Identifier in a PropertySetParameterList of a PropertyAssignment that is contained in strict code negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_3-3-1.js b/js/src/tests/test262/language/expressions/object/11.1.5_3-3-1.js index e04e27eab74a..0459867921ee 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_3-3-1.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_3-3-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyNameAndValueList : PropertyAssignment diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-2.js b/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-2.js index 793be3f2b683..6286cff0952d 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-2.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-3.js b/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-3.js index b009fbd3fea1..e6b7e29509ff 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-3.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_4-4-a-3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_4-5-1.js b/js/src/tests/test262/language/expressions/object/11.1.5_4-5-1.js index 030b621ab961..e4857ae9f4de 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_4-5-1.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_4-5-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyNameAndValueList : PropertyNameAndValueList , PropertyAssignment diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_5-4-1.js b/js/src/tests/test262/language/expressions/object/11.1.5_5-4-1.js index 3ffbee4ce00b..360509f4a134 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_5-4-1.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_5-4-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyAssignment : PropertyName : AssignmentExpression diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_6-3-1.js b/js/src/tests/test262/language/expressions/object/11.1.5_6-3-1.js index 0d5fede63e3f..17fd5462aaa8 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_6-3-1.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_6-3-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyAssignment : get PropertyName ( ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_6-3-2.js b/js/src/tests/test262/language/expressions/object/11.1.5_6-3-2.js index 923058b9ae1a..a5afa1e0c2c6 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_6-3-2.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_6-3-2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyAssignment : get PropertyName ( ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_7-3-1.js b/js/src/tests/test262/language/expressions/object/11.1.5_7-3-1.js index 8151cabd31cc..ad09c800fdd8 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_7-3-1.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_7-3-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyAssignment : set PropertyName( PropertySetParameterList ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/11.1.5_7-3-2.js b/js/src/tests/test262/language/expressions/object/11.1.5_7-3-2.js index d400bacdb6b8..954f45f87e1c 100644 --- a/js/src/tests/test262/language/expressions/object/11.1.5_7-3-2.js +++ b/js/src/tests/test262/language/expressions/object/11.1.5_7-3-2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 11.1.5; The production PropertyAssignment : get PropertyName ( ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/S11.1.5_A1.2.js b/js/src/tests/test262/language/expressions/object/S11.1.5_A1.2.js index c8fc92037c1d..d4f80aa9de6b 100644 --- a/js/src/tests/test262/language/expressions/object/S11.1.5_A1.2.js +++ b/js/src/tests/test262/language/expressions/object/S11.1.5_A1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Evaluate the production ObjectLiteral: { NumericLiteral : AssignmentExpression} es5id: 11.1.5_A1.2 diff --git a/js/src/tests/test262/language/expressions/object/S11.1.5_A1.3.js b/js/src/tests/test262/language/expressions/object/S11.1.5_A1.3.js index 113d8c75e8c9..15c9df8539af 100644 --- a/js/src/tests/test262/language/expressions/object/S11.1.5_A1.3.js +++ b/js/src/tests/test262/language/expressions/object/S11.1.5_A1.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Evaluate the production ObjectLiteral: { StringLiteral : AssignmentExpression} es5id: 11.1.5_A1.3 diff --git a/js/src/tests/test262/language/expressions/object/S11.1.5_A1.4.js b/js/src/tests/test262/language/expressions/object/S11.1.5_A1.4.js index 3b2eba342f75..ce7c3baf627e 100644 --- a/js/src/tests/test262/language/expressions/object/S11.1.5_A1.4.js +++ b/js/src/tests/test262/language/expressions/object/S11.1.5_A1.4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Evaluate the production ObjectLiteral: { Identifier : AssignmentExpression} es5id: 11.1.5_A1.4 diff --git a/js/src/tests/test262/language/expressions/object/S11.1.5_A2.js b/js/src/tests/test262/language/expressions/object/S11.1.5_A2.js index 1368116cdc6b..de2d0f13e23b 100644 --- a/js/src/tests/test262/language/expressions/object/S11.1.5_A2.js +++ b/js/src/tests/test262/language/expressions/object/S11.1.5_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Evaluate the production ObjectLiteral: { PropertyName : AssignmentExpression } es5id: 11.1.5_A2 diff --git a/js/src/tests/test262/language/expressions/object/S11.1.5_A4.3.js b/js/src/tests/test262/language/expressions/object/S11.1.5_A4.3.js index 9db932390940..3feb60923f4d 100644 --- a/js/src/tests/test262/language/expressions/object/S11.1.5_A4.3.js +++ b/js/src/tests/test262/language/expressions/object/S11.1.5_A4.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The PropertyName is undefined, ToString(BooleanLiteral), ToString(nullLiteral) es5id: 11.1.5_A4.3 diff --git a/js/src/tests/test262/language/expressions/object/__proto__-permitted-dup.js b/js/src/tests/test262/language/expressions/object/__proto__-permitted-dup.js index 735f9a5ffb10..fe3dc03a7bd9 100644 --- a/js/src/tests/test262/language/expressions/object/__proto__-permitted-dup.js +++ b/js/src/tests/test262/language/expressions/object/__proto__-permitted-dup.js @@ -4,7 +4,7 @@ esid: sec-object-initializer es6id: 12.2.6 description: Permitted duplicate `__proto__` property -info: > +info: | Annex B defines an early error for duplicate PropertyName of `__proto__`, but this does not apply to properties created from other productions. diff --git a/js/src/tests/test262/language/expressions/object/cover-initialized-name.js b/js/src/tests/test262/language/expressions/object/cover-initialized-name.js index 70370961218d..3314604c36e1 100644 --- a/js/src/tests/test262/language/expressions/object/cover-initialized-name.js +++ b/js/src/tests/test262/language/expressions/object/cover-initialized-name.js @@ -24,7 +24,7 @@ info: | IdentifierReference[?Yield] Initializer[+In, ?Yield] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js index 73d3cf7c472d..693c5682e781 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-id.js index b98eb3f8cf58..d64222109aa4 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js index 511dc2736933..155399901a67 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js index b7a79a663ee1..24728c67a046 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js index 6adbbcde8c78..0c720a50c251 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js index 40657aeb7bbd..b80d267884f3 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js index f831fd9e8ca4..226d9bfdb29e 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js index a10b23b1818d..a1a92acc69e0 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js index 4e47311b3878..0f0eee6e6db0 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js index bc599e767718..c82ddcb025e0 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js index d631ab19e19f..fabbf3325629 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js index 749777c3169e..85ccfa1eb9f0 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js index e4f14bb9d81e..68931cd46b83 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js index c5b1b1cd5edf..8aabd6156862 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js index dd0dfe52bb41..14a403c1deab 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js index 05684cb5b97c..e0f874db6dd7 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js index 949ac90ea71d..c8a1b31b7ecc 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js index d0a918aa50c5..ea868b24fecb 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js index fab056924970..398fbb4147f3 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js index cb9d1d028f0e..65030c163e35 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js index daef7cee18fc..f9a49d8cb6aa 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js index 8d003cf5c1b6..9f192141ae88 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js index ffd45f759015..d19b26f87daf 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js index 58d883e2c96a..4ffb08729883 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.13 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-ary.js index 3069625f820a..9ed6ebf4d0f8 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-id.js index 423e5337031b..8385449ef851 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-obj.js index f7fdfe4d86ec..24e1b08f4c84 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-ary.js index 74e93c2a7a0e..41b70aa4ff29 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-id.js index 40b4dc91fd38..5857074580f8 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-obj.js index efd4d77c7247..904585504e5d 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-ary.js index 108549771acf..1479c31bc3d3 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-id.js index 751965e43ad3..663ff2e0c4bc 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-obj.js index ab7cea4951ea..d56835fb47a4 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js index 4a47b35e61be..9a393a787462 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js index 92453eff2421..e77ed82dcc9c 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js index b3bf09979a4a..29d86a9c09ad 100644 --- a/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/expressions/object/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.3.8 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/fn-name-accessor-get.js b/js/src/tests/test262/language/expressions/object/fn-name-accessor-get.js index 1bb6a00344a2..002bdfc2422d 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-accessor-get.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-accessor-get.js @@ -4,7 +4,7 @@ /*--- es6id: 14.3.9 description: Assignment of function `name` attribute ("get" accessor) -info: > +info: | MethodDefinition : get PropertyName ( ) { FunctionBody } [...] diff --git a/js/src/tests/test262/language/expressions/object/fn-name-accessor-set.js b/js/src/tests/test262/language/expressions/object/fn-name-accessor-set.js index 15dda52c5b29..56f0f655634f 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-accessor-set.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-accessor-set.js @@ -4,7 +4,7 @@ /*--- es6id: 14.3.9 description: Assignment of function `name` attribute ("set" accessor) -info: > +info: | MethodDefinition : set PropertyName ( PropertySetParameterList ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/fn-name-arrow.js b/js/src/tests/test262/language/expressions/object/fn-name-arrow.js index 6b4d41351764..76ba90ac3a1d 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-arrow.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-arrow.js @@ -4,7 +4,7 @@ /*--- es6id: 12.2.6.9 description: Assignment of function `name` attribute (ArrowFunction) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/expressions/object/fn-name-class.js b/js/src/tests/test262/language/expressions/object/fn-name-class.js index c9e97ac8edef..2069749f1a26 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-class.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-class.js @@ -4,7 +4,7 @@ /*--- es6id: 12.2.6.9 description: Assignment of function `name` attribute (ClassExpression) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/expressions/object/fn-name-cover.js b/js/src/tests/test262/language/expressions/object/fn-name-cover.js index 0c7157eeb434..996ffbb07521 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-cover.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-cover.js @@ -5,7 +5,7 @@ es6id: 12.2.6.9 description: > Assignment of function `name` attribute (CoverParenthesizedExpression) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/expressions/object/fn-name-fn.js b/js/src/tests/test262/language/expressions/object/fn-name-fn.js index c1ebdc177770..f1ca9a3ad8ae 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-fn.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-fn.js @@ -4,7 +4,7 @@ /*--- es6id: 12.2.6.9 description: Assignment of function `name` attribute (FunctionExpression) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/expressions/object/fn-name-gen.js b/js/src/tests/test262/language/expressions/object/fn-name-gen.js index 014d2065aa89..d63bc6c64ba2 100644 --- a/js/src/tests/test262/language/expressions/object/fn-name-gen.js +++ b/js/src/tests/test262/language/expressions/object/fn-name-gen.js @@ -5,7 +5,7 @@ es6id: 12.2.6.9 description: > Assignment of function `name` attribute (GeneratorExpression) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/expressions/object/getter-param-dflt.js b/js/src/tests/test262/language/expressions/object/getter-param-dflt.js index d4db7db7e7a1..cc61dd0d771e 100644 --- a/js/src/tests/test262/language/expressions/object/getter-param-dflt.js +++ b/js/src/tests/test262/language/expressions/object/getter-param-dflt.js @@ -15,7 +15,7 @@ info: | get PropertyName[?Yield] ( ) { FunctionBody } features: [default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-computed-name.js b/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-computed-name.js index 4c4c63d3aecb..d42880a8119f 100644 --- a/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-computed-name.js +++ b/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-computed-name.js @@ -18,7 +18,7 @@ info: | LiteralPropertyName ComputedPropertyName negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-zero.js b/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-zero.js index 74e3e2647d41..59c596a1b035 100644 --- a/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-zero.js +++ b/js/src/tests/test262/language/expressions/object/identifier-shorthand-invalid-zero.js @@ -14,7 +14,7 @@ info: | PropertyName : AssignmentExpression MethodDefinition negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier-escaped.js index af784e1a0956..c8ceaa3e5486 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier.js index 94a6131b6a1e..e5b43a04590f 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference-escaped.js index 97e491fd23f3..1e3a04ed3d1e 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference.js index 10a3ce951abd..9966abced296 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier-escaped.js index 82df93743c5e..d8ab7451761c 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier.js index 923bb1b5a091..733b943c1ab0 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier-escaped.js index 3c498e95d157..732008c425d6 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier.js index 3557a41120df..5437898a65fe 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference-escaped.js index d2fdc317e3fd..7ac944ae8694 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference.js index 79bf43d0f42e..3df6d94c9c08 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier-escaped.js index fa02145a8ed1..d786e302bf39 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier.js index 8d32ba267a1f..b44ce6f72841 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js index 512e5c88d682..f3d41bb97c61 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js index de20ffb55581..900427674910 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-escaped-async.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-escaped-async.js index 62409af22c32..16b0eed82084 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-escaped-async.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js index cd0c6f51bb39..b9ad0299f827 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-propertydefinitionevaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier-escaped.js index 8a95040c0fd5..53321d494484 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier.js index efb2dac5a503..d50a7e556053 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference-escaped.js index c5a302e451ce..53ba5f84fd7d 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference.js index b45c04def7c7..66c8ede96549 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier-escaped.js index 79395e8c48ff..112852a3f143 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier.js index 9175a0c68f1a..9074356f0071 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict-strict.js index d9c8ec891271..e195b0badcce 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-strict-strict.js index c8284e866246..53cde483d923 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-gen-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js index 94108dc27238..af0274eb08be 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-rest.js index 484b113732e0..70fe047faec6 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-escaped-async.js b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-escaped-async.js index fe9d4cbe6fbb..83424ef54c2e 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-escaped-async.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js index d499cbd09701..facbe6889a3d 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js index 3d0292c15532..17c68e102a36 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters-strict.js index 88f0cbf2ccad..93de056f4f5c 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains arguments negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js index b1c5d008223e..b2a337294827 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js @@ -11,7 +11,7 @@ info: | AsyncMethod: async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js index f3c82ec25e58..e0c5bbdfe5da 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters' default expressions contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js index 00f10122c9e8..3f486f26e1c3 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js index c15aa92e57f7..b48bfd585f95 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if AsyncFunctionBody contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js index aad89283b6bf..dadbce66f907 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js @@ -8,7 +8,7 @@ esid: pending description: > Early error rules for StrictFormalParameters are applied negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters-strict.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters-strict.js index 2c8ca4124548..2633e5080812 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains eval in strict mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js index 9d4248856d1c..a6ab0ce00e42 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js index 02ddf230e6b5..ee9c866b062e 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/escaped-get.js b/js/src/tests/test262/language/expressions/object/method-definition/escaped-get.js index bd0fe5d8e10e..bdcf6d9c1086 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/escaped-get.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/escaped-get.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `get` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/escaped-set.js b/js/src/tests/test262/language/expressions/object/method-definition/escaped-set.js index 730489a0cd71..ff127b27e6ff 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/escaped-set.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/escaped-set.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `set` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/fn-name-fn.js b/js/src/tests/test262/language/expressions/object/method-definition/fn-name-fn.js index bcb767f6c4a0..bd67abeb44bb 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/fn-name-fn.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/fn-name-fn.js @@ -4,7 +4,7 @@ /*--- es6id: 12.2.6.9 description: Assignment of function `name` attribute (MethodDefinition) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/expressions/object/method-definition/fn-name-gen.js b/js/src/tests/test262/language/expressions/object/method-definition/fn-name-gen.js index b0c6a516dc6e..1ecbed8f2aed 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/fn-name-gen.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/fn-name-gen.js @@ -5,7 +5,7 @@ es6id: 14.4.13 description: > Assignment of function `name` attribute (GeneratorMethod) -info: > +info: | GeneratorMethod : * PropertyName ( StrictFormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js index ad5bbb41e1a7..cb3597497ec6 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-propertydefinitioneva features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js index 13b38b1c12f6..aaaad8199a72 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-propertydefinitioneva features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js index 713928b12b17..51fa063776df 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-propertydefinitioneva features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorMethod : diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js index a72187545ab7..6ff5626be722 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js index 4bf6bf5f2e77..f181aebec880 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js index 3e1de8619810..a5a61c16e212 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js index 7e44b419d02c..29f1bd598d9c 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js index 41cd1e4e9567..9c4c8f9c4f77 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier.js index c8059a119cbe..3a719ef7e18f 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-spread-strict-strict.js index 835048b31596..59cc4072df91 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-strict-strict.js b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-strict-strict.js index 509b0594b196..89b2320b248f 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/gen-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-id-yield.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-id-yield.js index d0fd7afc5f8c..091aa0870387 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-id-yield.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-id-yield.js @@ -10,7 +10,7 @@ es6id: 14.4 features: [generators] flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-init-yield.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-init-yield.js index c0c1416b947d..eb720e877571 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-init-yield.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-init-yield.js @@ -10,7 +10,7 @@ es6id: 14.4 features: [generators] flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-const.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-const.js index 14f6511b4805..63f300275598 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-const.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-const.js @@ -3,7 +3,7 @@ // See LICENSE for details. /*--- -info: > +info: | GeneratorMethod early SyntaxError when lexical declaration inside generator shadows parameter name features: [generators] @@ -11,7 +11,7 @@ es6id: 14.4.1 author: Sam Mikes description: GeneratorMethod error with lexical shadowing negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-let.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-let.js index 122d12ecaec5..e791364bc911 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-let.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-param-redecl-let.js @@ -3,7 +3,7 @@ // See LICENSE for details. /*--- -info: > +info: | GeneratorMethod early SyntaxError when lexical declaration inside generator shadows parameter name features: [generators] @@ -11,7 +11,7 @@ es6id: 14.4.1 author: Sam Mikes description: GeneratorMethod error with lexical shadowing negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-body.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-body.js index afa2b8a517cf..ba9bdfeebc0b 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-body.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-body.js @@ -3,7 +3,7 @@ // See LICENSE for details. /*--- -info: > +info: | GeneratorMethod early SyntaxError when super is called directly inside generator body features: [generators] @@ -11,7 +11,7 @@ es6id: 14.4.1 author: Sam Mikes description: GeneratorMethod error if HasDirectSuper in body negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-param.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-param.js index f446de38ba7c..4db9cb3cbcad 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-param.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-call-param.js @@ -3,7 +3,7 @@ // See LICENSE for details. /*--- -info: > +info: | GeneratorMethod early SyntaxError when super is called directly inside generator args features: [generators] @@ -11,7 +11,7 @@ es6id: 14.4.1 author: Sam Mikes description: GeneratorMethod error if HasDirectSuper in args negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-body.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-body.js index c5f3e8068950..15dde63dab15 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-body.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-body.js @@ -2,7 +2,7 @@ // See LICENSE for details. /*--- -info: > +info: | GeneratorMethod can reference SuperProperty in body features: [generators] es6id: 14.4.1 diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-param.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-param.js index 481109523004..2fac46ffa9ba 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-param.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-super-prop-param.js @@ -2,7 +2,7 @@ // See LICENSE for details. /*--- -info: > +info: | GeneratorMethod can reference SuperProperty in arg es6id: 14.4.1 author: Sam Mikes diff --git a/js/src/tests/test262/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js b/js/src/tests/test262/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js index 485445bd7b80..e7a5090db3c5 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/generator-use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-generator-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a generator method contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of StrictFormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-duplicates.js b/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-duplicates.js index 205644c37f7d..7a4f4493d282 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-definemethod features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-rest.js b/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-rest.js index 86ced0114982..47de56d0b478 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-definemethod features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js index fe92976b13f3..db3b3897ea10 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-runtime-semantics-definemethod flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | MethodDefinition : PropertyName ( StrictFormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/expressions/object/method-definition/name-param-redecl.js b/js/src/tests/test262/language/expressions/object/method-definition/name-param-redecl.js index c4f50cc235cf..944bdcc75688 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/name-param-redecl.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/name-param-redecl.js @@ -9,7 +9,7 @@ description: > FunctionBody. es6id: 14.3.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-body.js b/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-body.js index 67ef792c68a9..beee62317377 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-body.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-body.js @@ -7,7 +7,7 @@ description: > It is a Syntax Error if HasDirectSuper of MethodDefinition is true. es6id: 12.2.5.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-param.js b/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-param.js index c6c1b64a9d1e..f297e7e7f84b 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-param.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/name-super-call-param.js @@ -7,7 +7,7 @@ description: > It is a Syntax Error if HasDirectSuper of MethodDefinition is true. es6id: 12.2.5.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js b/js/src/tests/test262/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js index 3ff744125e8e..55deaa21da2f 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-method-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a setter method contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of PropertySetParameterList is false. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/use-strict-with-non-simple-param.js b/js/src/tests/test262/language/expressions/object/method-definition/use-strict-with-non-simple-param.js index 9f1dafa1051a..b6cd2927a547 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-method-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a method contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of StrictFormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/yield-as-logical-or-expression.js b/js/src/tests/test262/language/expressions/object/method-definition/yield-as-logical-or-expression.js index 894e4dae8ef9..ca269addb347 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/yield-as-logical-or-expression.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/yield-as-logical-or-expression.js @@ -8,7 +8,7 @@ features: [generators] es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/yield-as-parameter.js b/js/src/tests/test262/language/expressions/object/method-definition/yield-as-parameter.js index e13d283339db..c3109b7b7bbf 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/yield-as-parameter.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/yield-as-parameter.js @@ -9,7 +9,7 @@ features: [generators] es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/yield-return.js b/js/src/tests/test262/language/expressions/object/method-definition/yield-return.js index 85675c1078e8..bea909f6e0fb 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/yield-return.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/yield-return.js @@ -2,7 +2,7 @@ // See LICENSE for details. /*--- -info: > +info: | Generator can be declared with GeneratorMethod syntax features: [generators] es6id: 14.4 diff --git a/js/src/tests/test262/language/expressions/object/method-definition/yield-star-after-newline.js b/js/src/tests/test262/language/expressions/object/method-definition/yield-star-after-newline.js index 3b576d75aa94..69fe0df57b19 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/yield-star-after-newline.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/yield-star-after-newline.js @@ -8,7 +8,7 @@ features: [generators] es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/method-definition/yield-weak-binding.js b/js/src/tests/test262/language/expressions/object/method-definition/yield-weak-binding.js index 4d600f9b7d4c..c62cdbddfbe7 100644 --- a/js/src/tests/test262/language/expressions/object/method-definition/yield-weak-binding.js +++ b/js/src/tests/test262/language/expressions/object/method-definition/yield-weak-binding.js @@ -8,7 +8,7 @@ features: [generators] es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/object/prop-def-invalid-async-prefix.js b/js/src/tests/test262/language/expressions/object/prop-def-invalid-async-prefix.js index 641e2891daa5..c1b771733ea8 100644 --- a/js/src/tests/test262/language/expressions/object/prop-def-invalid-async-prefix.js +++ b/js/src/tests/test262/language/expressions/object/prop-def-invalid-async-prefix.js @@ -27,7 +27,7 @@ info: | 4. Return the result of performing BindingInitialization for BindingPattern passing rval and undefined as arguments. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-decrement/non-simple.js b/js/src/tests/test262/language/expressions/postfix-decrement/non-simple.js index 1ed2141b373b..0060ac52355c 100644 --- a/js/src/tests/test262/language/expressions/postfix-decrement/non-simple.js +++ b/js/src/tests/test262/language/expressions/postfix-decrement/non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.4.1 description: Applied to a non-simple assignment target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-newtarget.js b/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-newtarget.js index 743abab1869d..ec87c0d6a2e8 100644 --- a/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-newtarget.js +++ b/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-yieldexpr.js b/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-yieldexpr.js index 4fd82110a5d7..1ec41f43723b 100644 --- a/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-yieldexpr.js +++ b/js/src/tests/test262/language/expressions/postfix-decrement/target-cover-yieldexpr.js @@ -24,7 +24,7 @@ info: | 1. Return false. features: [generators] negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-decrement/target-newtarget.js b/js/src/tests/test262/language/expressions/postfix-decrement/target-newtarget.js index 7907a32cbd20..99e57e317d0c 100644 --- a/js/src/tests/test262/language/expressions/postfix-decrement/target-newtarget.js +++ b/js/src/tests/test262/language/expressions/postfix-decrement/target-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-increment/11.3.1-2-1gs-strict.js b/js/src/tests/test262/language/expressions/postfix-increment/11.3.1-2-1gs-strict.js index 8acd45b9a298..9e6703246fcc 100644 --- a/js/src/tests/test262/language/expressions/postfix-increment/11.3.1-2-1gs-strict.js +++ b/js/src/tests/test262/language/expressions/postfix-increment/11.3.1-2-1gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is throw if the identifier arguments appear as a PostfixExpression(arguments++) negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-increment/non-simple.js b/js/src/tests/test262/language/expressions/postfix-increment/non-simple.js index 14c344dc8150..aed3de51621c 100644 --- a/js/src/tests/test262/language/expressions/postfix-increment/non-simple.js +++ b/js/src/tests/test262/language/expressions/postfix-increment/non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. es6id: 12.4.1 description: Applied to a non-simple assignment target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-increment/target-cover-newtarget.js b/js/src/tests/test262/language/expressions/postfix-increment/target-cover-newtarget.js index c25f27fb88b8..3b8c56dc5c81 100644 --- a/js/src/tests/test262/language/expressions/postfix-increment/target-cover-newtarget.js +++ b/js/src/tests/test262/language/expressions/postfix-increment/target-cover-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-increment/target-cover-yieldexpr.js b/js/src/tests/test262/language/expressions/postfix-increment/target-cover-yieldexpr.js index 1175b0eec566..74e02579d663 100644 --- a/js/src/tests/test262/language/expressions/postfix-increment/target-cover-yieldexpr.js +++ b/js/src/tests/test262/language/expressions/postfix-increment/target-cover-yieldexpr.js @@ -24,7 +24,7 @@ info: | 1. Return false. features: [generators] negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/postfix-increment/target-newtarget.js b/js/src/tests/test262/language/expressions/postfix-increment/target-newtarget.js index 17d6fcb92c75..b37c5796b16d 100644 --- a/js/src/tests/test262/language/expressions/postfix-increment/target-newtarget.js +++ b/js/src/tests/test262/language/expressions/postfix-increment/target-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-decrement/11.4.5-2-2gs-strict.js b/js/src/tests/test262/language/expressions/prefix-decrement/11.4.5-2-2gs-strict.js index 044929ee88c0..ef249c5f9bc1 100644 --- a/js/src/tests/test262/language/expressions/prefix-decrement/11.4.5-2-2gs-strict.js +++ b/js/src/tests/test262/language/expressions/prefix-decrement/11.4.5-2-2gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is throw if the UnaryExpression operated upon by a Prefix Decrement operator(--arguments) negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-decrement/S11.4.5_A1.js b/js/src/tests/test262/language/expressions/prefix-decrement/S11.4.5_A1.js index ff03adb29f78..a40d21b1bcf7 100644 --- a/js/src/tests/test262/language/expressions/prefix-decrement/S11.4.5_A1.js +++ b/js/src/tests/test262/language/expressions/prefix-decrement/S11.4.5_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "--" and UnaryExpression are allowed es5id: 11.4.5_A1 diff --git a/js/src/tests/test262/language/expressions/prefix-decrement/non-simple.js b/js/src/tests/test262/language/expressions/prefix-decrement/non-simple.js index 2a34e16dbc8a..e5a0fe7cbabe 100644 --- a/js/src/tests/test262/language/expressions/prefix-decrement/non-simple.js +++ b/js/src/tests/test262/language/expressions/prefix-decrement/non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of UnaryExpression is false. es5id: 12.5.1 description: Applied to a non-simple assignment target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-newtarget.js b/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-newtarget.js index 8636d6b4ed27..3696adc03ee9 100644 --- a/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-newtarget.js +++ b/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-yieldexpr.js b/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-yieldexpr.js index b130fce0f55a..6b9255d12f7b 100644 --- a/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-yieldexpr.js +++ b/js/src/tests/test262/language/expressions/prefix-decrement/target-cover-yieldexpr.js @@ -24,7 +24,7 @@ info: | 1. Return false. features: [generators] negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-decrement/target-newtarget.js b/js/src/tests/test262/language/expressions/prefix-decrement/target-newtarget.js index 83abd9fb3007..7416218be99f 100644 --- a/js/src/tests/test262/language/expressions/prefix-decrement/target-newtarget.js +++ b/js/src/tests/test262/language/expressions/prefix-decrement/target-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-increment/S11.4.4_A1.js b/js/src/tests/test262/language/expressions/prefix-increment/S11.4.4_A1.js index 4f137d56b147..c5a20540da3b 100644 --- a/js/src/tests/test262/language/expressions/prefix-increment/S11.4.4_A1.js +++ b/js/src/tests/test262/language/expressions/prefix-increment/S11.4.4_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "++" and UnaryExpression are allowed es5id: 11.4.4_A1 diff --git a/js/src/tests/test262/language/expressions/prefix-increment/non-simple.js b/js/src/tests/test262/language/expressions/prefix-increment/non-simple.js index bb64714ff719..96ca10f38a5c 100644 --- a/js/src/tests/test262/language/expressions/prefix-increment/non-simple.js +++ b/js/src/tests/test262/language/expressions/prefix-increment/non-simple.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | It is an early Reference Error if IsValidSimpleAssignmentTarget of UnaryExpression is false. es6id: 12.5.1 description: Applied to a non-simple assignment target negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-increment/target-cover-newtarget.js b/js/src/tests/test262/language/expressions/prefix-increment/target-cover-newtarget.js index 4c8d06128e8b..813e56513498 100644 --- a/js/src/tests/test262/language/expressions/prefix-increment/target-cover-newtarget.js +++ b/js/src/tests/test262/language/expressions/prefix-increment/target-cover-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-increment/target-cover-yieldexpr.js b/js/src/tests/test262/language/expressions/prefix-increment/target-cover-yieldexpr.js index c1621ec96958..05d34ba15885 100644 --- a/js/src/tests/test262/language/expressions/prefix-increment/target-cover-yieldexpr.js +++ b/js/src/tests/test262/language/expressions/prefix-increment/target-cover-yieldexpr.js @@ -24,7 +24,7 @@ info: | 1. Return false. features: [generators] negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/prefix-increment/target-newtarget.js b/js/src/tests/test262/language/expressions/prefix-increment/target-newtarget.js index 2488be051547..545a5a5c4659 100644 --- a/js/src/tests/test262/language/expressions/prefix-increment/target-newtarget.js +++ b/js/src/tests/test262/language/expressions/prefix-increment/target-newtarget.js @@ -21,7 +21,7 @@ info: | 1. Return false. negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.1.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.1.js index bc15ea72446f..c17ea35216d7 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.1.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between MemberExpression or CallExpression and "." and between "." and Identifier are allowed es5id: 11.2.1_A1.1 diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.2.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.2.js index d3961c166e0c..0ae59f4c95bb 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.2.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A1.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "[" and MemberExpression or CallExpression and between Identifier and "]" are allowed es5id: 11.2.1_A1.2 diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T1.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T1.js index b50a4478ade8..dbce44f0a386 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T1.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | MemberExpression calls ToObject(MemberExpression) and ToString(Expression). CallExpression calls ToObject(CallExpression) and ToString(Expression) diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T2.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T2.js index 3f6203ee8c6a..28dfdcc613d7 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T2.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | MemberExpression calls ToObject(MemberExpression) and ToString(Expression). CallExpression calls ToObject(CallExpression) and ToString(Expression) diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T3.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T3.js index 929e578f7a3c..0847b0a6ee35 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T3.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | MemberExpression calls ToObject(MemberExpression) and ToString(Expression). CallExpression calls ToObject(CallExpression) and ToString(Expression) diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T4.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T4.js index cd843384a46d..3249d9472500 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T4.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | MemberExpression calls ToObject(MemberExpression) and ToString(Expression). CallExpression calls ToObject(CallExpression) and ToString(Expression) diff --git a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T5.js b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T5.js index 3456cbb95522..a78c38c1cfa5 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T5.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S11.2.1_A3_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | MemberExpression calls ToObject(MemberExpression) and ToString(Expression). CallExpression calls ToObject(CallExpression) and ToString(Expression) diff --git a/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A1.js b/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A1.js index 10ca91140a04..e6c98abb0347 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A1.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | [[Get]](P) method should return value when property P does not exist in instance but prototype contain it es5id: 8.12.3_A1 diff --git a/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A2.js b/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A2.js index 954f9656f5ab..816491cad191 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A2.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | [[Get]](P) method should return undefined when property P does not exist both in instance and prototype es5id: 8.12.3_A2 diff --git a/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A3.js b/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A3.js index f7360fe87e79..8836cb542167 100644 --- a/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A3.js +++ b/js/src/tests/test262/language/expressions/property-accessors/S8.12.3_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Get]] method of O is called with property name P value of P returns es5id: 8.12.3_A3 diff --git a/js/src/tests/test262/language/expressions/property-accessors/non-identifier-name.js b/js/src/tests/test262/language/expressions/property-accessors/non-identifier-name.js new file mode 100644 index 000000000000..7e9abf916145 --- /dev/null +++ b/js/src/tests/test262/language/expressions/property-accessors/non-identifier-name.js @@ -0,0 +1,21 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-left-hand-side-expressions +info: | + Token following DOT must be a valid identifier-name, test with string literal. +description: > + 12.3 Left-Hand-Side Expressions + MemberExpression[Yield, Await]: + MemberExpression[?Yield, ?Await] . IdentifierName + +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +unresolvableReference.""; diff --git a/js/src/tests/test262/language/expressions/relational/S9.1_A1_T4.js b/js/src/tests/test262/language/expressions/relational/S9.1_A1_T4.js index fb5be3e658b1..b8938b3c43c4 100644 --- a/js/src/tests/test262/language/expressions/relational/S9.1_A1_T4.js +++ b/js/src/tests/test262/language/expressions/relational/S9.1_A1_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of primitive conversion from object is a default value for the Object es5id: 9.1_A1_T4 diff --git a/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A1.js b/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A1.js index 9761e26f490c..fff3343028a7 100644 --- a/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A1.js +++ b/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between ShiftExpression and ">>" or between ">>" and AdditiveExpression are allowed es5id: 11.7.2_A1 diff --git a/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A2.3_T1.js b/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A2.3_T1.js index 65becc0570d4..620b6a86fed3 100644 --- a/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/right-shift/S11.7.2_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.7.2_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/right-shift/bigint-errors.js b/js/src/tests/test262/language/expressions/right-shift/bigint-errors.js new file mode 100644 index 000000000000..d674d3fb1b58 --- /dev/null +++ b/js/src/tests/test262/language/expressions/right-shift/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: right-shift operator ToNumeric with BigInt operands +esid: sec-signed-right-shift-operator-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") >> 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >> Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) >> 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >> Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) >> 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >> { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) >> 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >> { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) >> 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >> { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/right-shift/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/right-shift/bigint-toprimitive.js new file mode 100644 index 000000000000..5773c06b9ce0 --- /dev/null +++ b/js/src/tests/test262/language/expressions/right-shift/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: right-shift operator ToNumeric with BigInt operands +esid: sec-signed-right-shift-operator-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) >> 1n, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(4n >> { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) >> 1n, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(4n >> { + valueOf: function() { + return 2n; + }, + toString: err +}, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(4n >> { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(4n >> { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(4n >> { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(4n >> { + valueOf: null, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(4n >> { + valueOf: 1, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(4n >> { + valueOf: {}, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(4n >> { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(4n >> { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) >> 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n >> { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) >> 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n >> { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) >> 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n >> { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) >> 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n >> { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) >> 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n >> { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) >> 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n >> { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) >> 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n >> { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) >> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >> { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) >> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >> { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) >> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >> { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) >> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >> { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) >> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >> { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/right-shift/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/right-shift/bigint-wrapped-values.js new file mode 100644 index 000000000000..201d23686e60 --- /dev/null +++ b/js/src/tests/test262/language/expressions/right-shift/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: right-shift operator ToNumeric with BigInt operands +esid: sec-signed-right-shift-operator-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) >> 1n, 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(4n >> Object(2n), 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(4n >> { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: valueOf"); +assert.sameValue(4n >> { + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) >> 1n, 1n, "ToPrimitive: toString"); +assert.sameValue(4n >> { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A1.js b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A1.js index 6dd0d52ba1c4..f110f8a56f56 100644 --- a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A1.js +++ b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between EqualityExpression and "!==" or between "!==" and RelationalExpression are allowed es5id: 11.9.5_A1 diff --git a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A3.js b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A3.js index a5e18bbf606c..a45794ce8400 100644 --- a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A3.js +++ b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Boolean-s. Return false, if x and y are both true or both false; otherwise, return true es5id: 11.9.5_A3 diff --git a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A4.3.js b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A4.3.js index 8409514dd5af..137470b40bf7 100644 --- a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A4.3.js +++ b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A4.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Number-s minus NaN, +0, -0. Return false, if x is the same number value as y; otherwise, return true es5id: 11.9.5_A4.3 diff --git a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A5.js b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A5.js index 89501729c42a..677c043396d0 100644 --- a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A5.js +++ b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are String-s. Return false, if x and y are exactly the same sequence of characters; otherwise, return true es5id: 11.9.5_A5 diff --git a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A7.js b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A7.js index b475b6211c5a..d55259b89c96 100644 --- a/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A7.js +++ b/js/src/tests/test262/language/expressions/strict-does-not-equals/S11.9.5_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Object-s. Return false, if x and y are references to the same Object; otherwise, return true es5id: 11.9.5_A7 diff --git a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A1.js b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A1.js index 473a94c68ba8..580925d38592 100644 --- a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A1.js +++ b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between EqualityExpression and "===" or between "===" and RelationalExpression are allowed es5id: 11.9.4_A1 diff --git a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A3.js b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A3.js index cfec8c48dec3..2a7826446d47 100644 --- a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A3.js +++ b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Boolean-s. Return true, if x and y are both true and both false; otherwise, return false es5id: 11.9.4_A3 diff --git a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A4.3.js b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A4.3.js index a6ba67176948..e93258dd70d1 100644 --- a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A4.3.js +++ b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A4.3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Number-s minus NaN, +0, -0. Return true, if x is the same number value as y; otherwise, return false es5id: 11.9.4_A4.3 diff --git a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A5.js b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A5.js index 422d55294d92..32582aa64bec 100644 --- a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A5.js +++ b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are String-s. Return true, if x and y are exactly the same sequence of characters; otherwise, return false es5id: 11.9.4_A5 diff --git a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A7.js b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A7.js index 46a23253bb91..5cc72be8ddc7 100644 --- a/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A7.js +++ b/js/src/tests/test262/language/expressions/strict-equals/S11.9.4_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Type(x) and Type(y) are Object-s. Return true, if x and y are references to the same Object; otherwise, return false es5id: 11.9.4_A7 diff --git a/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A1.js b/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A1.js index b5225ebc0c5b..f297e6680038 100644 --- a/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A1.js +++ b/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between AdditiveExpression and "-" or between "-" and MultiplicativeExpression are allowed es5id: 11.6.2_A1 diff --git a/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A2.3_T1.js b/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A2.3_T1.js index 361194170714..1ac43a66ef9e 100644 --- a/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/subtraction/S11.6.2_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.6.2_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/subtraction/bigint-errors.js b/js/src/tests/test262/language/expressions/subtraction/bigint-errors.js new file mode 100644 index 000000000000..cde3afb4b46d --- /dev/null +++ b/js/src/tests/test262/language/expressions/subtraction/bigint-errors.js @@ -0,0 +1,65 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: subtraction operator ToNumeric with BigInt operands +esid: sec-subtraction-operator-minus-runtime-semantics-evaluation +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") - 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n - Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) - 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n - Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) - 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n - { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) - 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n - { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) - 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n - { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/subtraction/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/subtraction/bigint-toprimitive.js new file mode 100644 index 000000000000..d6fe5765064c --- /dev/null +++ b/js/src/tests/test262/language/expressions/subtraction/bigint-toprimitive.js @@ -0,0 +1,311 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: subtraction operator ToNumeric with BigInt operands +esid: sec-subtraction-operator-minus-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}) - 1n, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(3n - { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err +}, 1n, "ToPrimitive: @@toPrimitive takes precedence"); +assert.sameValue(({ + valueOf: function() { + return 2n; + }, + toString: err +}) - 1n, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(3n - { + valueOf: function() { + return 2n; + }, + toString: err +}, 1n, "ToPrimitive: valueOf takes precedence over toString"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(3n - { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString with no valueOf"); +assert.sameValue(({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(3n - { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.sameValue(({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(3n - { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.sameValue(({ + valueOf: null, + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n - { + valueOf: null, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: 1, + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n - { + valueOf: 1, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: {}, + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(3n - { + valueOf: {}, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it's not callable"); +assert.sameValue(({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(3n - { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.sameValue(3n - { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) - 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n - { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) - 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n - { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) - 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n - { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) - 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n - { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) - 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n - { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) - 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n - { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) - 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n - { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) - 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n - { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) - 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n - { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) - 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n - { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) - 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n - { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) - 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n - { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/subtraction/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/subtraction/bigint-wrapped-values.js new file mode 100644 index 000000000000..ac4a0a14eb0c --- /dev/null +++ b/js/src/tests/test262/language/expressions/subtraction/bigint-wrapped-values.js @@ -0,0 +1,43 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: subtraction operator ToNumeric with BigInt operands +esid: sec-subtraction-operator-minus-runtime-semantics-evaluation +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.sameValue(Object(2n) - 1n, 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(3n - Object(2n), 1n, "ToPrimitive: unbox object with internal slot"); +assert.sameValue(({ + [Symbol.toPrimitive]: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(3n - { + [Symbol.toPrimitive]: function() { + return 2n; + } +}, 1n, "ToPrimitive: @@toPrimitive"); +assert.sameValue(({ + valueOf: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: valueOf"); +assert.sameValue(3n - { + valueOf: function() { + return 2n; + } +}, 1n, "ToPrimitive: valueOf"); +assert.sameValue(({ + toString: function() { + return 2n; + } +}) - 1n, 1n, "ToPrimitive: toString"); +assert.sameValue(3n - { + toString: function() { + return 2n; + } +}, 1n, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/super/realm.js b/js/src/tests/test262/language/expressions/super/realm.js index f9c3bbf3844e..2a019bf7ec23 100644 --- a/js/src/tests/test262/language/expressions/super/realm.js +++ b/js/src/tests/test262/language/expressions/super/realm.js @@ -5,7 +5,7 @@ esid: sec-super-keyword es6id: 12.3.5 description: > Default [[Prototype]] value derived from realm of the newTarget value -info: > +info: | 1. Let newTarget be GetNewTarget(). [...] 6. Let result be ? Construct(func, argList, newTarget). diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-eval.js b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-eval.js index 91264cf1ea12..e36c98f9862e 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-eval.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-eval.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Template caching using distinct expressions within `eval` -info: > +info: | Previously-created template objects should be retrieved from the internal template registry when their source is identical but their expressions evaluate to different values and the tagged template is being evaluated in diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-new-function.js b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-new-function.js index 0fa36fde6059..65554a062839 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-new-function.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions-new-function.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Template caching using distinct expressions within `new Function` -info: > +info: | Previously-created template objects should be retrieved from the internal template registry when their source is identical but their expressions evaluate to different values and the tagged template is being evaluated in diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions.js b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions.js index 19929fb82258..5d5da5049699 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-expressions.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Template caching using distinct expressions -info: > +info: | Previously-created template objects should be retrieved from the internal template registry when their source is identical but their expressions evaluate to different values. diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-raw-strings.js b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-raw-strings.js index cf3f2afa9ba1..7f8d76463b63 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-raw-strings.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-raw-strings.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Templates are cached according to their "raw" representation -info: > +info: | The internal template registry should be queried according to the "raw" strings of the tagged template. ---*/ diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-string-count.js b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-string-count.js index 437b3fe784a6..6e93b0592e4a 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-differing-string-count.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-differing-string-count.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Templates are cached according to the number of "raw" strings -info: > +info: | The internal template registry should be queried according to the number of "raw" strings in the tagged template. ---*/ diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-eval.js b/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-eval.js index 60f09adf1a32..11a88e8a8081 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-eval.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-eval.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Template caching using identical expressions within `eval` -info: > +info: | Previously-created template objects should be retrieved from the internal template registry when their source is identical and the tagged template is being evaluated in an `eval` context. diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-new-function.js b/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-new-function.js index 36245e4800e6..d91a7d598f2e 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-new-function.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source-new-function.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Template caching using identical expressions within `new Function` -info: > +info: | Previously-created template objects should be retrieved from the internal template registry when their source is identical and the tagged template is being evaluated in a `new Function` context. diff --git a/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source.js b/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source.js index ab8f0165be00..60d988a6a87e 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source.js +++ b/js/src/tests/test262/language/expressions/tagged-template/cache-identical-source.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8 description: Template caching using identical expressions -info: > +info: | Previously-created template objects should be retrieved from the internal template registry when their source is identical. ---*/ diff --git a/js/src/tests/test262/language/expressions/tagged-template/call-expression-argument-list-evaluation.js b/js/src/tests/test262/language/expressions/tagged-template/call-expression-argument-list-evaluation.js index 95deb9b5fc46..276812efa147 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/call-expression-argument-list-evaluation.js +++ b/js/src/tests/test262/language/expressions/tagged-template/call-expression-argument-list-evaluation.js @@ -3,7 +3,7 @@ /*--- es6id: 12.3.7 description: Argument list evalution for call expresions -info: > +info: | A tagged template is a function call where the arguments of the call are derived from a TemplateLiteral. The actual arguments include a template object and the values produced by evaluating the expressions embedded diff --git a/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-no-strict.js b/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-no-strict.js index b27e619a88eb..d2261a90cf25 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-no-strict.js +++ b/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-no-strict.js @@ -3,7 +3,7 @@ /*--- es6id: 12.3.7 description: Invocation context for call expressions -info: > +info: | A tagged template is a function call where the arguments of the call are derived from a TemplateLiteral. The actual arguments include a template object and the values produced by evaluating the expressions embedded diff --git a/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-strict-strict.js b/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-strict-strict.js index 0891cc5c7552..e03bc78b62c7 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-strict-strict.js +++ b/js/src/tests/test262/language/expressions/tagged-template/call-expression-context-strict-strict.js @@ -4,7 +4,7 @@ /*--- es6id: 12.3.7 description: Invocation context for call expressions -info: > +info: | A tagged template is a function call where the arguments of the call are derived from a TemplateLiteral. The actual arguments include a template object and the values produced by evaluating the expressions embedded diff --git a/js/src/tests/test262/language/expressions/tagged-template/member-expression-argument-list-evaluation.js b/js/src/tests/test262/language/expressions/tagged-template/member-expression-argument-list-evaluation.js index e8a9f4c20af1..7b5810272e0a 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/member-expression-argument-list-evaluation.js +++ b/js/src/tests/test262/language/expressions/tagged-template/member-expression-argument-list-evaluation.js @@ -3,7 +3,7 @@ /*--- es6id: 12.3.7 description: Argument list evalution for member expresions -info: > +info: | A tagged template is a function call where the arguments of the call are derived from a TemplateLiteral. The actual arguments include a template object and the values produced by evaluating the expressions embedded diff --git a/js/src/tests/test262/language/expressions/tagged-template/member-expression-context.js b/js/src/tests/test262/language/expressions/tagged-template/member-expression-context.js index 4492da6e9a3b..c4c34659cf49 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/member-expression-context.js +++ b/js/src/tests/test262/language/expressions/tagged-template/member-expression-context.js @@ -3,7 +3,7 @@ /*--- es6id: 12.3.7 description: Invocation context for member expressions -info: > +info: | A tagged template is a function call where the arguments of the call are derived from a TemplateLiteral. The actual arguments include a template object and the values produced by evaluating the expressions embedded diff --git a/js/src/tests/test262/language/expressions/tagged-template/tco-call-strict.js b/js/src/tests/test262/language/expressions/tagged-template/tco-call-strict.js index ceb19c22a0ae..748910f0db41 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/tco-call-strict.js +++ b/js/src/tests/test262/language/expressions/tagged-template/tco-call-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/tagged-template/tco-member-strict.js b/js/src/tests/test262/language/expressions/tagged-template/tco-member-strict.js index 693c4c6cf9fe..cdec6c9dc26c 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/tco-member-strict.js +++ b/js/src/tests/test262/language/expressions/tagged-template/tco-member-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-non-strict.js b/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-non-strict.js index 3d12f5d3f1d5..f742f8b75b39 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-non-strict.js +++ b/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-non-strict.js @@ -3,7 +3,7 @@ /*--- es6id: 12.3.7 description: Template objects are frozen (as demonstrated outside of strict mode) -info: > +info: | The first argument to a tagged template should be frozen and define a `raw` property that is also frozen. flags: [noStrict] diff --git a/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-strict-strict.js b/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-strict-strict.js index 458d6ebaf6a9..55319cae680a 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-strict-strict.js +++ b/js/src/tests/test262/language/expressions/tagged-template/template-object-frozen-strict-strict.js @@ -4,7 +4,7 @@ /*--- es6id: 12.3.7 description: Template objects are frozen (as demonstrated within strict mode) -info: > +info: | The first argument to a tagged template should be frozen and define a `raw` property that is also frozen. flags: [onlyStrict] diff --git a/js/src/tests/test262/language/expressions/tagged-template/template-object.js b/js/src/tests/test262/language/expressions/tagged-template/template-object.js index e076c4bd2bb0..7a109f10f109 100644 --- a/js/src/tests/test262/language/expressions/tagged-template/template-object.js +++ b/js/src/tests/test262/language/expressions/tagged-template/template-object.js @@ -3,7 +3,7 @@ /*--- es6id: 12.3.7 description: Properties of the template object -info: > +info: | The first argument to a tagged template should be a template object as defined by the GetTemplateObject abstract operation. includes: [propertyHelper.js] diff --git a/js/src/tests/test262/language/expressions/tco-pos-strict.js b/js/src/tests/test262/language/expressions/tco-pos-strict.js index 1e85f9ac0b2c..0cb1782629d8 100644 --- a/js/src/tests/test262/language/expressions/tco-pos-strict.js +++ b/js/src/tests/test262/language/expressions/tco-pos-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js b/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js index 09211bb0b9bc..9a7054c2a7a2 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-1.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid hexidecimal character escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js b/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js index 8387054e43bb..002af4b29008 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-2.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid hexidecimal character escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js b/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js index 1da66dcfed04..8c73d9fa3f91 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-hexidecimal-character-escape-sequence-truncated-3.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid hexidecimal character escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js b/js/src/tests/test262/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js index ce0087695e9c..85622e2c4a4e 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js @@ -4,11 +4,11 @@ /*--- es6id: 16.1 description: Invalid octal escape sequence -info: > +info: | TemplateCharacter (11.8.6) must not be extended to include LegacyOctalEscapeSequence as defined in B.1.2. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js index 42a0c20f04fc..209be5d226c9 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-1.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js index 202bb55bb726..e1e3a0cc9b32 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-2.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js index 80eec60d277c..1bdd3591835a 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-3.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js index bcd9b3a186d1..d4714c1d73dc 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-4.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js index 514e0f3aaa6f..c93ebd53c2ef 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-5.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js index 7f69b7b5734f..aeb737c3b97e 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-6.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js index 8de2f23bd711..3687aa4242da 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-7.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js index 844bedad96bf..b02f3a65f2b8 100644 --- a/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js +++ b/js/src/tests/test262/language/expressions/template-literal/invalid-unicode-escape-sequence-8.js @@ -5,7 +5,7 @@ esid: sec-template-literal-lexical-components description: Invalid unicode escape sequence negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-abrupt.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-abrupt.js index 5acc8b3e73f0..a149a26682b9 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-abrupt.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-abrupt.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Abrupt completion when evaluating expression of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-function.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-function.js index 9160050d1781..3801f8a72ca7 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-function.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-function.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Function invocation in expression position of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-member-expr.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-member-expr.js index e5c5e1342d3a..00410aa84e90 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-member-expr.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-member-expr.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: MemberExpression in expression position of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-method.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-method.js index feacf1e66a10..fc1ccec64843 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-method.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-method.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Method invocation in expression position of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-obj.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-obj.js index b38f7864ea58..8eeb2fc503b0 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-obj.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-obj.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Object reference in expression position of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-primitive.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-primitive.js index 9aafce7b6fa0..589bc8edbad0 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-primitive.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-primitive.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Primitive value in expression position of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-template.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-template.js index d75f68925330..9a4fa20eb6b3 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-template.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-template.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Template literal in expression position of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/literal-expr-tostr-error.js b/js/src/tests/test262/language/expressions/template-literal/literal-expr-tostr-error.js index 4007a99e845a..48d049d5e78e 100644 --- a/js/src/tests/test262/language/expressions/template-literal/literal-expr-tostr-error.js +++ b/js/src/tests/test262/language/expressions/template-literal/literal-expr-tostr-error.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Abrupt completion when converting expression value of TemplateLiteral -info: > +info: | TemplateLiteral : TemplateHead Expression TemplateSpans 1. Let head be the TV of TemplateHead as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-abrupt.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-abrupt.js index 231d40a4b292..9ebcca2c4306 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-abrupt.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-abrupt.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Abrupt completion when evaluating expression of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-function.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-function.js index ea561e93eb95..e3da7b4e7449 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-function.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-function.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Function invocation in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-member-expr.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-member-expr.js index ff30cf027162..5d47e017c0a4 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-member-expr.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-member-expr.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: MemberExpression in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-method.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-method.js index 2cfbdf2cb5b1..609a1b5d1d34 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-method.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-method.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Method invocation in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-obj.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-obj.js index 80109d460ba7..975719931122 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-obj.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-obj.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Object reference in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-primitive.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-primitive.js index d0e31ab133f4..6b6de8383442 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-primitive.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-primitive.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Primitive value in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-template.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-template.js index e3d51c83ab77..703e390c6852 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-template.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-template.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Template literal in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-tostr-error.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-tostr-error.js index a02bc196d254..fee24208af37 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-tostr-error.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-many-expr-tostr-error.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Abrupt completion when converting expression value of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddleList TemplateMiddle Expression 1. Let rest be the result of evaluating TemplateMiddleList . diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-abrupt.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-abrupt.js index df3d57eeb3a3..438a0422f870 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-abrupt.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-abrupt.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Abrupt completion when evaluating expression of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-function.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-function.js index 17850f11dbae..7421d6972b2f 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-function.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-function.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Function invocation in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-member-expr.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-member-expr.js index 15729e8b7628..9cc76f637c94 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-member-expr.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-member-expr.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: MemberExpression in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-method.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-method.js index 9a12814489c6..78e3df887d5f 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-method.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-method.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Method invocation in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-obj.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-obj.js index 600447a039d7..457f9d649a5a 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-obj.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-obj.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Object reference in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-primitive.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-primitive.js index a1976f383f76..94298ac0f6af 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-primitive.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-primitive.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Primitive value in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-template.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-template.js index 0487f4c962c8..394322c17c2d 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-template.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-template.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Template literal in expression position of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-tostr-error.js b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-tostr-error.js index 1a323d9b68ee..1630d2df5acc 100644 --- a/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-tostr-error.js +++ b/js/src/tests/test262/language/expressions/template-literal/middle-list-one-expr-tostr-error.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Abrupt completion when converting expression value of TemplateMiddleList -info: > +info: | TemplateMiddleList : TemplateMiddle Expression 1. Let head be the TV of TemplateMiddle as defined in 11.8.6. diff --git a/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator-eval.js b/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator-eval.js index 0d20c968dad7..eb379893c477 100644 --- a/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator-eval.js +++ b/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator-eval.js @@ -5,7 +5,7 @@ esid: sec-unicode-format-control-characters description: > Mongolian Vowel Separator can appear in template literals (eval code). -info: > +info: | 11.1 Unicode Format-Control Characters The Unicode format-control characters (i.e., the characters in category “Cf” diff --git a/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator.js b/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator.js index bc9f55e19eb4..b0acc7f31a61 100644 --- a/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator.js +++ b/js/src/tests/test262/language/expressions/template-literal/mongolian-vowel-separator.js @@ -5,7 +5,7 @@ esid: sec-unicode-format-control-characters description: > Mongolian Vowel Separator can appear in template literals. -info: > +info: | 11.1 Unicode Format-Control Characters The Unicode format-control characters (i.e., the characters in category “Cf” diff --git a/js/src/tests/test262/language/expressions/template-literal/no-sub.js b/js/src/tests/test262/language/expressions/template-literal/no-sub.js index 017fec550e1e..3b12d123afbe 100644 --- a/js/src/tests/test262/language/expressions/template-literal/no-sub.js +++ b/js/src/tests/test262/language/expressions/template-literal/no-sub.js @@ -3,7 +3,7 @@ /*--- es6id: 12.2.8.5 description: Evaluation of NoSubstitutionTemplate -info: > +info: | 12.2.8.5 Runtime Semantics: Evaluation TemplateLiteral : NoSubstitutionTemplate diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-character-escape-sequence.js b/js/src/tests/test262/language/expressions/template-literal/tv-character-escape-sequence.js index 2df9225ca913..56d27f20a539 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-character-escape-sequence.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-character-escape-sequence.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of character escape sequences -info: > +info: | The TV of TemplateCharacter :: \ EscapeSequence is the SV of EscapeSequence. The TRV of TemplateCharacter :: \ EscapeSequence is the sequence consisting diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-hex-escape-sequence.js b/js/src/tests/test262/language/expressions/template-literal/tv-hex-escape-sequence.js index 3e86423a23bb..f3e2b2250b04 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-hex-escape-sequence.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-hex-escape-sequence.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of hex escape sequences -info: > +info: | The TV of TemplateCharacter :: \ EscapeSequence is the SV of EscapeSequence. The SV of UnicodeEscapeSequence :: u{ HexDigits } is the UTF16Encoding diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-line-continuation.js b/js/src/tests/test262/language/expressions/template-literal/tv-line-continuation.js index 4502a8b99534..5179573aa2f8 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-line-continuation.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-line-continuation.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of line continuations -info: > +info: | The TV of LineContinuation :: \ LineTerminatorSequence is the empty code unit sequence. The TRV of LineContinuation :: \ LineTerminatorSequence is the sequence diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-line-terminator-sequence.js b/js/src/tests/test262/language/expressions/template-literal/tv-line-terminator-sequence.js index 322f3c52a237..bf3fb0788747 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-line-terminator-sequence.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-line-terminator-sequence.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of line terminator sequences -info: > +info: | The TV of TemplateCharacter :: LineTerminatorSequence is the TRV of LineTerminatorSequence. The TRV of LineTerminatorSequence :: is the code unit value 0x000A. diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-no-substitution.js b/js/src/tests/test262/language/expressions/template-literal/tv-no-substitution.js index dfaa080284ae..13cc94369a8c 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-no-substitution.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-no-substitution.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of templates without substitution patterns -info: > +info: | The TV and TRV of NoSubstitutionTemplate :: `` is the empty code unit sequence. The TV of NoSubstitutionTemplate :: ` TemplateCharacters ` is the TV of diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-null-character-escape-sequence.js b/js/src/tests/test262/language/expressions/template-literal/tv-null-character-escape-sequence.js index 840428eb648b..4ff6974579f1 100644 Binary files a/js/src/tests/test262/language/expressions/template-literal/tv-null-character-escape-sequence.js and b/js/src/tests/test262/language/expressions/template-literal/tv-null-character-escape-sequence.js differ diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-template-character.js b/js/src/tests/test262/language/expressions/template-literal/tv-template-character.js index 8a04421a7a6f..d58d21ad1e37 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-template-character.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-template-character.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of single characters -info: > +info: | The TV of TemplateCharacters :: TemplateCharacter is the TV of TemplateCharacter. The TV of TemplateCharacter :: SourceCharacter but not one of ` or \ or $ diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-template-characters.js b/js/src/tests/test262/language/expressions/template-literal/tv-template-characters.js index 598fd9143e47..30e838ba59a1 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-template-characters.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-template-characters.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of multiple template characters -info: > +info: | The TV of TemplateCharacters :: TemplateCharacter TemplateCharacters is a sequence consisting of the code units in the TV of TemplateCharacter followed by all the code units in the TV of TemplateCharacters in order. diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-template-head.js b/js/src/tests/test262/language/expressions/template-literal/tv-template-head.js index 80ffdaa86097..3a3d7df5e15f 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-template-head.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-template-head.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of the template head pattern -info: > +info: | The TV and TRV of TemplateHead :: `${ is the empty code unit sequence. The TV of TemplateHead :: ` TemplateCharacters ${ is the TV of TemplateCharacters. diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-template-middle.js b/js/src/tests/test262/language/expressions/template-literal/tv-template-middle.js index 629918d24b2e..56e0b167aa59 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-template-middle.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-template-middle.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of the template middle pattern -info: > +info: | The TV and TRV of TemplateMiddle :: }${ is the empty code unit sequence. The TRV of TemplateMiddle :: } TemplateCharacters ${ is the TRV of TemplateCharacters. diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-template-tail.js b/js/src/tests/test262/language/expressions/template-literal/tv-template-tail.js index 35e921446a1e..e04e089e44d6 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-template-tail.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-template-tail.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of the template tail pattern -info: > +info: | The TV and TRV of TemplateTail :: }` is the empty code unit sequence. The TV of TemplateTail :: } TemplateCharacters ` is the TV of TemplateCharacters. diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-utf16-escape-sequence.js b/js/src/tests/test262/language/expressions/template-literal/tv-utf16-escape-sequence.js index 08927bf6df90..d89be2fa1dc4 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-utf16-escape-sequence.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-utf16-escape-sequence.js @@ -3,7 +3,7 @@ /*--- es6id: 11.8.6.1 description: Template values of UTF-16 escape sequences -info: > +info: | The TV of TemplateCharacter :: \ EscapeSequence is the SV of EscapeSequence. The SV of UnicodeEscapeSequence :: u{ HexDigits } is the UTF16Encoding diff --git a/js/src/tests/test262/language/expressions/template-literal/tv-zwnbsp.js b/js/src/tests/test262/language/expressions/template-literal/tv-zwnbsp.js index 197a45ffdf4a..e5bf73574544 100644 --- a/js/src/tests/test262/language/expressions/template-literal/tv-zwnbsp.js +++ b/js/src/tests/test262/language/expressions/template-literal/tv-zwnbsp.js @@ -3,7 +3,7 @@ /*--- es6id: 11.1.8.6.1 description: Template values of the zero width no-break space character -info: > +info: | The zero width no-break space format-control character may be used within template literals. ---*/ diff --git a/js/src/tests/test262/language/expressions/this/S11.1.1_A1.js b/js/src/tests/test262/language/expressions/this/S11.1.1_A1.js index f58f9fcc6916..2d670f9c2928 100644 --- a/js/src/tests/test262/language/expressions/this/S11.1.1_A1.js +++ b/js/src/tests/test262/language/expressions/this/S11.1.1_A1.js @@ -7,7 +7,7 @@ info: The "this" is reserved word es5id: 11.1.1_A1 description: Checking if execution of "this=1" fails negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/expressions/this/S11.1.1_A3.1.js b/js/src/tests/test262/language/expressions/this/S11.1.1_A3.1.js index 34d06d1138b4..3a1a3a01af85 100644 --- a/js/src/tests/test262/language/expressions/this/S11.1.1_A3.1.js +++ b/js/src/tests/test262/language/expressions/this/S11.1.1_A3.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Being in function code, "this" and eval("this"), called as a functions, return the global object es5id: 11.1.1_A3.1 diff --git a/js/src/tests/test262/language/expressions/this/S11.1.1_A3.2.js b/js/src/tests/test262/language/expressions/this/S11.1.1_A3.2.js index b75fc8484d96..47ee97220854 100644 --- a/js/src/tests/test262/language/expressions/this/S11.1.1_A3.2.js +++ b/js/src/tests/test262/language/expressions/this/S11.1.1_A3.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Being in function code, "this" and eval("this"), called as a constructors, return the object es5id: 11.1.1_A3.2 diff --git a/js/src/tests/test262/language/expressions/this/S11.1.1_A4.1.js b/js/src/tests/test262/language/expressions/this/S11.1.1_A4.1.js index b9df2aa80c74..94018060ac5f 100644 --- a/js/src/tests/test262/language/expressions/this/S11.1.1_A4.1.js +++ b/js/src/tests/test262/language/expressions/this/S11.1.1_A4.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Being in anonymous code, "this" and eval("this"), called as a function, return the global object es5id: 11.1.1_A4.1 diff --git a/js/src/tests/test262/language/expressions/this/S11.1.1_A4.2.js b/js/src/tests/test262/language/expressions/this/S11.1.1_A4.2.js index 9b877b78d616..5e677c949479 100644 --- a/js/src/tests/test262/language/expressions/this/S11.1.1_A4.2.js +++ b/js/src/tests/test262/language/expressions/this/S11.1.1_A4.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Being in anonymous code, "this" and eval("this"), called as a constructor, return the object es5id: 11.1.1_A4.2 diff --git a/js/src/tests/test262/language/expressions/typeof/syntax.js b/js/src/tests/test262/language/expressions/typeof/syntax.js index 1e65d4d68095..1482ec3a848c 100644 --- a/js/src/tests/test262/language/expressions/typeof/syntax.js +++ b/js/src/tests/test262/language/expressions/typeof/syntax.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "typeof" and UnaryExpression are allowed es5id: 11.4.3_A1 diff --git a/js/src/tests/test262/language/expressions/unary-minus/S11.4.7_A1.js b/js/src/tests/test262/language/expressions/unary-minus/S11.4.7_A1.js index a7ce712c407d..fe27f9912ef5 100644 --- a/js/src/tests/test262/language/expressions/unary-minus/S11.4.7_A1.js +++ b/js/src/tests/test262/language/expressions/unary-minus/S11.4.7_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "-" and UnaryExpression are allowed es5id: 11.4.7_A1 diff --git a/js/src/tests/test262/language/expressions/unary-plus/S11.4.6_A1.js b/js/src/tests/test262/language/expressions/unary-plus/S11.4.6_A1.js index 2a54c9ddc484..bd8f42fcf82b 100644 --- a/js/src/tests/test262/language/expressions/unary-plus/S11.4.6_A1.js +++ b/js/src/tests/test262/language/expressions/unary-plus/S11.4.6_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "+" and UnaryExpression are allowed es5id: 11.4.6_A1 diff --git a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A3_T2.js b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A3_T2.js index 2cd2b486b145..950ea18a99f6 100644 --- a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A3_T2.js +++ b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of number conversion from boolean value is 1 if the argument is true, else is +0 es5id: 9.3_A3_T2 diff --git a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.1_T2.js b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.1_T2.js index 86e7bc86def1..0baf3c91ad07 100644 --- a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.1_T2.js +++ b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of number conversion from number value equals to the input argument (no conversion) es5id: 9.3_A4.1_T2 diff --git a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.2_T2.js b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.2_T2.js index 673e0d3559a8..c6b48fd47f6a 100644 --- a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.2_T2.js +++ b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A4.2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of number conversion from number value equals to the input argument (no conversion) es5id: 9.3_A4.2_T2 diff --git a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A5_T2.js b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A5_T2.js index 61f681c63432..f6f2858e5fa7 100644 --- a/js/src/tests/test262/language/expressions/unary-plus/S9.3_A5_T2.js +++ b/js/src/tests/test262/language/expressions/unary-plus/S9.3_A5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Result of number conversion from object value is the result of conversion from primitive value es5id: 9.3_A5_T2 diff --git a/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A1.js b/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A1.js index 6f12f4097958..c7748e9cd05c 100644 --- a/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A1.js +++ b/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between ShiftExpression and ">>>" or between ">>>" and AdditiveExpression are allowed es5id: 11.7.3_A1 diff --git a/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A2.3_T1.js b/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A2.3_T1.js index d541d447e03d..26a6413436a8 100644 --- a/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A2.3_T1.js +++ b/js/src/tests/test262/language/expressions/unsigned-right-shift/S11.7.3_A2.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | ToNumber(first expression) is called first, and then ToNumber(second expression) es5id: 11.7.3_A2.3_T1 diff --git a/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-errors.js b/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-errors.js new file mode 100644 index 000000000000..bc88a5d26526 --- /dev/null +++ b/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-errors.js @@ -0,0 +1,66 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: unsigned-right-shift operator ToNumeric with BigInt operands +esid: sec-unsigned-right-shift-operator-runtime-semantics-evaluation +info: After ToNumeric type coercion, unsigned-right-shift always throws for BigInt operands +features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Symbol("1") >>> 0n; +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >>> Symbol("1"); +}, "ToBigInt: Symbol => TypeError"); +assert.throws(TypeError, function() { + Object(Symbol("1")) >>> 0n; +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >>> Object(Symbol("1")); +}, "ToBigInt: unbox object with internal slot => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }) >>> 0n; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: @@toPrimitive => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Symbol("1"); + } + }) >>> 0n; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: valueOf => Symbol => TypeError"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return Symbol("1"); + } + }) >>> 0n; +}, "ToBigInt: toString => Symbol => TypeError"); +assert.throws(TypeError, function() { + 0n >>> { + toString: function() { + return Symbol("1"); + } + }; +}, "ToBigInt: toString => Symbol => TypeError"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-toprimitive.js b/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-toprimitive.js new file mode 100644 index 000000000000..251cc1e278d3 --- /dev/null +++ b/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-toprimitive.js @@ -0,0 +1,352 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: unsigned-right-shift operator ToNumeric with BigInt operands +esid: sec-unsigned-right-shift-operator-runtime-semantics-evaluation +info: After ToNumeric type coercion, unsigned-right-shift always throws for BigInt operands +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +function err() { + throw new Test262Error(); +} + +function MyError() {} + +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err + }) >>> 0n; +}, "ToPrimitive: @@toPrimitive takes precedence"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: function() { + return 2n; + }, + valueOf: err, + toString: err + }; +}, "ToPrimitive: @@toPrimitive takes precedence"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return 2n; + }, + toString: err + }) >>> 0n; +}, "ToPrimitive: valueOf takes precedence over toString"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return 2n; + }, + toString: err + }; +}, "ToPrimitive: valueOf takes precedence over toString"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: toString with no valueOf"); +assert.throws(TypeError, function() { + 0n >>> { + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: toString with no valueOf"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: undefined, + valueOf: function() { + return 2n; + } + }; +}, "ToPrimitive: skip @@toPrimitive when it's undefined"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: null, + valueOf: function() { + return 2n; + } + }; +}, "ToPrimitive: skip @@toPrimitive when it's null"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip valueOf when it's not callable"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: null, + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: skip valueOf when it's not callable"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip valueOf when it's not callable"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: 1, + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: skip valueOf when it's not callable"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip valueOf when it's not callable"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: {}, + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: skip valueOf when it's not callable"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return {}; + }, + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return Object(12345); + }, + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: skip valueOf when it returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: 1 + }) >>> 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: 1 + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: {} + }) >>> 0n; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: {} + }; +}, "ToPrimitive: throw when @@toPrimitive is not callable"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return Object(1); + } + }) >>> 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return {}; + } + }) >>> 0n; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: function() { + return {}; + } + }; +}, "ToPrimitive: throw when @@toPrimitive returns an object"); +assert.throws(MyError, function() { + ({ + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }) >>> 0n; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + 0n >>> { + [Symbol.toPrimitive]: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from @@toPrimitive"); +assert.throws(MyError, function() { + ({ + valueOf: function() { + throw new MyError(); + } + }) >>> 0n; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + 0n >>> { + valueOf: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from valueOf"); +assert.throws(MyError, function() { + ({ + toString: function() { + throw new MyError(); + } + }) >>> 0n; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(MyError, function() { + 0n >>> { + toString: function() { + throw new MyError(); + } + }; +}, "ToPrimitive: propagate errors from toString"); +assert.throws(TypeError, function() { + ({ + valueOf: null, + toString: null + }) >>> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: null, + toString: null + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: 1, + toString: 1 + }) >>> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: 1, + toString: 1 + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: {}, + toString: {} + }) >>> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: {}, + toString: {} + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }) >>> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return Object(1); + }, + toString: function() { + return Object(1); + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }) >>> 0n; +}, "ToPrimitive: throw when skipping both valueOf and toString"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return {}; + }, + toString: function() { + return {}; + } + }; +}, "ToPrimitive: throw when skipping both valueOf and toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-wrapped-values.js b/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-wrapped-values.js new file mode 100644 index 000000000000..ed8eadc13269 --- /dev/null +++ b/js/src/tests/test262/language/expressions/unsigned-right-shift/bigint-wrapped-values.js @@ -0,0 +1,60 @@ +// |reftest| skip -- BigInt is not supported +// Copyright (C) 2017 Josh Wolfe. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +description: unsigned-right-shift operator ToNumeric with BigInt operands +esid: sec-unsigned-right-shift-operator-runtime-semantics-evaluation +info: After ToNumeric type coercion, unsigned-right-shift always throws for BigInt operands +features: [BigInt, Symbol.toPrimitive, computed-property-names] +---*/ + +assert.throws(TypeError, function() { + Object(2n) >>> 0n; +}, "ToPrimitive: unbox object with internal slot"); +assert.throws(TypeError, function() { + 0n >>> Object(2n); +}, "ToPrimitive: unbox object with internal slot"); +assert.throws(TypeError, function() { + ({ + [Symbol.toPrimitive]: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: @@toPrimitive"); +assert.throws(TypeError, function() { + 0n >>> { + [Symbol.toPrimitive]: function() { + return 2n; + } + }; +}, "ToPrimitive: @@toPrimitive"); +assert.throws(TypeError, function() { + ({ + valueOf: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: valueOf"); +assert.throws(TypeError, function() { + 0n >>> { + valueOf: function() { + return 2n; + } + }; +}, "ToPrimitive: valueOf"); +assert.throws(TypeError, function() { + ({ + toString: function() { + return 2n; + } + }) >>> 0n; +}, "ToPrimitive: toString"); +assert.throws(TypeError, function() { + 0n >>> { + toString: function() { + return 2n; + } + }; +}, "ToPrimitive: toString"); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/expressions/void/S11.4.2_A1.js b/js/src/tests/test262/language/expressions/void/S11.4.2_A1.js index 7cfdc6ac87e9..3eef3c1ae66a 100644 --- a/js/src/tests/test262/language/expressions/void/S11.4.2_A1.js +++ b/js/src/tests/test262/language/expressions/void/S11.4.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White Space and Line Terminator between "void" and UnaryExpression are allowed es5id: 11.4.2_A1 diff --git a/js/src/tests/test262/language/expressions/yield/in-iteration-stmt.js b/js/src/tests/test262/language/expressions/yield/in-iteration-stmt.js index ea153eb739b2..15430c0f14e7 100644 --- a/js/src/tests/test262/language/expressions/yield/in-iteration-stmt.js +++ b/js/src/tests/test262/language/expressions/yield/in-iteration-stmt.js @@ -12,7 +12,7 @@ info: | yield [no LineTerminator here] AssignmentExpression[?In, +Yield] negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/expressions/yield/invalid-left-hand-side.js b/js/src/tests/test262/language/expressions/yield/invalid-left-hand-side.js index 2220a3c36be2..31adfb3c5ba9 100644 --- a/js/src/tests/test262/language/expressions/yield/invalid-left-hand-side.js +++ b/js/src/tests/test262/language/expressions/yield/invalid-left-hand-side.js @@ -18,7 +18,7 @@ info: | CallExpression[?Yield] features: [generators] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/expressions/yield/rhs-regexp.js b/js/src/tests/test262/language/expressions/yield/rhs-regexp.js index 3ec99399a1ce..96ee0985eddd 100644 --- a/js/src/tests/test262/language/expressions/yield/rhs-regexp.js +++ b/js/src/tests/test262/language/expressions/yield/rhs-regexp.js @@ -5,7 +5,7 @@ esid: sec-generator-function-definitions es6id: 14.4 description: > YieldExpression accepts a regular expression literal as its right-hand side -info: > +info: | The syntactic context immediately following yield requires use of the InputElementRegExpOrTemplateTail lexical goal. features: [generators] diff --git a/js/src/tests/test262/language/expressions/yield/rhs-template-middle.js b/js/src/tests/test262/language/expressions/yield/rhs-template-middle.js index 490159a89035..051e6dbab0da 100644 --- a/js/src/tests/test262/language/expressions/yield/rhs-template-middle.js +++ b/js/src/tests/test262/language/expressions/yield/rhs-template-middle.js @@ -4,7 +4,7 @@ esid: sec-generator-function-definitions es6id: 14.4 description: YieldExpression may be followed by a TemplateMiddle construct -info: > +info: | The syntactic context immediately following yield requires use of the InputElementRegExpOrTemplateTail lexical goal. features: [generators] diff --git a/js/src/tests/test262/language/expressions/yield/star-in-iteration-stmt.js b/js/src/tests/test262/language/expressions/yield/star-in-iteration-stmt.js index 54f73c71415f..11887e6d675b 100644 --- a/js/src/tests/test262/language/expressions/yield/star-in-iteration-stmt.js +++ b/js/src/tests/test262/language/expressions/yield/star-in-iteration-stmt.js @@ -12,7 +12,7 @@ info: | yield [no LineTerminator here] * AssignmentExpression[?In, +Yield] negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/function-code/10.4.3-1-105.js b/js/src/tests/test262/language/function-code/10.4.3-1-105.js index 420c576bce05..ba6fbf421fbe 100644 --- a/js/src/tests/test262/language/function-code/10.4.3-1-105.js +++ b/js/src/tests/test262/language/function-code/10.4.3-1-105.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Created based on feedback in https://bugs.ecmascript.org/show_bug.cgi?id=333 es5id: 10.4.3-1-105 diff --git a/js/src/tests/test262/language/function-code/10.4.3-1-106-strict.js b/js/src/tests/test262/language/function-code/10.4.3-1-106-strict.js index 3079960a6985..6701ff55b6aa 100644 --- a/js/src/tests/test262/language/function-code/10.4.3-1-106-strict.js +++ b/js/src/tests/test262/language/function-code/10.4.3-1-106-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Created based on feedback in https://bugs.ecmascript.org/show_bug.cgi?id=333 es5id: 10.4.3-1-106 diff --git a/js/src/tests/test262/language/function-code/S10.1.6_A1_T1.js b/js/src/tests/test262/language/function-code/S10.1.6_A1_T1.js index 858bfe817357..7daec7e559c3 100644 --- a/js/src/tests/test262/language/function-code/S10.1.6_A1_T1.js +++ b/js/src/tests/test262/language/function-code/S10.1.6_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The activation object is initialised with a property with name arguments and attributes {DontDelete} es5id: 10.1.6_A1_T1 diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A1.js b/js/src/tests/test262/language/function-code/S10.2.1_A1.js index e79ee1e83395..37b3678dff7d 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A1.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If the caller supplies fewer parameter values than there are formal parameters, the extra formal parameters have value undefined es5id: 10.2.1_A1 diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A2.js b/js/src/tests/test262/language/function-code/S10.2.1_A2.js index 4fae25b65a08..844add328f22 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A2.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If two or more formal parameters share the same name, hence the same property, the corresponding property is given the value that was supplied for the last parameter with this name diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A3.js b/js/src/tests/test262/language/function-code/S10.2.1_A3.js index d9138a707c90..7b0d43eb14b4 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A3.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If the value of this last parameter (which has the same name as some previous parameters do) was not supplied by the caller, the value of the corresponding property is undefined diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A4_T1.js b/js/src/tests/test262/language/function-code/S10.2.1_A4_T1.js index 0c66eb2bef4b..3ddcf8d05336 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A4_T1.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Function declaration in function code - If the variable object already has a property with the name of Function Identifier, replace its value and attributes. Semantically, this step must follow the creation of diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A4_T2.js b/js/src/tests/test262/language/function-code/S10.2.1_A4_T2.js index 14e963203d8d..a8e6d2f409a9 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A4_T2.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Function declaration in function code - If the variable object already has a property with the name of Function Identifier, replace its value and attributes. Semantically, this step must follow the creation of diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T1.js b/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T1.js index 73da89193966..5cd72677b6b5 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T1.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | For each VariableDeclaration or VariableDeclarationNoIn in the code, create a property of the variable object whose name is the Identifier in the VariableDeclaration or VariableDeclarationNoIn, whose value is diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T2.js b/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T2.js index 6bdebed26261..f7343099ed58 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T2.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A5.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | For each VariableDeclaration or VariableDeclarationNoIn in the code, create a property of the variable object whose name is the Identifier in the VariableDeclaration or VariableDeclarationNoIn, whose value is diff --git a/js/src/tests/test262/language/function-code/S10.2.1_A5.2_T1.js b/js/src/tests/test262/language/function-code/S10.2.1_A5.2_T1.js index 101c5b76d802..dcf162d809b8 100644 --- a/js/src/tests/test262/language/function-code/S10.2.1_A5.2_T1.js +++ b/js/src/tests/test262/language/function-code/S10.2.1_A5.2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If there is already a property of the variable object with the name of a declared variable, the value of the property and its attributes are not changed diff --git a/js/src/tests/test262/language/function-code/block-decl-strict-strict.js b/js/src/tests/test262/language/function-code/block-decl-strict-strict.js index 6122abeb2727..db5178f827b6 100644 --- a/js/src/tests/test262/language/function-code/block-decl-strict-strict.js +++ b/js/src/tests/test262/language/function-code/block-decl-strict-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode es6id: B.3.3.1 flags: [onlyStrict] -info: > +info: | Block statement in function code containing a function declaration B.3.3.1 Changes to FunctionDeclarationInstantiation diff --git a/js/src/tests/test262/language/function-code/eval-param-env-with-computed-key.js b/js/src/tests/test262/language/function-code/eval-param-env-with-computed-key.js index 1eec13c20de7..bcfb42c2920b 100644 --- a/js/src/tests/test262/language/function-code/eval-param-env-with-computed-key.js +++ b/js/src/tests/test262/language/function-code/eval-param-env-with-computed-key.js @@ -4,7 +4,7 @@ /*--- esid: sec-function-definitions-runtime-semantics-iteratorbindinginitialization description: If a computed property key contains a direct eval call, a new declarative environment is created. -info: > +info: | Runtime Semantics: IteratorBindingInitialization FormalParameter : BindingElement diff --git a/js/src/tests/test262/language/function-code/eval-param-env-with-prop-initializer.js b/js/src/tests/test262/language/function-code/eval-param-env-with-prop-initializer.js index c7fa08892ebe..f81ecec18496 100644 --- a/js/src/tests/test262/language/function-code/eval-param-env-with-prop-initializer.js +++ b/js/src/tests/test262/language/function-code/eval-param-env-with-prop-initializer.js @@ -4,7 +4,7 @@ /*--- esid: sec-function-definitions-runtime-semantics-iteratorbindinginitialization description: If a property initializer contains a direct eval call, a new declarative environment is created. -info: > +info: | Runtime Semantics: IteratorBindingInitialization FormalParameter : BindingElement diff --git a/js/src/tests/test262/language/function-code/switch-case-decl-strict-strict.js b/js/src/tests/test262/language/function-code/switch-case-decl-strict-strict.js index 2f29c3c90cf2..f64de6d3f9c2 100644 --- a/js/src/tests/test262/language/function-code/switch-case-decl-strict-strict.js +++ b/js/src/tests/test262/language/function-code/switch-case-decl-strict-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode es6id: B.3.3.1 flags: [onlyStrict] -info: > +info: | Function declaration in the `case` clause of a `switch` statement in function code diff --git a/js/src/tests/test262/language/function-code/switch-dflt-decl-strict-strict.js b/js/src/tests/test262/language/function-code/switch-dflt-decl-strict-strict.js index 43c99eec5761..ba652ed2667b 100644 --- a/js/src/tests/test262/language/function-code/switch-dflt-decl-strict-strict.js +++ b/js/src/tests/test262/language/function-code/switch-dflt-decl-strict-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode es6id: B.3.3.1 flags: [onlyStrict] -info: > +info: | Function declaration in the `default` clause of a `switch` statement in function code diff --git a/js/src/tests/test262/language/future-reserved-words/abstract.js b/js/src/tests/test262/language/future-reserved-words/abstract.js index accafaf67eaf..3a7809ae837e 100644 --- a/js/src/tests/test262/language/future-reserved-words/abstract.js +++ b/js/src/tests/test262/language/future-reserved-words/abstract.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.1 description: Checking if execution of "abstract=1" succeeds -info: > +info: | `abstract` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/boolean.js b/js/src/tests/test262/language/future-reserved-words/boolean.js index fcf7fb8c756a..d151b2bc695c 100644 --- a/js/src/tests/test262/language/future-reserved-words/boolean.js +++ b/js/src/tests/test262/language/future-reserved-words/boolean.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.2 description: Checking if execution of "boolean=1" succeeds -info: > +info: | `boolean` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/byte.js b/js/src/tests/test262/language/future-reserved-words/byte.js index 29ab5af7a76b..0b0862c099ed 100644 --- a/js/src/tests/test262/language/future-reserved-words/byte.js +++ b/js/src/tests/test262/language/future-reserved-words/byte.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.3 description: Checking if execution of "byte=1" succeeds -info: > +info: | `byte` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/char.js b/js/src/tests/test262/language/future-reserved-words/char.js index c986165f9be7..dd2fbcf2ae6f 100644 --- a/js/src/tests/test262/language/future-reserved-words/char.js +++ b/js/src/tests/test262/language/future-reserved-words/char.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.4 description: Checking if execution of "char=1" succeeds -info: > +info: | `char` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/class.js b/js/src/tests/test262/language/future-reserved-words/class.js index c983c780ec53..020bbd9aa99e 100644 --- a/js/src/tests/test262/language/future-reserved-words/class.js +++ b/js/src/tests/test262/language/future-reserved-words/class.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/const.js b/js/src/tests/test262/language/future-reserved-words/const.js index e816d85b6a30..82a60e467794 100644 --- a/js/src/tests/test262/language/future-reserved-words/const.js +++ b/js/src/tests/test262/language/future-reserved-words/const.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/debugger.js b/js/src/tests/test262/language/future-reserved-words/debugger.js index 1944d87aee50..542d8a12193c 100644 --- a/js/src/tests/test262/language/future-reserved-words/debugger.js +++ b/js/src/tests/test262/language/future-reserved-words/debugger.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/double.js b/js/src/tests/test262/language/future-reserved-words/double.js index 4ec5ea6b408e..dc1e3502d15f 100644 --- a/js/src/tests/test262/language/future-reserved-words/double.js +++ b/js/src/tests/test262/language/future-reserved-words/double.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.8 description: Checking if execution of "double=1" succeeds -info: > +info: | `double` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/enum.js b/js/src/tests/test262/language/future-reserved-words/enum.js index c9a9a51bb5f0..1e532f8af9fa 100644 --- a/js/src/tests/test262/language/future-reserved-words/enum.js +++ b/js/src/tests/test262/language/future-reserved-words/enum.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/export.js b/js/src/tests/test262/language/future-reserved-words/export.js index e4e22d1251e6..46c1c49bd198 100644 --- a/js/src/tests/test262/language/future-reserved-words/export.js +++ b/js/src/tests/test262/language/future-reserved-words/export.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/extends.js b/js/src/tests/test262/language/future-reserved-words/extends.js index 0a3a3303d7ca..5278d124b88c 100644 --- a/js/src/tests/test262/language/future-reserved-words/extends.js +++ b/js/src/tests/test262/language/future-reserved-words/extends.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/final.js b/js/src/tests/test262/language/future-reserved-words/final.js index 19a4ec070233..4070fba6ca39 100644 --- a/js/src/tests/test262/language/future-reserved-words/final.js +++ b/js/src/tests/test262/language/future-reserved-words/final.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.12 description: Checking if execution of "final=1" succeeds -info: > +info: | `final` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/float.js b/js/src/tests/test262/language/future-reserved-words/float.js index e07c72d681bb..3e3be01689a2 100644 --- a/js/src/tests/test262/language/future-reserved-words/float.js +++ b/js/src/tests/test262/language/future-reserved-words/float.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.13 description: Checking if execution of "float=1" succeeds -info: > +info: | `float` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/goto.js b/js/src/tests/test262/language/future-reserved-words/goto.js index 26c037dbcf82..dda0526f5550 100644 --- a/js/src/tests/test262/language/future-reserved-words/goto.js +++ b/js/src/tests/test262/language/future-reserved-words/goto.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.14 description: Checking if execution of "goto=1" succeeds -info: > +info: | `goto` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/implements-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/implements-strict-escaped-strict.js index cd5a90d088ac..e120ce800113 100644 --- a/js/src/tests/test262/language/future-reserved-words/implements-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/implements-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/implements-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/implements-strict-strict.js index a8fafa8f3646..174bd0c84b0c 100644 --- a/js/src/tests/test262/language/future-reserved-words/implements-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/implements-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/import.js b/js/src/tests/test262/language/future-reserved-words/import.js index 434cef4d7804..637bb28f3869 100644 --- a/js/src/tests/test262/language/future-reserved-words/import.js +++ b/js/src/tests/test262/language/future-reserved-words/import.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/int.js b/js/src/tests/test262/language/future-reserved-words/int.js index 1fdfd870b45d..0d8433fdc64c 100644 --- a/js/src/tests/test262/language/future-reserved-words/int.js +++ b/js/src/tests/test262/language/future-reserved-words/int.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.17 description: Checking if execution of "int=1" succeeds -info: > +info: | `int` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/interface-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/interface-strict-escaped-strict.js index 63c53d831f1a..42518562a4fb 100644 --- a/js/src/tests/test262/language/future-reserved-words/interface-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/interface-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/interface-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/interface-strict-strict.js index 9f3bae71b9c2..1e9c8cd18784 100644 --- a/js/src/tests/test262/language/future-reserved-words/interface-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/interface-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/interface.js b/js/src/tests/test262/language/future-reserved-words/interface.js index 7873cc20285c..3de776ec127d 100644 --- a/js/src/tests/test262/language/future-reserved-words/interface.js +++ b/js/src/tests/test262/language/future-reserved-words/interface.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The "interface" token can be used as identifier in non-strict code es5id: 7.6.1.2_A1.18ns diff --git a/js/src/tests/test262/language/future-reserved-words/let-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/let-strict-escaped-strict.js index 06f7e7f35208..f6553b49be3f 100644 --- a/js/src/tests/test262/language/future-reserved-words/let-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/let-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/let-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/let-strict-strict.js index 91a68b0e8b46..938be6488ba6 100644 --- a/js/src/tests/test262/language/future-reserved-words/let-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/let-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/long.js b/js/src/tests/test262/language/future-reserved-words/long.js index 84338fa68452..66702cfa1756 100644 --- a/js/src/tests/test262/language/future-reserved-words/long.js +++ b/js/src/tests/test262/language/future-reserved-words/long.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.19 description: Checking if execution of "long=1" succeeds -info: > +info: | `long` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/native.js b/js/src/tests/test262/language/future-reserved-words/native.js index 892048e60d9a..ad0436cd5d78 100644 --- a/js/src/tests/test262/language/future-reserved-words/native.js +++ b/js/src/tests/test262/language/future-reserved-words/native.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.20 description: Checking if execution of "native=1" succeeds -info: > +info: | `native` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/package-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/package-strict-escaped-strict.js index 068cd3e0bb94..82d027609cb7 100644 --- a/js/src/tests/test262/language/future-reserved-words/package-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/package-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/package-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/package-strict-strict.js index f1b40611f692..99050b3248df 100644 --- a/js/src/tests/test262/language/future-reserved-words/package-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/package-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/private-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/private-strict-escaped-strict.js index 10b7ce6446c7..99834ccea9b3 100644 --- a/js/src/tests/test262/language/future-reserved-words/private-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/private-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/private-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/private-strict-strict.js index 2d26049f4c46..d4cf04b81e83 100644 --- a/js/src/tests/test262/language/future-reserved-words/private-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/private-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/protected-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/protected-strict-escaped-strict.js index cdf661117a31..c0809d3b5936 100644 --- a/js/src/tests/test262/language/future-reserved-words/protected-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/protected-strict-escaped-strict.js @@ -17,7 +17,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/protected-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/protected-strict-strict.js index 985140cbd4c4..1430b779086b 100644 --- a/js/src/tests/test262/language/future-reserved-words/protected-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/protected-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/public-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/public-strict-escaped-strict.js index ab472cf956c6..7540630f5727 100644 --- a/js/src/tests/test262/language/future-reserved-words/public-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/public-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/public-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/public-strict-strict.js index a24488226d8d..2114eba9792c 100644 --- a/js/src/tests/test262/language/future-reserved-words/public-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/public-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/short.js b/js/src/tests/test262/language/future-reserved-words/short.js index 140f987d2025..c7366d58055d 100644 --- a/js/src/tests/test262/language/future-reserved-words/short.js +++ b/js/src/tests/test262/language/future-reserved-words/short.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.25 description: Checking if execution of "short=1" succeeds -info: > +info: | `short` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/static-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/static-strict-escaped-strict.js index 6b0fa7a38683..6f52ec21abc8 100644 --- a/js/src/tests/test262/language/future-reserved-words/static-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/static-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/static-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/static-strict-strict.js index d32068da5c0a..c2ff2dfb6dd9 100644 --- a/js/src/tests/test262/language/future-reserved-words/static-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/static-strict-strict.js @@ -15,7 +15,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/super.js b/js/src/tests/test262/language/future-reserved-words/super.js index 15fd1aaf183f..c211dc3bbce2 100644 --- a/js/src/tests/test262/language/future-reserved-words/super.js +++ b/js/src/tests/test262/language/future-reserved-words/super.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield and await. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/synchronized.js b/js/src/tests/test262/language/future-reserved-words/synchronized.js index bae8102a942b..80d762f97789 100644 --- a/js/src/tests/test262/language/future-reserved-words/synchronized.js +++ b/js/src/tests/test262/language/future-reserved-words/synchronized.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.28 description: Checking if execution of "synchronized=1" succeeds -info: > +info: | `synchronized` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/throws.js b/js/src/tests/test262/language/future-reserved-words/throws.js index 657cd4b59864..463336db8474 100644 --- a/js/src/tests/test262/language/future-reserved-words/throws.js +++ b/js/src/tests/test262/language/future-reserved-words/throws.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.29 description: Checking if execution of "throws=1" succeeds -info: > +info: | `throws` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/transient.js b/js/src/tests/test262/language/future-reserved-words/transient.js index 4543d84144cc..f5ad06b51217 100644 --- a/js/src/tests/test262/language/future-reserved-words/transient.js +++ b/js/src/tests/test262/language/future-reserved-words/transient.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.30 description: Checking if execution of "transient=1" succeeds -info: > +info: | `transient` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/volatile.js b/js/src/tests/test262/language/future-reserved-words/volatile.js index 9b1a288fad05..1be6779ba84b 100644 --- a/js/src/tests/test262/language/future-reserved-words/volatile.js +++ b/js/src/tests/test262/language/future-reserved-words/volatile.js @@ -5,7 +5,7 @@ esid: sec-future-reserved-words es5id: 7.6.1.2_A1.31 description: Checking if execution of "volatile=1" succeeds -info: > +info: | `volatile` was removed from the list of future reserved words in ECMAScript 5. ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/yield-strict-escaped-strict.js b/js/src/tests/test262/language/future-reserved-words/yield-strict-escaped-strict.js index a66e472b40cd..fef13aa39bc0 100644 --- a/js/src/tests/test262/language/future-reserved-words/yield-strict-escaped-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/yield-strict-escaped-strict.js @@ -16,7 +16,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/future-reserved-words/yield-strict-strict.js b/js/src/tests/test262/language/future-reserved-words/yield-strict-strict.js index 1e3f73ab4e64..f6f797508683 100644 --- a/js/src/tests/test262/language/future-reserved-words/yield-strict-strict.js +++ b/js/src/tests/test262/language/future-reserved-words/yield-strict-strict.js @@ -14,7 +14,7 @@ info: | It is a Syntax Error if the code matched by this production is contained in strict mode code. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/global-code/S10.4.1_A1_T1.js b/js/src/tests/test262/language/global-code/S10.4.1_A1_T1.js index 605e9c9900d7..63ad550d2078 100644 --- a/js/src/tests/test262/language/global-code/S10.4.1_A1_T1.js +++ b/js/src/tests/test262/language/global-code/S10.4.1_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Variable instantiation is performed using the global object as the variable object and using property attributes { DontDelete } es5id: 10.4.1_A1_T1 diff --git a/js/src/tests/test262/language/global-code/S10.4.1_A1_T2.js b/js/src/tests/test262/language/global-code/S10.4.1_A1_T2.js index b0da2f72e42b..e64492c8c690 100644 --- a/js/src/tests/test262/language/global-code/S10.4.1_A1_T2.js +++ b/js/src/tests/test262/language/global-code/S10.4.1_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Variable instantiation is performed using the global object as the variable object and using property attributes { DontDelete } es5id: 10.4.1_A1_T2 diff --git a/js/src/tests/test262/language/global-code/block-decl-strict-strict.js b/js/src/tests/test262/language/global-code/block-decl-strict-strict.js index 4ab6981ed9a6..60bc9f9aa490 100644 --- a/js/src/tests/test262/language/global-code/block-decl-strict-strict.js +++ b/js/src/tests/test262/language/global-code/block-decl-strict-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode (Block statement in the global scope containing a function declaration) es6id: B.3.3.2 flags: [onlyStrict] -info: > +info: | B.3.3.2 Changes to GlobalDeclarationInstantiation 1. 1. Let strict be IsStrict of script diff --git a/js/src/tests/test262/language/global-code/export.js b/js/src/tests/test262/language/global-code/export.js index f327abcf6254..64933c0fc12f 100644 --- a/js/src/tests/test262/language/global-code/export.js +++ b/js/src/tests/test262/language/global-code/export.js @@ -5,7 +5,7 @@ description: The `export` declaration may not appear within a ScriptBody esid: sec-scripts negative: - phase: early + phase: parse type: SyntaxError info: | A.5 Scripts and Modules diff --git a/js/src/tests/test262/language/global-code/import.js b/js/src/tests/test262/language/global-code/import.js index 43fdd7952e35..7115eee9d176 100644 --- a/js/src/tests/test262/language/global-code/import.js +++ b/js/src/tests/test262/language/global-code/import.js @@ -5,7 +5,7 @@ description: The `import` declaration may not appear within a ScriptBody esid: sec-scripts negative: - phase: early + phase: parse type: SyntaxError info: | A.5 Scripts and Modules diff --git a/js/src/tests/test262/language/global-code/new.target-arrow.js b/js/src/tests/test262/language/global-code/new.target-arrow.js index f19f78fefce2..585db9c4c76b 100644 --- a/js/src/tests/test262/language/global-code/new.target-arrow.js +++ b/js/src/tests/test262/language/global-code/new.target-arrow.js @@ -27,7 +27,7 @@ info: | ArrowFunction. features: [arrow-function] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/global-code/new.target.js b/js/src/tests/test262/language/global-code/new.target.js index e1363f61ba01..46f515c3a04c 100644 --- a/js/src/tests/test262/language/global-code/new.target.js +++ b/js/src/tests/test262/language/global-code/new.target.js @@ -11,7 +11,7 @@ info: | eval that is contained in function code that is not the function code of an ArrowFunction. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/global-code/return.js b/js/src/tests/test262/language/global-code/return.js index f2f12e6c13db..4b1756adbe47 100644 --- a/js/src/tests/test262/language/global-code/return.js +++ b/js/src/tests/test262/language/global-code/return.js @@ -14,7 +14,7 @@ info: | ScriptBody : StatementList[~Yield, ~Return] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/global-code/super-call-arrow.js b/js/src/tests/test262/language/global-code/super-call-arrow.js index 0a9f054c59e8..5c77c09a2cc9 100644 --- a/js/src/tests/test262/language/global-code/super-call-arrow.js +++ b/js/src/tests/test262/language/global-code/super-call-arrow.js @@ -27,7 +27,7 @@ info: | ArrowFunction. features: [super, arrow-function] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/global-code/super-call.js b/js/src/tests/test262/language/global-code/super-call.js index 0de98fb5cc2a..eacda96d2bae 100644 --- a/js/src/tests/test262/language/global-code/super-call.js +++ b/js/src/tests/test262/language/global-code/super-call.js @@ -11,7 +11,7 @@ info: | is contained in function code that is not the function code of an ArrowFunction. negative: - phase: early + phase: parse type: SyntaxError features: [super] ---*/ diff --git a/js/src/tests/test262/language/global-code/super-prop-arrow.js b/js/src/tests/test262/language/global-code/super-prop-arrow.js index 8af00bf2afb6..7dd95b727dda 100644 --- a/js/src/tests/test262/language/global-code/super-prop-arrow.js +++ b/js/src/tests/test262/language/global-code/super-prop-arrow.js @@ -27,7 +27,7 @@ info: | ArrowFunction. features: [super, arrow-function] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/global-code/super-prop.js b/js/src/tests/test262/language/global-code/super-prop.js index 75f75b37143b..0cbebda94696 100644 --- a/js/src/tests/test262/language/global-code/super-prop.js +++ b/js/src/tests/test262/language/global-code/super-prop.js @@ -11,7 +11,7 @@ info: | is contained in function code that is not the function code of an ArrowFunction. negative: - phase: early + phase: parse type: SyntaxError features: [super] ---*/ diff --git a/js/src/tests/test262/language/global-code/switch-case-decl-strict-strict.js b/js/src/tests/test262/language/global-code/switch-case-decl-strict-strict.js index 7f087ee6caa7..2fb92aedffde 100644 --- a/js/src/tests/test262/language/global-code/switch-case-decl-strict-strict.js +++ b/js/src/tests/test262/language/global-code/switch-case-decl-strict-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode (Function declaration in the `case` clause of a `switch` statement in the global scope) es6id: B.3.3.2 flags: [onlyStrict] -info: > +info: | B.3.3.2 Changes to GlobalDeclarationInstantiation 1. 1. Let strict be IsStrict of script diff --git a/js/src/tests/test262/language/global-code/switch-dflt-decl-strict-strict.js b/js/src/tests/test262/language/global-code/switch-dflt-decl-strict-strict.js index db449ab9c7c6..402acf21ec10 100644 --- a/js/src/tests/test262/language/global-code/switch-dflt-decl-strict-strict.js +++ b/js/src/tests/test262/language/global-code/switch-dflt-decl-strict-strict.js @@ -5,7 +5,7 @@ description: AnnexB extension not honored in strict mode (Funtion declaration in the `default` clause of a `switch` statement in the global scope) es6id: B.3.3.2 flags: [onlyStrict] -info: > +info: | B.3.3.2 Changes to GlobalDeclarationInstantiation 1. 1. Let strict be IsStrict of script diff --git a/js/src/tests/test262/language/global-code/yield-strict-strict.js b/js/src/tests/test262/language/global-code/yield-strict-strict.js index 820442c7aa80..dfd4967f0369 100644 --- a/js/src/tests/test262/language/global-code/yield-strict-strict.js +++ b/js/src/tests/test262/language/global-code/yield-strict-strict.js @@ -18,7 +18,7 @@ info: | StatementList[~Yield, ~Return] flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T1.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T1.js index d75c58b18eba..bf2d53894690 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T1.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T2.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T2.js index 1ff8d2782acc..adc515fa0e6c 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T2.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T3.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T3.js index 88673f690afb..49aeac4eef62 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T3.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T4.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T4.js index e010e388f1d5..e82b321895e0 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T4.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T5.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T5.js index 6533766768ec..fc8af360f19b 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T5.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T6.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T6.js index 1c2924899eec..b11b948d8691 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T6.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T7.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T7.js index 1f55e1e8580c..74f305a638e2 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T7.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T8.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T8.js index 99f743a7fc62..e5427a1a2c16 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T8.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T9.js b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T9.js index 5e9edb28a461..1ea050a63d79 100644 --- a/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T9.js +++ b/js/src/tests/test262/language/identifier-resolution/S10.2.2_A1_T9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Every execution context has associated with it a scope chain. A scope chain is a list of objects that are searched when evaluating an Identifier diff --git a/js/src/tests/test262/language/identifier-resolution/unscopables.js b/js/src/tests/test262/language/identifier-resolution/unscopables.js index dca389c20670..04f8df480c2a 100644 --- a/js/src/tests/test262/language/identifier-resolution/unscopables.js +++ b/js/src/tests/test262/language/identifier-resolution/unscopables.js @@ -5,7 +5,7 @@ es6id: 8.1.1.4.1 description: > `Symbol.unscopables` is not referenced when finding bindings in global scope -info: > +info: | 1. Let envRec be the global Environment Record for which the method was invoked. 2. Let DclRec be envRec.[[DeclarativeRecord]]. diff --git a/js/src/tests/test262/language/identifiers/other_id_continue-escaped.js b/js/src/tests/test262/language/identifiers/other_id_continue-escaped.js new file mode 100644 index 000000000000..270513e6df67 --- /dev/null +++ b/js/src/tests/test262/language/identifiers/other_id_continue-escaped.js @@ -0,0 +1,39 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test grandfathered characters of ID_Continue. +info: | + Grandfathered characters (Other_ID_Start + Other_ID_Continue) +---*/ + +// Other_ID_Start (Unicode 4.0) +var a\u2118; +var a\u212E; +var a\u309B; +var a\u309C; + +// Other_ID_Start (Unicode 9.0) +var a\u1885; +var a\u1886; + +// Other_ID_Continue (Unicode 4.1) +var a\u1369; +var a\u136A; +var a\u136B; +var a\u136C; +var a\u136D; +var a\u136E; +var a\u136F; +var a\u1370; +var a\u1371; + +// Other_ID_Continue (Unicode 5.1) +var a\u00B7; +var a\u0387; + +// Other_ID_Continue (Unicode 6.0) +var a\u19DA; + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/identifiers/other_id_continue.js b/js/src/tests/test262/language/identifiers/other_id_continue.js new file mode 100644 index 000000000000..689c5d6c249e --- /dev/null +++ b/js/src/tests/test262/language/identifiers/other_id_continue.js @@ -0,0 +1,39 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test grandfathered characters of ID_Continue. +info: | + Grandfathered characters (Other_ID_Start + Other_ID_Continue) +---*/ + +// Other_ID_Start (Unicode 4.0) +var a℘; // U+2118 +var a℮; // U+212E +var a゛; // U+309B +var a゜; // U+309C + +// Other_ID_Start (Unicode 9.0) +var aᢅ; // U+1885 +var aᢆ; // U+1886 + +// Other_ID_Continue (Unicode 4.1) +var a፩; // U+1369 +var a፪; // U+136A +var a፫; // U+136B +var a፬; // U+136C +var a፭; // U+136D +var a፮; // U+136E +var a፯; // U+136F +var a፰; // U+1370 +var a፱; // U+1371 + +// Other_ID_Continue (Unicode 5.1) +var a·; // U+00B7 +var a·; // U+0387 + +// Other_ID_Continue (Unicode 6.0) +var a᧚; // U+19DA + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/identifiers/other_id_start-escaped.js b/js/src/tests/test262/language/identifiers/other_id_start-escaped.js new file mode 100644 index 000000000000..43b2da4d63c9 --- /dev/null +++ b/js/src/tests/test262/language/identifiers/other_id_start-escaped.js @@ -0,0 +1,21 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test grandfathered characters of ID_Start. +info: | + Grandfathered characters (Other_ID_Start) +---*/ + +// Other_ID_Start (Unicode 4.0) +var \u2118; +var \u212E; +var \u309B; +var \u309C; + +// Other_ID_Start (Unicode 9.0) +var \u1885; +var \u1886; + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/identifiers/other_id_start.js b/js/src/tests/test262/language/identifiers/other_id_start.js new file mode 100644 index 000000000000..8768feab60a7 --- /dev/null +++ b/js/src/tests/test262/language/identifiers/other_id_start.js @@ -0,0 +1,21 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test grandfathered characters of ID_Start. +info: | + Grandfathered characters (Other_ID_Start) +---*/ + +// Other_ID_Start (Unicode 4.0) +var ℘; // U+2118 +var ℮; // U+212E +var ゛; // U+309B +var ゜; // U+309C + +// Other_ID_Start (Unicode 9.0) +var ᢅ; // U+1885 +var ᢆ; // U+1886 + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/identifiers/val-break-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-break-via-escape-hex.js index d69c62d35f6f..b632f0aa66f3 100644 --- a/js/src/tests/test262/language/identifiers/val-break-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-break-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: break negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-break-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-break-via-escape-hex4.js index 194f0e82c46b..6b370119eaef 100644 --- a/js/src/tests/test262/language/identifiers/val-break-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-break-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: break (break) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-break.js b/js/src/tests/test262/language/identifiers/val-break.js index e5e75f4c5da3..4552f9da0911 100644 --- a/js/src/tests/test262/language/identifiers/val-break.js +++ b/js/src/tests/test262/language/identifiers/val-break.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-case-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-case-via-escape-hex.js index 6187a9b22be8..a34b4c1cd83d 100644 --- a/js/src/tests/test262/language/identifiers/val-case-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-case-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: case negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-case-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-case-via-escape-hex4.js index ec0e248b6039..a12136c1fa8f 100644 --- a/js/src/tests/test262/language/identifiers/val-case-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-case-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: case (case) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-case.js b/js/src/tests/test262/language/identifiers/val-case.js index 6111784b6a15..a33af2636e18 100644 --- a/js/src/tests/test262/language/identifiers/val-case.js +++ b/js/src/tests/test262/language/identifiers/val-case.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex.js index 3cece8b401db..157462887b05 100644 --- a/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: catch negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex4.js index 8ba8522dbc29..d87fa361ed6c 100644 --- a/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-catch-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: catch (catch) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-catch.js b/js/src/tests/test262/language/identifiers/val-catch.js index 8210c0c2bf55..3fe1c5cdcbc8 100644 --- a/js/src/tests/test262/language/identifiers/val-catch.js +++ b/js/src/tests/test262/language/identifiers/val-catch.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-class-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-class-via-escape-hex.js index 4315702ba4fc..cdf736fb8402 100644 --- a/js/src/tests/test262/language/identifiers/val-class-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-class-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: class negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-class-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-class-via-escape-hex4.js index 8c323c600603..ddc1f6da1efb 100644 --- a/js/src/tests/test262/language/identifiers/val-class-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-class-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: class (class) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-class.js b/js/src/tests/test262/language/identifiers/val-class.js index a478ebbc0a36..9b9084afc2a6 100644 --- a/js/src/tests/test262/language/identifiers/val-class.js +++ b/js/src/tests/test262/language/identifiers/val-class.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-const-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-const-via-escape-hex.js index c8b225afa5b9..cf4d289e9893 100644 --- a/js/src/tests/test262/language/identifiers/val-const-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-const-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: const negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-const-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-const-via-escape-hex4.js index 47d95758468d..ba086dabf653 100644 --- a/js/src/tests/test262/language/identifiers/val-const-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-const-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: const (const) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-const.js b/js/src/tests/test262/language/identifiers/val-const.js index 7ec70a62e011..3d43df72351a 100644 --- a/js/src/tests/test262/language/identifiers/val-const.js +++ b/js/src/tests/test262/language/identifiers/val-const.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex.js index 2004eebf6ce6..959b63c43894 100644 --- a/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: continue negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex4.js index b252861cf577..0adb5ddc73b8 100644 --- a/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-continue-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: continue (continue) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-continue.js b/js/src/tests/test262/language/identifiers/val-continue.js index 43f97f77b5e5..8e5fa0461711 100644 --- a/js/src/tests/test262/language/identifiers/val-continue.js +++ b/js/src/tests/test262/language/identifiers/val-continue.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex.js index 050c789a06b0..128119a778de 100644 --- a/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: debugger negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex4.js index f74b29f18981..eaaa3c5fbe8b 100644 --- a/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-debugger-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: debugger (debugger) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-debugger.js b/js/src/tests/test262/language/identifiers/val-debugger.js index 55d608e635ea..43052f09251f 100644 --- a/js/src/tests/test262/language/identifiers/val-debugger.js +++ b/js/src/tests/test262/language/identifiers/val-debugger.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-default-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-default-via-escape-hex.js index b2cc45a3da7d..50f53e9935f8 100644 --- a/js/src/tests/test262/language/identifiers/val-default-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-default-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: default negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-default-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-default-via-escape-hex4.js index 5a579c148f55..0058edc70405 100644 --- a/js/src/tests/test262/language/identifiers/val-default-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-default-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: default (default) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-default.js b/js/src/tests/test262/language/identifiers/val-default.js index 969a36f0713b..aa6579dc73a0 100644 --- a/js/src/tests/test262/language/identifiers/val-default.js +++ b/js/src/tests/test262/language/identifiers/val-default.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex.js index 64cb3f91b540..94d8271e2435 100644 --- a/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: delete negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex4.js index 1dd437db7508..9d5f042b97ae 100644 --- a/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-delete-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: delete (delete) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-delete.js b/js/src/tests/test262/language/identifiers/val-delete.js index 68433341f8c5..caee9c598054 100644 --- a/js/src/tests/test262/language/identifiers/val-delete.js +++ b/js/src/tests/test262/language/identifiers/val-delete.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-do-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-do-via-escape-hex.js index f6d89d88da6d..9566dc83d5a6 100644 --- a/js/src/tests/test262/language/identifiers/val-do-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-do-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: do negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-do-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-do-via-escape-hex4.js index e91747fb2448..6d74be2ee521 100644 --- a/js/src/tests/test262/language/identifiers/val-do-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-do-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: do (do) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-do.js b/js/src/tests/test262/language/identifiers/val-do.js index 0c3ece8aaab2..afe01dbd7f21 100644 --- a/js/src/tests/test262/language/identifiers/val-do.js +++ b/js/src/tests/test262/language/identifiers/val-do.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-else-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-else-via-escape-hex.js index 1d81a3d19c48..810668c47731 100644 --- a/js/src/tests/test262/language/identifiers/val-else-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-else-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: else (else) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-else-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-else-via-escape-hex4.js index 6580b419db07..6779ee4a165e 100644 --- a/js/src/tests/test262/language/identifiers/val-else-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-else-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: else (else) (null) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-else.js b/js/src/tests/test262/language/identifiers/val-else.js index 868076bd0bf1..b21f1d7d3d4c 100644 --- a/js/src/tests/test262/language/identifiers/val-else.js +++ b/js/src/tests/test262/language/identifiers/val-else.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex.js index c269bb6b6949..a9215b304716 100644 --- a/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: enum negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex4.js index d006f2cbda55..a4b231b7bec9 100644 --- a/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-enum-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: enum (enum) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-enum.js b/js/src/tests/test262/language/identifiers/val-enum.js index 423af9b2c0a0..089412f29a5f 100644 --- a/js/src/tests/test262/language/identifiers/val-enum.js +++ b/js/src/tests/test262/language/identifiers/val-enum.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-export-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-export-via-escape-hex.js index 2a6a39670196..be3c8648ad05 100644 --- a/js/src/tests/test262/language/identifiers/val-export-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-export-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: export negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-export-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-export-via-escape-hex4.js index a7b9dc816ec9..644d730093d0 100644 --- a/js/src/tests/test262/language/identifiers/val-export-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-export-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: export (export) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-export.js b/js/src/tests/test262/language/identifiers/val-export.js index cf6e4959a4cd..816fcf6c33a1 100644 --- a/js/src/tests/test262/language/identifiers/val-export.js +++ b/js/src/tests/test262/language/identifiers/val-export.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex.js index 253cf6167d0c..4e0f79a006ad 100644 --- a/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: extends negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex4.js index 5ab532be27a2..366bebdc1cf7 100644 --- a/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-extends-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: extends (extends) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-extends.js b/js/src/tests/test262/language/identifiers/val-extends.js index 98949e844dd1..dda603db019d 100644 --- a/js/src/tests/test262/language/identifiers/val-extends.js +++ b/js/src/tests/test262/language/identifiers/val-extends.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-false-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-false-via-escape-hex.js index 3f092f3ff425..20d817b90ef4 100644 --- a/js/src/tests/test262/language/identifiers/val-false-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-false-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: false negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-false-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-false-via-escape-hex4.js index 74028ef6b2ff..73e6e5771b2b 100644 --- a/js/src/tests/test262/language/identifiers/val-false-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-false-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: false (false) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-false.js b/js/src/tests/test262/language/identifiers/val-false.js index e7ec3c4d9d0b..aed578ca30c3 100644 --- a/js/src/tests/test262/language/identifiers/val-false.js +++ b/js/src/tests/test262/language/identifiers/val-false.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex.js index 88b0d5a1fa6a..84cea6159ac3 100644 --- a/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: finally negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex4.js index c2e96c8c244e..74f19ed5988c 100644 --- a/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-finally-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: finally (finally) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-finally.js b/js/src/tests/test262/language/identifiers/val-finally.js index 731faeb0fd8c..97519fa2efb8 100644 --- a/js/src/tests/test262/language/identifiers/val-finally.js +++ b/js/src/tests/test262/language/identifiers/val-finally.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-for-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-for-via-escape-hex.js index 2792467fa819..ebdca7ec9067 100644 --- a/js/src/tests/test262/language/identifiers/val-for-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-for-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: for negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-for-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-for-via-escape-hex4.js index 1bdc4035e434..113f8e47998f 100644 --- a/js/src/tests/test262/language/identifiers/val-for-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-for-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: for (for) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-for.js b/js/src/tests/test262/language/identifiers/val-for.js index df45aa99ad34..cd0431ad4347 100644 --- a/js/src/tests/test262/language/identifiers/val-for.js +++ b/js/src/tests/test262/language/identifiers/val-for.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-function-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-function-via-escape-hex.js index 919fc4d2ab93..72bd63a92003 100644 --- a/js/src/tests/test262/language/identifiers/val-function-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-function-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: function negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-function-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-function-via-escape-hex4.js index 44ba5c2257a9..de27ab98d92a 100644 --- a/js/src/tests/test262/language/identifiers/val-function-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-function-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: function (function) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-function.js b/js/src/tests/test262/language/identifiers/val-function.js index 94d84ba0a318..4f6ffe160ee1 100644 --- a/js/src/tests/test262/language/identifiers/val-function.js +++ b/js/src/tests/test262/language/identifiers/val-function.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-if-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-if-via-escape-hex.js index 8bcc1baa6c17..6eb354c76d26 100644 --- a/js/src/tests/test262/language/identifiers/val-if-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-if-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: if negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-if-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-if-via-escape-hex4.js index 3aeefbef5ced..26f925045ac8 100644 --- a/js/src/tests/test262/language/identifiers/val-if-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-if-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: if (if) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-if.js b/js/src/tests/test262/language/identifiers/val-if.js index 98e4d219ffcd..b534f72225ef 100644 --- a/js/src/tests/test262/language/identifiers/val-if.js +++ b/js/src/tests/test262/language/identifiers/val-if.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-import-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-import-via-escape-hex.js index 43e3dcafa1c6..d9c55f81c643 100644 --- a/js/src/tests/test262/language/identifiers/val-import-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-import-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: import negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-import-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-import-via-escape-hex4.js index 05a32cb03c32..fd7ed725c334 100644 --- a/js/src/tests/test262/language/identifiers/val-import-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-import-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: import (import) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-import.js b/js/src/tests/test262/language/identifiers/val-import.js index b624a967e9fc..1e272be79d9f 100644 --- a/js/src/tests/test262/language/identifiers/val-import.js +++ b/js/src/tests/test262/language/identifiers/val-import.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-in-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-in-via-escape-hex.js index e72c044c9520..2eefa1b5505b 100644 --- a/js/src/tests/test262/language/identifiers/val-in-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-in-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: in negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-in-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-in-via-escape-hex4.js index a27e221d522c..0adc55937403 100644 --- a/js/src/tests/test262/language/identifiers/val-in-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-in-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: in (in) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-in.js b/js/src/tests/test262/language/identifiers/val-in.js index aac8b220cf0c..662eabba0223 100644 --- a/js/src/tests/test262/language/identifiers/val-in.js +++ b/js/src/tests/test262/language/identifiers/val-in.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex.js index 7a68b052caa3..bf91f969b6f3 100644 --- a/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: instanceof negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex4.js index 0782fbf20cde..fc40d494b206 100644 --- a/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-instanceof-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: instanceof (instanceof) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-instanceof.js b/js/src/tests/test262/language/identifiers/val-instanceof.js index 685372066ec5..b4513aab1d74 100644 --- a/js/src/tests/test262/language/identifiers/val-instanceof.js +++ b/js/src/tests/test262/language/identifiers/val-instanceof.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-new-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-new-via-escape-hex.js index 9896961cb6b0..00f690cbe355 100644 --- a/js/src/tests/test262/language/identifiers/val-new-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-new-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: new negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-new-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-new-via-escape-hex4.js index 075d67e7a842..6b5f1f154481 100644 --- a/js/src/tests/test262/language/identifiers/val-new-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-new-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: new (new) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-new.js b/js/src/tests/test262/language/identifiers/val-new.js index 5d9d1b323444..558fa591e78e 100644 --- a/js/src/tests/test262/language/identifiers/val-new.js +++ b/js/src/tests/test262/language/identifiers/val-new.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-null-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-null-via-escape-hex.js index 9afd7805a9db..c49bd650cf44 100644 --- a/js/src/tests/test262/language/identifiers/val-null-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-null-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: null negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-null-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-null-via-escape-hex4.js index c29c1bf860c9..5e0c7e92a8cd 100644 --- a/js/src/tests/test262/language/identifiers/val-null-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-null-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: null (null) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-null.js b/js/src/tests/test262/language/identifiers/val-null.js index be87df031f4c..d0458c6d46ed 100644 --- a/js/src/tests/test262/language/identifiers/val-null.js +++ b/js/src/tests/test262/language/identifiers/val-null.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-return-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-return-via-escape-hex.js index 2e63dd7b61a2..55a525e3beca 100644 --- a/js/src/tests/test262/language/identifiers/val-return-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-return-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: return negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-return-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-return-via-escape-hex4.js index 8d045ceb0422..31d2ff85756d 100644 --- a/js/src/tests/test262/language/identifiers/val-return-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-return-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: return (return) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-return.js b/js/src/tests/test262/language/identifiers/val-return.js index b3ea23911681..1fc7ca928ab4 100644 --- a/js/src/tests/test262/language/identifiers/val-return.js +++ b/js/src/tests/test262/language/identifiers/val-return.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-super-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-super-via-escape-hex.js index 3862ff78bf84..1e5e660d1bfe 100644 --- a/js/src/tests/test262/language/identifiers/val-super-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-super-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: super negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-super-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-super-via-escape-hex4.js index 25131ddb9dcc..89fd8665ff30 100644 --- a/js/src/tests/test262/language/identifiers/val-super-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-super-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: super (super) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-super.js b/js/src/tests/test262/language/identifiers/val-super.js index 8a06793b1c74..2de19d0cbba8 100644 --- a/js/src/tests/test262/language/identifiers/val-super.js +++ b/js/src/tests/test262/language/identifiers/val-super.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex.js index 97a6f1a50b14..5bfd8008f26f 100644 --- a/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: switch negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex4.js index 53b4b69a379d..49828d5f7ea6 100644 --- a/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-switch-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: switch (switch) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-switch.js b/js/src/tests/test262/language/identifiers/val-switch.js index b6138f852ed7..cd89d3b2ac22 100644 --- a/js/src/tests/test262/language/identifiers/val-switch.js +++ b/js/src/tests/test262/language/identifiers/val-switch.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-this-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-this-via-escape-hex.js index ee80ff4f3443..6e1dc831d980 100644 --- a/js/src/tests/test262/language/identifiers/val-this-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-this-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: this negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-this-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-this-via-escape-hex4.js index f68803af6abb..812645b57f99 100644 --- a/js/src/tests/test262/language/identifiers/val-this-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-this-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: this (this) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-this.js b/js/src/tests/test262/language/identifiers/val-this.js index 701fb9e17503..2f72dba5985f 100644 --- a/js/src/tests/test262/language/identifiers/val-this.js +++ b/js/src/tests/test262/language/identifiers/val-this.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex.js index 50676d4238a7..1866c25c0c57 100644 --- a/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: throw negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex4.js index 3e2860d0e763..136f49b65763 100644 --- a/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-throw-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: throw (throw) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-throw.js b/js/src/tests/test262/language/identifiers/val-throw.js index 700bb1d11d9e..17e77b27fc10 100644 --- a/js/src/tests/test262/language/identifiers/val-throw.js +++ b/js/src/tests/test262/language/identifiers/val-throw.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-true-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-true-via-escape-hex.js index 3823480209b9..8300295f57b7 100644 --- a/js/src/tests/test262/language/identifiers/val-true-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-true-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-true-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-true-via-escape-hex4.js index 321a58c4ac18..edcc9ac8bab2 100644 --- a/js/src/tests/test262/language/identifiers/val-true-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-true-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: true (true) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-true.js b/js/src/tests/test262/language/identifiers/val-true.js index fee967144377..46699a5196f2 100644 --- a/js/src/tests/test262/language/identifiers/val-true.js +++ b/js/src/tests/test262/language/identifiers/val-true.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-try-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-try-via-escape-hex.js index ddf589b7002e..858ac46751b9 100644 --- a/js/src/tests/test262/language/identifiers/val-try-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-try-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: try negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-try-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-try-via-escape-hex4.js index 8537ae7e98d8..1ee529ebe3bb 100644 --- a/js/src/tests/test262/language/identifiers/val-try-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-try-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: try (try) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-try.js b/js/src/tests/test262/language/identifiers/val-try.js index b48dc601e415..aa6d08c13194 100644 --- a/js/src/tests/test262/language/identifiers/val-try.js +++ b/js/src/tests/test262/language/identifiers/val-try.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex.js index 9fec30c6d037..e431a9b2bac8 100644 --- a/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: typeof negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex4.js index 887253de456c..f45b33154e5a 100644 --- a/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-typeof-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: typeof (typeof) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-typeof.js b/js/src/tests/test262/language/identifiers/val-typeof.js index 437801bef337..a95bd75b21b4 100644 --- a/js/src/tests/test262/language/identifiers/val-typeof.js +++ b/js/src/tests/test262/language/identifiers/val-typeof.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-var-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-var-via-escape-hex.js index 7cdaf45c0a33..112a90ea03cb 100644 --- a/js/src/tests/test262/language/identifiers/val-var-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-var-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: var negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-var-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-var-via-escape-hex4.js index 69fc8869e86e..83924d8b226d 100644 --- a/js/src/tests/test262/language/identifiers/val-var-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-var-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: var (var) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-var.js b/js/src/tests/test262/language/identifiers/val-var.js index d782d25e1e7c..18fae3131cee 100644 --- a/js/src/tests/test262/language/identifiers/val-var.js +++ b/js/src/tests/test262/language/identifiers/val-var.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-void-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-void-via-escape-hex.js index e46aa64c58de..94908af08a5b 100644 --- a/js/src/tests/test262/language/identifiers/val-void-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-void-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: void negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-void-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-void-via-escape-hex4.js index 9d42aed3032d..c54dc6daee7b 100644 --- a/js/src/tests/test262/language/identifiers/val-void-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-void-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: void (void) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-void.js b/js/src/tests/test262/language/identifiers/val-void.js index 1506a9422488..872206647082 100644 --- a/js/src/tests/test262/language/identifiers/val-void.js +++ b/js/src/tests/test262/language/identifiers/val-void.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-while-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-while-via-escape-hex.js index 868e559976ae..133acb9c4728 100644 --- a/js/src/tests/test262/language/identifiers/val-while-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-while-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: while negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-while-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-while-via-escape-hex4.js index b38bbd7e061c..5b4b6bbf89ac 100644 --- a/js/src/tests/test262/language/identifiers/val-while-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-while-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: while (while) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-while.js b/js/src/tests/test262/language/identifiers/val-while.js index 0a8817c2fd69..77c14a97eead 100644 --- a/js/src/tests/test262/language/identifiers/val-while.js +++ b/js/src/tests/test262/language/identifiers/val-while.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-with-via-escape-hex.js b/js/src/tests/test262/language/identifiers/val-with-via-escape-hex.js index 692c3953c751..c173ed9b96a0 100644 --- a/js/src/tests/test262/language/identifiers/val-with-via-escape-hex.js +++ b/js/src/tests/test262/language/identifiers/val-with-via-escape-hex.js @@ -8,7 +8,7 @@ description: > SyntaxError expected: reserved words used as Identifier Names in UTF8: with negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-with-via-escape-hex4.js b/js/src/tests/test262/language/identifiers/val-with-via-escape-hex4.js index 12d7ab820cf5..5f50ef899fd8 100644 --- a/js/src/tests/test262/language/identifiers/val-with-via-escape-hex4.js +++ b/js/src/tests/test262/language/identifiers/val-with-via-escape-hex4.js @@ -8,7 +8,7 @@ description: > 7.6 - SyntaxError expected: reserved words used as Identifier Names in UTF8: with (with) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-with.js b/js/src/tests/test262/language/identifiers/val-with.js index 054152029cfd..040172e1cfc4 100644 --- a/js/src/tests/test262/language/identifiers/val-with.js +++ b/js/src/tests/test262/language/identifiers/val-with.js @@ -7,7 +7,7 @@ es6id: 11.6 description: > SyntaxError expected: reserved words used as Identifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/identifiers/val-yield-strict-strict.js b/js/src/tests/test262/language/identifiers/val-yield-strict-strict.js index 2559e65bc49b..15e7d6ecfe02 100644 --- a/js/src/tests/test262/language/identifiers/val-yield-strict-strict.js +++ b/js/src/tests/test262/language/identifiers/val-yield-strict-strict.js @@ -9,7 +9,7 @@ description: > as an identifier. es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/identifiers/vertical-tilde-continue-escaped.js b/js/src/tests/test262/language/identifiers/vertical-tilde-continue-escaped.js new file mode 100644 index 000000000000..97a86af652b5 --- /dev/null +++ b/js/src/tests/test262/language/identifiers/vertical-tilde-continue-escaped.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test VERTICAL TILDE (U+2E2F) is not recognized as ID_Continue character. +info: | + VERTICAL TILDE is in General Category 'Lm' and [:Pattern_Syntax:]. +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var a\u2E2F; diff --git a/js/src/tests/test262/language/identifiers/vertical-tilde-continue.js b/js/src/tests/test262/language/identifiers/vertical-tilde-continue.js new file mode 100644 index 000000000000..2e5820f6ddea --- /dev/null +++ b/js/src/tests/test262/language/identifiers/vertical-tilde-continue.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test VERTICAL TILDE (U+2E2F) is not recognized as ID_Continue character. +info: | + VERTICAL TILDE is in General Category 'Lm' and [:Pattern_Syntax:]. +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var aⸯ; // U+2E2F diff --git a/js/src/tests/test262/language/identifiers/vertical-tilde-start-escaped.js b/js/src/tests/test262/language/identifiers/vertical-tilde-start-escaped.js new file mode 100644 index 000000000000..fe4cfed47492 --- /dev/null +++ b/js/src/tests/test262/language/identifiers/vertical-tilde-start-escaped.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test VERTICAL TILDE (U+2E2F) is not recognized as ID_Start character. +info: | + VERTICAL TILDE is in General Category 'Lm' and [:Pattern_Syntax:]. +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var \u2E2F; diff --git a/js/src/tests/test262/language/identifiers/vertical-tilde-start.js b/js/src/tests/test262/language/identifiers/vertical-tilde-start.js new file mode 100644 index 000000000000..cc64781c9194 --- /dev/null +++ b/js/src/tests/test262/language/identifiers/vertical-tilde-start.js @@ -0,0 +1,17 @@ +// |reftest| error:SyntaxError +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-names-and-keywords +description: Test VERTICAL TILDE (U+2E2F) is not recognized as ID_Start character. +info: | + VERTICAL TILDE is in General Category 'Lm' and [:Pattern_Syntax:]. +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var ⸯ; // U+2E2F diff --git a/js/src/tests/test262/language/import/dup-bound-names.js b/js/src/tests/test262/language/import/dup-bound-names.js index 39e7961cd537..232954e83204 100644 --- a/js/src/tests/test262/language/import/dup-bound-names.js +++ b/js/src/tests/test262/language/import/dup-bound-names.js @@ -8,7 +8,7 @@ description: > duplicate entries. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/import/escaped-as-import-specifier.js b/js/src/tests/test262/language/import/escaped-as-import-specifier.js index 97bce008d11c..75176be64370 100644 --- a/js/src/tests/test262/language/import/escaped-as-import-specifier.js +++ b/js/src/tests/test262/language/import/escaped-as-import-specifier.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `as` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/import/escaped-as-namespace-import.js b/js/src/tests/test262/language/import/escaped-as-namespace-import.js index 45ba5df679e0..ca9f7ae54d5f 100644 --- a/js/src/tests/test262/language/import/escaped-as-namespace-import.js +++ b/js/src/tests/test262/language/import/escaped-as-namespace-import.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `as` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/import/escaped-from.js b/js/src/tests/test262/language/import/escaped-from.js index c92168b93211..5078d4e3368d 100644 --- a/js/src/tests/test262/language/import/escaped-from.js +++ b/js/src/tests/test262/language/import/escaped-from.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `from` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-break.js b/js/src/tests/test262/language/keywords/ident-ref-break.js index 31a2cf2d4ee9..1fbd1b8bd21c 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-break.js +++ b/js/src/tests/test262/language/keywords/ident-ref-break.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-case.js b/js/src/tests/test262/language/keywords/ident-ref-case.js index c158a26ffd98..938578ea0d1c 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-case.js +++ b/js/src/tests/test262/language/keywords/ident-ref-case.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-catch.js b/js/src/tests/test262/language/keywords/ident-ref-catch.js index 49345ebf676b..61e953e7d44d 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-catch.js +++ b/js/src/tests/test262/language/keywords/ident-ref-catch.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-continue.js b/js/src/tests/test262/language/keywords/ident-ref-continue.js index 05cb9fd72fdd..908d372a39c8 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-continue.js +++ b/js/src/tests/test262/language/keywords/ident-ref-continue.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-default.js b/js/src/tests/test262/language/keywords/ident-ref-default.js index 5a25958f3e92..389d9ad29ff1 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-default.js +++ b/js/src/tests/test262/language/keywords/ident-ref-default.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-delete.js b/js/src/tests/test262/language/keywords/ident-ref-delete.js index 10eb311a8201..0b0c3d9c186b 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-delete.js +++ b/js/src/tests/test262/language/keywords/ident-ref-delete.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-do.js b/js/src/tests/test262/language/keywords/ident-ref-do.js index 3336b344c77f..f07add39683a 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-do.js +++ b/js/src/tests/test262/language/keywords/ident-ref-do.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-else.js b/js/src/tests/test262/language/keywords/ident-ref-else.js index cfd48e15ebac..ba5972556dc0 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-else.js +++ b/js/src/tests/test262/language/keywords/ident-ref-else.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-finally.js b/js/src/tests/test262/language/keywords/ident-ref-finally.js index 23dffc1d7e79..431bab4a4364 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-finally.js +++ b/js/src/tests/test262/language/keywords/ident-ref-finally.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-for.js b/js/src/tests/test262/language/keywords/ident-ref-for.js index 109cbac99158..a4432ae559b2 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-for.js +++ b/js/src/tests/test262/language/keywords/ident-ref-for.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-function.js b/js/src/tests/test262/language/keywords/ident-ref-function.js index 86f2f793cb65..0b68ea392ba4 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-function.js +++ b/js/src/tests/test262/language/keywords/ident-ref-function.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-if.js b/js/src/tests/test262/language/keywords/ident-ref-if.js index 7816339dbd02..954d2ebcd4f9 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-if.js +++ b/js/src/tests/test262/language/keywords/ident-ref-if.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-in.js b/js/src/tests/test262/language/keywords/ident-ref-in.js index bd4ae1b1dc1c..20f409cc91b1 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-in.js +++ b/js/src/tests/test262/language/keywords/ident-ref-in.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-instanceof.js b/js/src/tests/test262/language/keywords/ident-ref-instanceof.js index 79c99e315ef8..b75dff0f3e2c 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-instanceof.js +++ b/js/src/tests/test262/language/keywords/ident-ref-instanceof.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-new.js b/js/src/tests/test262/language/keywords/ident-ref-new.js index bbd6e44eddfd..75c9e70d6f22 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-new.js +++ b/js/src/tests/test262/language/keywords/ident-ref-new.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-return.js b/js/src/tests/test262/language/keywords/ident-ref-return.js index 515c70dd9725..319bfcf2c5e0 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-return.js +++ b/js/src/tests/test262/language/keywords/ident-ref-return.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-switch.js b/js/src/tests/test262/language/keywords/ident-ref-switch.js index 09dcc3cd6a74..34b98285c93b 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-switch.js +++ b/js/src/tests/test262/language/keywords/ident-ref-switch.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-this.js b/js/src/tests/test262/language/keywords/ident-ref-this.js index cd3092d60862..96ea02f59d20 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-this.js +++ b/js/src/tests/test262/language/keywords/ident-ref-this.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-throw.js b/js/src/tests/test262/language/keywords/ident-ref-throw.js index 353bdd90b398..baed041c0a7d 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-throw.js +++ b/js/src/tests/test262/language/keywords/ident-ref-throw.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-try.js b/js/src/tests/test262/language/keywords/ident-ref-try.js index 698569a20aae..884173bf5d03 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-try.js +++ b/js/src/tests/test262/language/keywords/ident-ref-try.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-typeof.js b/js/src/tests/test262/language/keywords/ident-ref-typeof.js index b50501ecdce0..d3ce23b173c7 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-typeof.js +++ b/js/src/tests/test262/language/keywords/ident-ref-typeof.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-var.js b/js/src/tests/test262/language/keywords/ident-ref-var.js index a11f97c68974..03a42ef03c93 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-var.js +++ b/js/src/tests/test262/language/keywords/ident-ref-var.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-void.js b/js/src/tests/test262/language/keywords/ident-ref-void.js index 4ca447cca394..0ccf6b3a3fe4 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-void.js +++ b/js/src/tests/test262/language/keywords/ident-ref-void.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-while.js b/js/src/tests/test262/language/keywords/ident-ref-while.js index bb78d6737e3e..bf7ad9a9b52c 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-while.js +++ b/js/src/tests/test262/language/keywords/ident-ref-while.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/keywords/ident-ref-with.js b/js/src/tests/test262/language/keywords/ident-ref-with.js index 99cf1ec8fdb2..1d453b5d4389 100644 --- a/js/src/tests/test262/language/keywords/ident-ref-with.js +++ b/js/src/tests/test262/language/keywords/ident-ref-with.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js index 0adacd674ff2..01b996333bc1 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A2.1_T2.js @@ -7,7 +7,7 @@ info: LINE FEED (U+000A) within strings is not allowed es5id: 7.3_A2.1_T2 description: Use real LINE FEED into string negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js index f92d0878519f..4daf79e5b096 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A2.2_T2.js @@ -7,7 +7,7 @@ info: CARRIAGE RETURN (U+000D) within strings is not allowed es5id: 7.3_A2.2_T2 description: Insert real CARRIAGE RETURN into string negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A3.1_T3.js b/js/src/tests/test262/language/line-terminators/S7.3_A3.1_T3.js index 1a3791d3173a..7af3816720f7 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A3.1_T3.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A3.1_T3.js @@ -7,7 +7,7 @@ info: Single line comments can not contain LINE FEED (U+000A) inside es5id: 7.3_A3.1_T3 description: Insert real LINE FEED into single line comment negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js index 61d811bb8e3b..65cd4b8680a2 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T1.js @@ -7,7 +7,7 @@ info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside es5id: 7.3_A3.2_T1 description: Insert CARRIAGE RETURN (\u000D) into single line comment negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T3.js b/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T3.js index 49a13db44308..ba25ef8510b0 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T3.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A3.2_T3.js @@ -7,7 +7,7 @@ info: Single line comments can not contain CARRIAGE RETURN (U+000D) inside es5id: 7.3_A3.2_T3 description: Insert real CARRIAGE RETURN into single line comment negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A3.3_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A3.3_T1.js index 0400fcec9005..755f8499b7ef 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A3.3_T1.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A3.3_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Single line comments are terminated by the LINE SEPARATOR (U+2028) character es5id: 7.3_A3.3_T1 description: Insert LINE SEPARATOR (\u2028) into single line comment negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A3.4_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A3.4_T1.js index 60d9216f82ba..cb55c7bc4e76 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A3.4_T1.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A3.4_T1.js @@ -7,7 +7,7 @@ info: Single line comments can not contain PARAGRAPH SEPARATOR (U+2029) inside es5id: 7.3_A3.4_T1 description: Insert PARAGRAPH SEPARATOR (\u2029) into single line comment negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js index a5cc8b28b0c6..8e43c38b5433 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.3_A6_T1 description: Insert LINE FEED (U+000A) in var x negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js index 5755f7ab00f4..bb1588c39925 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T2.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.3_A6_T2 description: Insert CARRIAGE RETURN (U+000D) in var x negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js index 5ac9126b37c1..39e467ef9aa9 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T3.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.3_A6_T3 description: Insert LINE SEPARATOR (U+2028) in var x negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js b/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js index 5829c48eafa8..160ebb528e9b 100644 --- a/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js +++ b/js/src/tests/test262/language/line-terminators/S7.3_A6_T4.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Line Terminator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.3_A6_T4 description: Insert PARAGRAPH SEPARATOR (U+2029) in var x negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/bigint/binary-invalid-digit.js b/js/src/tests/test262/language/literals/bigint/binary-invalid-digit.js index 571bb52d2b8f..dfaeef26e069 100644 --- a/js/src/tests/test262/language/literals/bigint/binary-invalid-digit.js +++ b/js/src/tests/test262/language/literals/bigint/binary-invalid-digit.js @@ -17,7 +17,7 @@ info: | NumericLiteralSuffix :: n negative: - phase: early + phase: parse type: SyntaxError features: [BigInt] ---*/ diff --git a/js/src/tests/test262/language/literals/bigint/exponent-part.js b/js/src/tests/test262/language/literals/bigint/exponent-part.js index 439629c16f8c..33e18836abba 100644 --- a/js/src/tests/test262/language/literals/bigint/exponent-part.js +++ b/js/src/tests/test262/language/literals/bigint/exponent-part.js @@ -8,7 +8,7 @@ description: > esid: sec-numeric-literal-static-semantics-early-errors features: [BigInt] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/bigint/hexadecimal-invalid-digit.js b/js/src/tests/test262/language/literals/bigint/hexadecimal-invalid-digit.js index 77d86a9e435d..cb8e33b0e1f0 100644 --- a/js/src/tests/test262/language/literals/bigint/hexadecimal-invalid-digit.js +++ b/js/src/tests/test262/language/literals/bigint/hexadecimal-invalid-digit.js @@ -17,7 +17,7 @@ info: | NumericLiteralSuffix :: n negative: - phase: early + phase: parse type: SyntaxError features: [BigInt] ---*/ diff --git a/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dil-dot-dds.js b/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dil-dot-dds.js index 19fad95a1c35..dfc2e5ec25b7 100644 --- a/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dil-dot-dds.js +++ b/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dil-dot-dds.js @@ -19,7 +19,7 @@ info: | . DecimalDigits features: [BigInt] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dot-dds.js b/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dot-dds.js index d1d035e7e37b..6e53d44bd88c 100644 --- a/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dot-dds.js +++ b/js/src/tests/test262/language/literals/bigint/mv-is-not-integer-dot-dds.js @@ -19,7 +19,7 @@ info: | . DecimalDigits features: [BigInt] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/bigint/octal-invalid-digit.js b/js/src/tests/test262/language/literals/bigint/octal-invalid-digit.js index 1d3263059744..4e2c3032411a 100644 --- a/js/src/tests/test262/language/literals/bigint/octal-invalid-digit.js +++ b/js/src/tests/test262/language/literals/bigint/octal-invalid-digit.js @@ -17,7 +17,7 @@ info: | NumericLiteralSuffix :: n negative: - phase: early + phase: parse type: SyntaxError features: [BigInt] ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js b/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js index 26203ea5b145..02253c5aea72 100644 --- a/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js +++ b/js/src/tests/test262/language/literals/numeric/7.8.3-1gs-strict.js @@ -7,7 +7,7 @@ es5id: 7.8.3-1gs description: Strict Mode - octal extension(010) is forbidden in strict mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js b/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js index 4b98a9c48f50..4bffbd2166b8 100644 --- a/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js +++ b/js/src/tests/test262/language/literals/numeric/7.8.3-2gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - octal extension is forbidden in strict mode (after a hex number is assigned to a variable) negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js index 756c2ed675d5..30957e7d1bec 100644 --- a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T1.js @@ -7,7 +7,7 @@ info: "HexIntegerLiteral :: 0(x/X) is incorrect" es5id: 7.8.3_A6.1_T1 description: Checking if execution of "0x" passes negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js index 3075e37c62dc..1f360878011d 100644 --- a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.1_T2.js @@ -7,7 +7,7 @@ info: "HexIntegerLiteral :: 0(x/X) is incorrect" es5id: 7.8.3_A6.1_T2 description: Checking if execution of "0X" passes negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js index c36f758bfe33..9a56edf438ec 100644 --- a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T1.js @@ -7,7 +7,7 @@ info: 0xG is incorrect es5id: 7.8.3_A6.2_T1 description: Checking if execution of "0xG" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js index 8a70bfa59cb6..bf180d57240b 100644 --- a/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js +++ b/js/src/tests/test262/language/literals/numeric/S7.8.3_A6.2_T2.js @@ -7,7 +7,7 @@ info: 0xG is incorrect es5id: 7.8.3_A6.2_T2 description: Checking if execution of "0xg" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js index 5c87cb8322e4..f8c1fca127d3 100644 --- a/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-digit.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Binary-integer-literal-like sequence containing an invalid digit -info: > +info: | BinaryIntegerLiteral :: 0b BinaryDigits 0B BinaryDigits @@ -15,7 +15,7 @@ info: > BinaryDigit :: one of 0 1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js index 00acd0dd3275..822af89e28d2 100644 --- a/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-leading.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Binary-integer-literal-like sequence with a leading 0 -info: > +info: | BinaryIntegerLiteral :: 0b BinaryDigits 0B BinaryDigits @@ -15,7 +15,7 @@ info: > BinaryDigit :: one of 0 1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js index f8cdc73d12e8..234f928b35d3 100644 --- a/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-truncated.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Binary-integer-literal-like sequence without any digits -info: > +info: | BinaryIntegerLiteral :: 0b BinaryDigits 0B BinaryDigits @@ -15,7 +15,7 @@ info: > BinaryDigit :: one of 0 1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js b/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js index 5af887cdd47c..4dc80190e9cf 100644 --- a/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js +++ b/js/src/tests/test262/language/literals/numeric/binary-invalid-unicode.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Binary-integer-literal-like sequence expressed with unicode escape sequence -info: > +info: | BinaryIntegerLiteral :: 0b BinaryDigits 0B BinaryDigits @@ -15,7 +15,7 @@ info: > BinaryDigit :: one of 0 1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/binary.js b/js/src/tests/test262/language/literals/numeric/binary.js index a25fc2447d19..703e64bd1416 100644 --- a/js/src/tests/test262/language/literals/numeric/binary.js +++ b/js/src/tests/test262/language/literals/numeric/binary.js @@ -4,7 +4,7 @@ /*--- es6id: 11.8.3.1 description: Mathematical value of valid binary integer literals -info: > +info: | The MV of BinaryIntegerLiteral :: 0b BinaryDigits is the MV of BinaryDigits. The MV of BinaryIntegerLiteral :: 0B BinaryDigits is the MV of diff --git a/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js b/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js index 1f8de565c756..6b535bbd6b38 100644 --- a/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js +++ b/js/src/tests/test262/language/literals/numeric/legacy-octal-integer-strict-strict.js @@ -4,9 +4,9 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-additional-syntax-numeric-literals -es6id: B1.1 +esid: sec-additional-syntax-numeric-literals description: LegacyOctalIntegerLiteral is not enabled in strict mode code -info: > +info: | NumericLiteral :: DecimalLiteral BinaryIntegerLiteral @@ -19,7 +19,7 @@ info: > LegacyOctalIntegerLiteral OctalDigit flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js b/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js index 075dba601078..05fef3001907 100644 --- a/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js +++ b/js/src/tests/test262/language/literals/numeric/non-octal-decimal-integer-strict-strict.js @@ -4,9 +4,9 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-additional-syntax-numeric-literals -es6id: B1.1 +esid: sec-additional-syntax-numeric-literals description: NonOctalDecimalIntegerLiteral is not enabled in strict mode code -info: > +info: | DecimalIntegerLiteral :: 0 NonZeroDigit DecimalDigits[opt] @@ -25,7 +25,7 @@ info: > 8 9 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js index 727a64df4b6b..d856a892a796 100644 --- a/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-digit.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Octal-integer-literal-like sequence containing an invalid digit -info: > +info: | OctalIntegerLiteral :: 0o OctalDigits 0O OctalDigits @@ -15,7 +15,7 @@ info: > OctalDigit :: one of 0 1 2 3 4 5 6 7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js index 71935815ec2b..f294b385de5e 100644 --- a/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-leading.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Octal-integer-literal-like sequence with a leading 0 -info: > +info: | OctalIntegerLiteral :: 0o OctalDigits 0O OctalDigits @@ -15,7 +15,7 @@ info: > OctalDigit :: one of 0 1 2 3 4 5 6 7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js index 1ef88f8043a8..732353b31b53 100644 --- a/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-truncated.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Octal-integer-literal-like sequence without any digits -info: > +info: | OctalIntegerLiteral :: 0o OctalDigits 0O OctalDigits @@ -15,7 +15,7 @@ info: > OctalDigit :: one of 0 1 2 3 4 5 6 7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js b/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js index 4386c99d7ca8..45d5926bd646 100644 --- a/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js +++ b/js/src/tests/test262/language/literals/numeric/octal-invalid-unicode.js @@ -5,7 +5,7 @@ /*--- es6id: 11.8.3 description: Octal-integer-literal-like sequence expressed with unicode escape sequence -info: > +info: | OctalIntegerLiteral :: 0o OctalDigits 0O OctalDigits @@ -15,7 +15,7 @@ info: > OctalDigit :: one of 0 1 2 3 4 5 6 7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/numeric/octal.js b/js/src/tests/test262/language/literals/numeric/octal.js index a3935f9fa940..81fb91e43287 100644 --- a/js/src/tests/test262/language/literals/numeric/octal.js +++ b/js/src/tests/test262/language/literals/numeric/octal.js @@ -4,7 +4,7 @@ /*--- es6id: 11.8.3.1 description: Mathematical value of valid octal integer literals -info: > +info: | The MV of StrNumericLiteral ::: OctalIntegerLiteral is the MV of OctalIntegerLiteral. The MV of OctalIntegerLiteral :: 0o OctalDigits is the MV of OctalDigits. diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.1_T2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.1_T2.js index b3b482f7a52d..08383b64955f 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.1_T2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionFirstChar :: NonTerminator but not * or \ or /, RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty] es5id: 7.8.5_A1.1_T2 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T1.js index 3745d5f9c431..ca5426a63cba 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T1.js @@ -15,7 +15,7 @@ info: | description: > The first character of a regular expression may not be "*" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T2.js index 1be3dbd3fd62..0414188f8911 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T2.js @@ -18,7 +18,7 @@ info: | description: > The first character of a regular expression may not be "\" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T3.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T3.js index 9587a0407f1c..abaf9ee7f26f 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T3.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T3.js @@ -18,7 +18,7 @@ info: | description: > The first character of a regular expression may not be "/" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T4.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T4.js index 984a329cc295..d544c739f9b1 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T4.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.2_T4.js @@ -18,7 +18,7 @@ info: | description: A regular expression may not be empty. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T1.js index 4053993fd9a0..5990953cc274 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T1.js @@ -21,7 +21,7 @@ info: | description: > The first character of a regular expression may not be a (\u000A) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T3.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T3.js index c7db2121ceb0..6947abee7471 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T3.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.3_T3.js @@ -21,7 +21,7 @@ info: | description: > The first character of a regular expression may not be a , (\u000D) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T1.js index 37df0537cfa0..39c6b4a88667 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionFirstChar :: BackslashSequence :: \NonTerminator, RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty] es5id: 7.8.5_A1.4_T1 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T2.js index ef4a2bbc9647..528e414400e9 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionFirstChar :: BackslashSequence :: \NonTerminator, RegularExpressionChars :: [empty], RegularExpressionFlags :: [empty] es5id: 7.8.5_A1.4_T2 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T1.js index 439e6f731ac9..949cf8a90e7f 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T1.js @@ -15,7 +15,7 @@ description: > A RegularExpressionBackslashSequence may not contain a negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T3.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T3.js index 78c5fc087556..c422c39bc831 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T3.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A1.5_T3.js @@ -14,7 +14,7 @@ info: | description: > A RegularExpressionBackslashSequence may not contain a negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T1.js index ab4c42f2241d..956ca5b562f4 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionChar :: NonTerminator but not \ or /, RegularExpressionFlags :: [empty] es5id: 7.8.5_A2.1_T1 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T2.js index c964c7cdee8b..d077c89fed23 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionChar :: NonTerminator but not \ or /, RegularExpressionFlags :: [empty] es5id: 7.8.5_A2.1_T2 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T1.js index 55c2593a3f72..096c9439ae60 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T1.js @@ -15,7 +15,7 @@ description: > A regular express may not contain a "\" as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T2.js index 49363b45074e..1a89bc527d12 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.2_T2.js @@ -15,7 +15,7 @@ description: > A regular expression may not contain a "/" as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T1.js index c5dd001d4b20..0c1c3e75cdc4 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T1.js @@ -24,7 +24,7 @@ info: | description: > A regular expression may not contain a as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T3.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T3.js index 8a88a2dd4dc6..eaa3c39478d2 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T3.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.3_T3.js @@ -25,7 +25,7 @@ description: > A regular expression may not contain a as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T1.js index c1951ab57184..b8961e981042 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionChar :: BackslashSequence :: \NonTerminator, RegularExpressionFlags :: [empty] es5id: 7.8.5_A2.4_T1 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T2.js index 89d3c5e36e44..565997cd922d 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | RegularExpressionChar :: BackslashSequence :: \NonTerminator, RegularExpressionFlags :: [empty] es5id: 7.8.5_A2.4_T2 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T1.js index 63b8f0361318..8f6e1e8fb817 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T1.js @@ -20,7 +20,7 @@ info: | description: > A regular expression may not contain a as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T3.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T3.js index 71d7cff51d43..2103d708387c 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T3.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A2.5_T3.js @@ -20,7 +20,7 @@ info: | description: > A regular expression may not contain a as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.1.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.1.js index 347722ccf3cb..c8a76a58771f 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.1.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | A regular expression literal is an input element that is converted to a RegExp object when it is scanned es5id: 7.8.5_A4.1 diff --git a/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.2.js b/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.2.js index e9a16f0908e5..b58263a0f261 100644 --- a/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.2.js +++ b/js/src/tests/test262/language/literals/regexp/S7.8.5_A4.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Two regular expression literals in a program evaluate to regular expression objects that never compare as === to each other even if the two literals' contents are identical diff --git a/js/src/tests/test262/language/literals/regexp/early-err-bad-flag.js b/js/src/tests/test262/language/literals/regexp/early-err-bad-flag.js index 170f444924b8..5cb58fcfca1f 100644 --- a/js/src/tests/test262/language/literals/regexp/early-err-bad-flag.js +++ b/js/src/tests/test262/language/literals/regexp/early-err-bad-flag.js @@ -10,7 +10,7 @@ description: > It is a Syntax Error if FlagText of RegularExpressionLiteral contains any code points other than "g", "i", "m", "u", or "y", ... negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/early-err-dup-flag.js b/js/src/tests/test262/language/literals/regexp/early-err-dup-flag.js index 7a31310f6d58..481b3fb7464e 100644 --- a/js/src/tests/test262/language/literals/regexp/early-err-dup-flag.js +++ b/js/src/tests/test262/language/literals/regexp/early-err-dup-flag.js @@ -10,7 +10,7 @@ description: > It is a Syntax Error if FlagText of RegularExpressionLiteral contains ... the same code point more than once. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/early-err-flags-unicode-escape.js b/js/src/tests/test262/language/literals/regexp/early-err-flags-unicode-escape.js index f55d68bd7a29..f1f60c1d9b86 100644 --- a/js/src/tests/test262/language/literals/regexp/early-err-flags-unicode-escape.js +++ b/js/src/tests/test262/language/literals/regexp/early-err-flags-unicode-escape.js @@ -10,7 +10,7 @@ info: | description: > It is a Syntax Error if IdentifierPart contains a Unicode escape sequence. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/early-err-pattern.js b/js/src/tests/test262/language/literals/regexp/early-err-pattern.js index 857aef796cc8..a1d2aa9df001 100644 --- a/js/src/tests/test262/language/literals/regexp/early-err-pattern.js +++ b/js/src/tests/test262/language/literals/regexp/early-err-pattern.js @@ -9,7 +9,7 @@ info: | description: > It is a Syntax Error if BodyText of RegularExpressionLiteral cannot be recognized using the goal symbol Pattern of the ECMAScript RegExp grammar specified in #sec-patterns. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-exact.js b/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-exact.js index 0d632b3a42dc..230918ae0c3f 100644 --- a/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-exact.js +++ b/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-exact.js @@ -17,7 +17,7 @@ info: | pattern with a higher precedence. This makes the SyntaxError for such patterns consistent between Annex-B and non-Annex-B environments. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-lower.js b/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-lower.js index bc7c6cde3b78..f0e3547340ab 100644 --- a/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-lower.js +++ b/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-lower.js @@ -17,7 +17,7 @@ info: | pattern with a higher precedence. This makes the SyntaxError for such patterns consistent between Annex-B and non-Annex-B environments. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-range.js b/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-range.js index 03ef4f777b18..abe17b8da407 100644 --- a/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-range.js +++ b/js/src/tests/test262/language/literals/regexp/invalid-braced-quantifier-range.js @@ -17,7 +17,7 @@ info: | pattern with a higher precedence. This makes the SyntaxError for such patterns consistent between Annex-B and non-Annex-B environments. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator-eval.js b/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator-eval.js index 4120fb69fcfb..67f7efaaa852 100644 --- a/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator-eval.js +++ b/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator-eval.js @@ -5,7 +5,7 @@ esid: sec-unicode-format-control-characters description: > Mongolian Vowel Separator can appear in regular expression literals (eval code). -info: > +info: | 11.1 Unicode Format-Control Characters The Unicode format-control characters (i.e., the characters in category “Cf” diff --git a/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator.js b/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator.js index 17e4d3dca0f7..d34c22c09fb9 100644 --- a/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator.js +++ b/js/src/tests/test262/language/literals/regexp/mongolian-vowel-separator.js @@ -5,7 +5,7 @@ esid: sec-unicode-format-control-characters description: > Mongolian Vowel Separator can appear in regular expression literals. -info: > +info: | 11.1 Unicode Format-Control Characters The Unicode format-control characters (i.e., the characters in category “Cf” diff --git a/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-line-separator.js b/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-line-separator.js index 383746ae87ce..0cf5d7b57156 100644 --- a/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-line-separator.js +++ b/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-line-separator.js @@ -21,7 +21,7 @@ info: | description: > The first character of a regular expression may not be a negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-paragraph-separator.js b/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-paragraph-separator.js index eb53da716e62..e398b6fc8fcd 100644 --- a/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-paragraph-separator.js +++ b/js/src/tests/test262/language/literals/regexp/regexp-first-char-no-paragraph-separator.js @@ -21,7 +21,7 @@ info: | description: > The first character of a regular expression may not be a negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-line-separator.js b/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-line-separator.js index 5e78d7af24cb..b101287bc7be 100644 --- a/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-line-separator.js +++ b/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-line-separator.js @@ -20,7 +20,7 @@ info: | description: > A regular expression may not contain a as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-paragraph-separator.js b/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-paragraph-separator.js index ff26b2b879f2..a82a6a812322 100644 --- a/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-paragraph-separator.js +++ b/js/src/tests/test262/language/literals/regexp/regexp-source-char-no-paragraph-separator.js @@ -21,7 +21,7 @@ info: | description: > A regular expression may not contain a as a SourceCharacter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-astral.js b/js/src/tests/test262/language/literals/regexp/u-astral.js index 687f89185300..70ab2b3cc64d 100644 --- a/js/src/tests/test262/language/literals/regexp/u-astral.js +++ b/js/src/tests/test262/language/literals/regexp/u-astral.js @@ -4,7 +4,7 @@ /*--- description: Literal astral symbols within a pattern es6id: 21.2.2.8.2 -info: > +info: | 21.2.2.2 Pattern The production Pattern :: Disjunction evaluates as follows: diff --git a/js/src/tests/test262/language/literals/regexp/u-case-mapping.js b/js/src/tests/test262/language/literals/regexp/u-case-mapping.js index c2a72e7e252f..2ac4e2d64fdd 100644 --- a/js/src/tests/test262/language/literals/regexp/u-case-mapping.js +++ b/js/src/tests/test262/language/literals/regexp/u-case-mapping.js @@ -4,7 +4,7 @@ /*--- description: Case mapping of astral symbols es6id: 21.2.2.8.2 -info: > +info: | 21.2.2.8.2 Runtime Semantics: Canonicalize ( ch ) The abstract operation Canonicalize takes a character parameter ch and diff --git a/js/src/tests/test262/language/literals/regexp/u-dec-esc.js b/js/src/tests/test262/language/literals/regexp/u-dec-esc.js index 430976ead8a8..bef448067884 100644 --- a/js/src/tests/test262/language/literals/regexp/u-dec-esc.js +++ b/js/src/tests/test262/language/literals/regexp/u-dec-esc.js @@ -4,12 +4,12 @@ /*--- description: DecimalEscape used with `u` flag -info: > +info: | DecimalEscape is not allowed when the `u` flag is set (regardless of Annex B extensions--see ES6 section B.1.4). es6id: 21.2.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-class-escape.js b/js/src/tests/test262/language/literals/regexp/u-invalid-class-escape.js index 522914ac1abf..0d98a1cc30d4 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-class-escape.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-class-escape.js @@ -15,7 +15,7 @@ info: | The `u` flag precludes the Annex B extension that enables this pattern. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-extended-pattern-char.js b/js/src/tests/test262/language/literals/regexp/u-invalid-extended-pattern-char.js index 73b3290cf9cc..8f175138834c 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-extended-pattern-char.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-extended-pattern-char.js @@ -12,7 +12,7 @@ info: | Term[U] :: [~U] ExtendedAtom negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-identity-escape.js b/js/src/tests/test262/language/literals/regexp/u-invalid-identity-escape.js index f2978d45e6e0..1e36711b2af6 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-identity-escape.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-identity-escape.js @@ -14,7 +14,7 @@ info: | The `u` flag precludes the use of characters in UnicodeIDContinue irrespective of the presence of Annex B extensions. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-legacy-octal-escape.js b/js/src/tests/test262/language/literals/regexp/u-invalid-legacy-octal-escape.js index f1237c110b8c..060ee4c7757c 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-legacy-octal-escape.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-legacy-octal-escape.js @@ -17,7 +17,7 @@ info: | RegExpUnicodeEscapeSequence[?U] IdentityEscape[?U] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js index 8d20ccb92aee..bb74629406c8 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a.js @@ -24,7 +24,7 @@ info: | The `u` flag precludes the Annex B extension that enables this pattern. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js index e25af0cbbc3f..9cf13d8834c6 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab.js @@ -24,7 +24,7 @@ info: | The `u` flag precludes the Annex B extension that enables this pattern. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js index 00ded9f59bf0..ea5d519b91c9 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b.js @@ -24,7 +24,7 @@ info: | The `u` flag precludes the Annex B extension that enables this pattern. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges.js b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges.js index dc7e27b5fc85..0b7283b83814 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-non-empty-class-ranges.js @@ -23,7 +23,7 @@ info: | The `u` flag precludes the Annex B extension that enables this pattern. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-oob-decimal-escape.js b/js/src/tests/test262/language/literals/regexp/u-invalid-oob-decimal-escape.js index 134eea005ba7..bd4e8937498d 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-oob-decimal-escape.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-oob-decimal-escape.js @@ -12,7 +12,7 @@ info: | When the "unicode" flag is set, this algorithm is honored irrespective of the presence of Annex B extensions. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-invalid-quantifiable-assertion.js b/js/src/tests/test262/language/literals/regexp/u-invalid-quantifiable-assertion.js index aa788ef2bb99..cbaab6356d78 100644 --- a/js/src/tests/test262/language/literals/regexp/u-invalid-quantifiable-assertion.js +++ b/js/src/tests/test262/language/literals/regexp/u-invalid-quantifiable-assertion.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-regular-expressions-patterns -es6id: B1.4 +es6id: B.1.4 description: Quantifiable assertions disallowed with `u` flag info: | The `u` flag precludes quantifiable assertions (even when Annex B is @@ -12,7 +12,7 @@ info: | Term[U] :: [~U] QuantifiableAssertion Quantifier negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-surrogate-pairs.js b/js/src/tests/test262/language/literals/regexp/u-surrogate-pairs.js index 7e1ae519cc50..ae24eab16e53 100644 --- a/js/src/tests/test262/language/literals/regexp/u-surrogate-pairs.js +++ b/js/src/tests/test262/language/literals/regexp/u-surrogate-pairs.js @@ -4,7 +4,7 @@ /*--- description: Out-of-range value of hexadecimal digits in UnicodeEscapeSequence es6id: 21.2.2.10 -info: > +info: | 21.2.2.10 CharacterEscape The production RegExpUnicodeEscapeSequence :: u LeadSurrogate \u diff --git a/js/src/tests/test262/language/literals/regexp/u-unicode-esc-bounds.js b/js/src/tests/test262/language/literals/regexp/u-unicode-esc-bounds.js index 3fa1fd4968c7..6c85c7d86557 100644 --- a/js/src/tests/test262/language/literals/regexp/u-unicode-esc-bounds.js +++ b/js/src/tests/test262/language/literals/regexp/u-unicode-esc-bounds.js @@ -5,14 +5,14 @@ /*--- description: Out-of-range value of hexadecimal digits in UnicodeEscapeSequence es6id: 21.2.1.1 -info: > +info: | 21.2.1.1 Static Semantics: Early Errors RegExpUnicodeEscapeSequence :: u{ HexDigits } - It is a Syntax Error if the MV of HexDigits > 1114111. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-unicode-esc-non-hex.js b/js/src/tests/test262/language/literals/regexp/u-unicode-esc-non-hex.js index 1c02f100f0a1..5194ba04a9af 100644 --- a/js/src/tests/test262/language/literals/regexp/u-unicode-esc-non-hex.js +++ b/js/src/tests/test262/language/literals/regexp/u-unicode-esc-non-hex.js @@ -7,7 +7,7 @@ description: > Non-hexadecimal value within the delimiters of a UnicodeEscapeSequence es6id: 21.2.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/regexp/u-unicode-esc.js b/js/src/tests/test262/language/literals/regexp/u-unicode-esc.js index 7ba53bf1a74f..59844d563922 100644 --- a/js/src/tests/test262/language/literals/regexp/u-unicode-esc.js +++ b/js/src/tests/test262/language/literals/regexp/u-unicode-esc.js @@ -4,7 +4,7 @@ /*--- description: Unicode escape interpreted as the Mathematical Value of HexDigits es6id: 21.2.2.10 -info: > +info: | 21.2.2.10 CharacterEscape The production RegExpUnicodeEscapeSequence :: u{ HexDigits } evaluates as diff --git a/js/src/tests/test262/language/literals/regexp/y-assertion-start.js b/js/src/tests/test262/language/literals/regexp/y-assertion-start.js index a1ab42992e99..9f7288af9f88 100644 --- a/js/src/tests/test262/language/literals/regexp/y-assertion-start.js +++ b/js/src/tests/test262/language/literals/regexp/y-assertion-start.js @@ -4,7 +4,7 @@ esid: sec-assertion es6id: 21.2.2.6 description: The `y` flag has no effect on the `^` assertion -info: > +info: | Even when the y flag is used with a pattern, ^ always matches only at the beginning of Input, or (if Multiline is true) at the beginning of a line. ---*/ diff --git a/js/src/tests/test262/language/literals/string/7.8.4-1gs-strict.js b/js/src/tests/test262/language/literals/string/7.8.4-1gs-strict.js index d409b71caadd..1581dc92ebe8 100644 --- a/js/src/tests/test262/language/literals/string/7.8.4-1gs-strict.js +++ b/js/src/tests/test262/language/literals/string/7.8.4-1gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - OctalEscapeSequence(\0110) is forbidden in strict mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T1.js b/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T1.js index 681fd99aad78..c83f8037e4d9 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T1.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T1.js @@ -9,7 +9,7 @@ description: > DoubleStringCharacter :: SourceCharacter but not double-quote " or LineTerminator negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T2.js b/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T2.js index 695b8fd8635e..53b100ebac51 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T2.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A1.1_T2.js @@ -9,7 +9,7 @@ description: > DoubleStringCharacter :: SourceCharacter but not double-quote " or LineTerminator negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T1.js b/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T1.js index 0084e088e0e8..769c738e4dba 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T1.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T1.js @@ -9,7 +9,7 @@ description: > SingleStringCharacter :: SourceCharacter but not single-quote ' or LineTerminator negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T2.js b/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T2.js index 42489edd9cff..f87049374644 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T2.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A1.2_T2.js @@ -9,7 +9,7 @@ description: > SingleStringCharacter :: SourceCharacter but not single-quote ' or LineTerminator negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T1.js b/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T1.js index f2db816943fe..610928482feb 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T1.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T1.js @@ -7,7 +7,7 @@ info: "StringLiteral :: \"\\\" or '\\' is not correct" es5id: 7.8.4_A3.1_T1 description: Checking if execution of "\" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T2.js b/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T2.js index 2d3a23d942e1..a38e6e1901c9 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T2.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A3.1_T2.js @@ -7,7 +7,7 @@ info: "StringLiteral :: \"\\\" or '\\' is not correct" es5id: 7.8.4_A3.1_T2 description: Checking if execution of "'\'" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T1.js b/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T1.js index be68b875dcdd..0d3a779e0f02 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T1.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T1.js @@ -7,7 +7,7 @@ info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct" es5id: 7.8.4_A3.2_T1 description: Checking if execution of "\\\" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T2.js b/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T2.js index 022ab424dc27..c857710fab2c 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T2.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A3.2_T2.js @@ -7,7 +7,7 @@ info: "StringLiteral :: \"\\\\\\\" or '\\\\\\' is not correct" es5id: 7.8.4_A3.2_T2 description: Checking if execution of '\\\' fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T1-strict.js b/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T1-strict.js index f63d2258db9b..26678d950577 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T1-strict.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T1-strict.js @@ -8,7 +8,7 @@ info: NonEscapeSequence is not EscapeCharacter es5id: 7.8.4_A4.3_T1 description: "EscapeCharacter :: DecimalDigits :: 1" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T2-strict.js b/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T2-strict.js index ad9350309258..090be1ee1f2b 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T2-strict.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A4.3_T2-strict.js @@ -8,7 +8,7 @@ info: NonEscapeSequence is not EscapeCharacter es5id: 7.8.4_A4.3_T2 description: "EscapeCharacter :: DecimalDigits :: 7" negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T1.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T1.js index f2361b7a34c8..f467eb891b61 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T1.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit es5id: 7.8.4_A7.1_T1 diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T2.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T2.js index 3771a8325813..485d26d670b2 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T2.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit es5id: 7.8.4_A7.1_T2 diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T3.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T3.js index a23387491e4e..9a6035cd3b41 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T3.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit es5id: 7.8.4_A7.1_T3 diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T4.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T4.js index d4300dd45310..26490fe243c4 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T4.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.1_T4.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | EscapeSequence :: UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit es5id: 7.8.4_A7.1_T4 description: "UnicodeEscapeSequence :: u000G is incorrect" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T1.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T1.js index 2c09d1847e09..ee06e2c1314b 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T1.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T1.js @@ -7,7 +7,7 @@ info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect es5id: 7.8.4_A7.2_T1 description: ":: HexDigit :: 1" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T2.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T2.js index a6daa9697b3e..842c65dbfff8 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T2.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T2.js @@ -7,7 +7,7 @@ info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect es5id: 7.8.4_A7.2_T2 description: ":: HexDigit :: A" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T3.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T3.js index 3017d5096fe3..fef98e7aa1d0 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T3.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T3.js @@ -7,7 +7,7 @@ info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect es5id: 7.8.4_A7.2_T3 description: ":: HexDigit :: 1" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T4.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T4.js index 6133af11a9c9..36096212a4de 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T4.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T4.js @@ -7,7 +7,7 @@ info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect es5id: 7.8.4_A7.2_T4 description: ":: HexDigit :: A" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T5.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T5.js index b249c4d602be..6636e19f4d6a 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T5.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T5.js @@ -7,7 +7,7 @@ info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect es5id: 7.8.4_A7.2_T5 description: ":: HexDigit :: 1" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T6.js b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T6.js index 4573b9735cd8..9601d296b5db 100644 --- a/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T6.js +++ b/js/src/tests/test262/language/literals/string/S7.8.4_A7.2_T6.js @@ -7,7 +7,7 @@ info: "UnicodeEscapeSequence :: u HexDigit (one, two or three time) is incorrect es5id: 7.8.4_A7.2_T6 description: ":: HexDigit :: A" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/legacy-non-octal-escape-sequence-strict-strict.js b/js/src/tests/test262/language/literals/string/legacy-non-octal-escape-sequence-strict-strict.js index f5f273ac0cff..c73100e5b2b5 100644 --- a/js/src/tests/test262/language/literals/string/legacy-non-octal-escape-sequence-strict-strict.js +++ b/js/src/tests/test262/language/literals/string/legacy-non-octal-escape-sequence-strict-strict.js @@ -4,11 +4,11 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-additional-syntax-string-literals -es6id: B1.2 +es6id: B.1.2 description: > LegacyOctalEscapeSequence is not enabled in strict mode code (regardless of the presence of Annex B) -info: > +info: | EscapeSequence :: CharacterEscapeSequence LegacyOctalEscapeSequence @@ -31,7 +31,7 @@ info: > parsing TemplateCharacter. flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/legacy-octal-escape-sequence-strict-strict.js b/js/src/tests/test262/language/literals/string/legacy-octal-escape-sequence-strict-strict.js index 7e4f14ce648b..d35d151358dd 100644 --- a/js/src/tests/test262/language/literals/string/legacy-octal-escape-sequence-strict-strict.js +++ b/js/src/tests/test262/language/literals/string/legacy-octal-escape-sequence-strict-strict.js @@ -4,11 +4,11 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-additional-syntax-string-literals -es6id: B1.2 +es6id: B.1.2 description: > LegacyOctalEscapeSequence is not enabled in strict mode code (regardless of the presence of Annex B) -info: > +info: | EscapeSequence :: CharacterEscapeSequence LegacyOctalEscapeSequence @@ -31,7 +31,7 @@ info: > parsing TemplateCharacter. flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/literals/string/mongolian-vowel-separator-eval.js b/js/src/tests/test262/language/literals/string/mongolian-vowel-separator-eval.js index d43e1eeb53e6..18dfeb32d8c8 100644 --- a/js/src/tests/test262/language/literals/string/mongolian-vowel-separator-eval.js +++ b/js/src/tests/test262/language/literals/string/mongolian-vowel-separator-eval.js @@ -5,7 +5,7 @@ esid: sec-unicode-format-control-characters description: > Mongolian Vowel Separator can appear in string literals (eval code). -info: > +info: | 11.1 Unicode Format-Control Characters The Unicode format-control characters (i.e., the characters in category “Cf” diff --git a/js/src/tests/test262/language/literals/string/mongolian-vowel-separator.js b/js/src/tests/test262/language/literals/string/mongolian-vowel-separator.js index 871b78be87ac..7e4a99c81589 100644 --- a/js/src/tests/test262/language/literals/string/mongolian-vowel-separator.js +++ b/js/src/tests/test262/language/literals/string/mongolian-vowel-separator.js @@ -5,7 +5,7 @@ esid: sec-unicode-format-control-characters description: > Mongolian Vowel Separator can appear in string literals. -info: > +info: | 11.1 Unicode Format-Control Characters The Unicode format-control characters (i.e., the characters in category “Cf” diff --git a/js/src/tests/test262/language/module-code/comment-multi-line-html-close.js b/js/src/tests/test262/language/module-code/comment-multi-line-html-close.js index f54814698caf..ae4c29f3bf36 100644 --- a/js/src/tests/test262/language/module-code/comment-multi-line-html-close.js +++ b/js/src/tests/test262/language/module-code/comment-multi-line-html-close.js @@ -6,9 +6,9 @@ description: > HTML-like comments are not available in module code (MultiLineHTMLCloseComment) esid: sec-html-like-comments -es6id: B1.3 +esid: sec-html-like-comments negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/comment-single-line-html-close.js b/js/src/tests/test262/language/module-code/comment-single-line-html-close.js index 956c54ec56c8..198c8e3caa7f 100644 --- a/js/src/tests/test262/language/module-code/comment-single-line-html-close.js +++ b/js/src/tests/test262/language/module-code/comment-single-line-html-close.js @@ -6,9 +6,9 @@ description: > HTML-like comments are not available in module code (SingleLineHTMLCloseComment) esid: sec-html-like-comments -es6id: B1.3 +esid: sec-html-like-comments negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/comment-single-line-html-open.js b/js/src/tests/test262/language/module-code/comment-single-line-html-open.js index c8e0fe665000..7cc240ebed63 100644 --- a/js/src/tests/test262/language/module-code/comment-single-line-html-open.js +++ b/js/src/tests/test262/language/module-code/comment-single-line-html-open.js @@ -6,9 +6,9 @@ description: > HTML-like comments are not available in module code (SingleLineHTMLOpenComment) esid: sec-html-like-comments -es6id: B1.3 +esid: sec-html-like-comments negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-export-decl.js b/js/src/tests/test262/language/module-code/early-dup-export-decl.js index eb862307eb67..223b4bb8b9a8 100644 --- a/js/src/tests/test262/language/module-code/early-dup-export-decl.js +++ b/js/src/tests/test262/language/module-code/early-dup-export-decl.js @@ -8,7 +8,7 @@ description: > duplicate entries. flags: [module] negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-export-dflt-id.js b/js/src/tests/test262/language/module-code/early-dup-export-dflt-id.js index 0b88e2364e98..ea7b11d3a248 100644 --- a/js/src/tests/test262/language/module-code/early-dup-export-dflt-id.js +++ b/js/src/tests/test262/language/module-code/early-dup-export-dflt-id.js @@ -9,7 +9,7 @@ description: > duplicate entries. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-export-dflt.js b/js/src/tests/test262/language/module-code/early-dup-export-dflt.js index 3c3a6e29338c..bfb360acff07 100644 --- a/js/src/tests/test262/language/module-code/early-dup-export-dflt.js +++ b/js/src/tests/test262/language/module-code/early-dup-export-dflt.js @@ -8,7 +8,7 @@ description: > duplicate entries. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-export-id-as.js b/js/src/tests/test262/language/module-code/early-dup-export-id-as.js index 2e471f6be391..659f9c8b336e 100644 --- a/js/src/tests/test262/language/module-code/early-dup-export-id-as.js +++ b/js/src/tests/test262/language/module-code/early-dup-export-id-as.js @@ -8,7 +8,7 @@ description: > duplicate entries. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-export-id.js b/js/src/tests/test262/language/module-code/early-dup-export-id.js index 9f6696a68034..73ae8ecbe947 100644 --- a/js/src/tests/test262/language/module-code/early-dup-export-id.js +++ b/js/src/tests/test262/language/module-code/early-dup-export-id.js @@ -8,7 +8,7 @@ description: > duplicate entries. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-lables.js b/js/src/tests/test262/language/module-code/early-dup-lables.js index f33cc0a1eca9..46518d2372ce 100644 --- a/js/src/tests/test262/language/module-code/early-dup-lables.js +++ b/js/src/tests/test262/language/module-code/early-dup-lables.js @@ -8,7 +8,7 @@ description: > argument « » is true. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-dup-lex.js b/js/src/tests/test262/language/module-code/early-dup-lex.js index f18bc1262d28..16ff588e6879 100644 --- a/js/src/tests/test262/language/module-code/early-dup-lex.js +++ b/js/src/tests/test262/language/module-code/early-dup-lex.js @@ -9,7 +9,7 @@ description: > flags: [module] features: [let, const] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-export-global.js b/js/src/tests/test262/language/module-code/early-export-global.js index 8e6d8e39d188..e00fdc9ef5b0 100644 --- a/js/src/tests/test262/language/module-code/early-export-global.js +++ b/js/src/tests/test262/language/module-code/early-export-global.js @@ -5,13 +5,13 @@ esid: sec-module-semantics-static-semantics-early-errors es6id: 15.2.1.1 description: Exporting a global binding -info: > +info: | It is a Syntax Error if any element of the ExportedBindings of ModuleItemList does not also occur in either the VarDeclaredNames of ModuleItemList, or the LexicallyDeclaredNames of ModuleItemList. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-export-unresolvable.js b/js/src/tests/test262/language/module-code/early-export-unresolvable.js index a3ed4f5ff47e..a77acd07ad37 100644 --- a/js/src/tests/test262/language/module-code/early-export-unresolvable.js +++ b/js/src/tests/test262/language/module-code/early-export-unresolvable.js @@ -9,7 +9,7 @@ description: > ModuleItemList, or the LexicallyDeclaredNames of ModuleItemList. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-import-arguments.js b/js/src/tests/test262/language/module-code/early-import-arguments.js index 9c24122057e2..6a9410d28c91 100644 --- a/js/src/tests/test262/language/module-code/early-import-arguments.js +++ b/js/src/tests/test262/language/module-code/early-import-arguments.js @@ -20,7 +20,7 @@ info: | in strict mode code and the StringValue of Identifier is "arguments" or "eval". negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/early-import-as-arguments.js b/js/src/tests/test262/language/module-code/early-import-as-arguments.js index acf6a22b3588..b762515b8a33 100644 --- a/js/src/tests/test262/language/module-code/early-import-as-arguments.js +++ b/js/src/tests/test262/language/module-code/early-import-as-arguments.js @@ -20,7 +20,7 @@ info: | in strict mode code and the StringValue of Identifier is "arguments" or "eval". negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/early-import-as-eval.js b/js/src/tests/test262/language/module-code/early-import-as-eval.js index 586e5cfcbf79..90f4af69f5fe 100644 --- a/js/src/tests/test262/language/module-code/early-import-as-eval.js +++ b/js/src/tests/test262/language/module-code/early-import-as-eval.js @@ -20,7 +20,7 @@ info: | in strict mode code and the StringValue of Identifier is "arguments" or "eval". negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/early-import-eval.js b/js/src/tests/test262/language/module-code/early-import-eval.js index becc30ca84d1..8e2cdda7ac8f 100644 --- a/js/src/tests/test262/language/module-code/early-import-eval.js +++ b/js/src/tests/test262/language/module-code/early-import-eval.js @@ -20,7 +20,7 @@ info: | in strict mode code and the StringValue of Identifier is "arguments" or "eval". negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/early-lex-and-var.js b/js/src/tests/test262/language/module-code/early-lex-and-var.js index f409d8bc27b7..6a406949aad5 100644 --- a/js/src/tests/test262/language/module-code/early-lex-and-var.js +++ b/js/src/tests/test262/language/module-code/early-lex-and-var.js @@ -9,7 +9,7 @@ description: > flags: [module] features: [let] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-new-target.js b/js/src/tests/test262/language/module-code/early-new-target.js index 71e1d55482a4..26395efa16ab 100644 --- a/js/src/tests/test262/language/module-code/early-new-target.js +++ b/js/src/tests/test262/language/module-code/early-new-target.js @@ -7,7 +7,7 @@ description: > It is a Syntax Error if ModuleItemList Contains NewTarget flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-strict-mode.js b/js/src/tests/test262/language/module-code/early-strict-mode.js index c30870d0ff2a..ab6d0d0d3fd2 100644 --- a/js/src/tests/test262/language/module-code/early-strict-mode.js +++ b/js/src/tests/test262/language/module-code/early-strict-mode.js @@ -7,7 +7,7 @@ es6id: 10.2.1 esid: sec-strict-mode-code flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-super.js b/js/src/tests/test262/language/module-code/early-super.js index b82d0d30c4bf..0ae7730a87a7 100644 --- a/js/src/tests/test262/language/module-code/early-super.js +++ b/js/src/tests/test262/language/module-code/early-super.js @@ -7,7 +7,7 @@ description: > It is a Syntax Error if ModuleItemList Contains super. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-undef-break.js b/js/src/tests/test262/language/module-code/early-undef-break.js index 3b6ee6873369..e67936c7a407 100644 --- a/js/src/tests/test262/language/module-code/early-undef-break.js +++ b/js/src/tests/test262/language/module-code/early-undef-break.js @@ -8,7 +8,7 @@ description: > argument « » is true. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/early-undef-continue.js b/js/src/tests/test262/language/module-code/early-undef-continue.js index 39a3234e6980..12e2d7b14c86 100644 --- a/js/src/tests/test262/language/module-code/early-undef-continue.js +++ b/js/src/tests/test262/language/module-code/early-undef-continue.js @@ -8,7 +8,7 @@ description: > with arguments « » and « » is true. flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/instn-resolve-empty-export.js b/js/src/tests/test262/language/module-code/instn-resolve-empty-export.js index 687b7bf39e49..13f4e55e253d 100644 --- a/js/src/tests/test262/language/module-code/instn-resolve-empty-export.js +++ b/js/src/tests/test262/language/module-code/instn-resolve-empty-export.js @@ -31,7 +31,7 @@ info: | { ExportsList } { ExportsList , } negative: - phase: early + phase: resolution type: ReferenceError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/instn-resolve-empty-import.js b/js/src/tests/test262/language/module-code/instn-resolve-empty-import.js index 9e2594e6c62e..b08eb8234748 100644 --- a/js/src/tests/test262/language/module-code/instn-resolve-empty-import.js +++ b/js/src/tests/test262/language/module-code/instn-resolve-empty-import.js @@ -37,7 +37,7 @@ info: | { ImportsList } { ImportsList , } negative: - phase: early + phase: resolution type: ReferenceError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/instn-resolve-err-reference.js b/js/src/tests/test262/language/module-code/instn-resolve-err-reference.js index 32f5117c723c..d77637a8274e 100644 --- a/js/src/tests/test262/language/module-code/instn-resolve-err-reference.js +++ b/js/src/tests/test262/language/module-code/instn-resolve-err-reference.js @@ -12,7 +12,7 @@ info: | b. Let requiredModule be ? HostResolveImportedModule(module, required). [...] negative: - phase: early + phase: resolution type: ReferenceError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/instn-resolve-err-syntax.js b/js/src/tests/test262/language/module-code/instn-resolve-err-syntax.js index 22428f6169fe..a8a2ef590358 100644 --- a/js/src/tests/test262/language/module-code/instn-resolve-err-syntax.js +++ b/js/src/tests/test262/language/module-code/instn-resolve-err-syntax.js @@ -12,7 +12,7 @@ info: | b. Let requiredModule be ? HostResolveImportedModule(module, required). [...] negative: - phase: early + phase: resolution type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/instn-resolve-order-depth.js b/js/src/tests/test262/language/module-code/instn-resolve-order-depth.js index 06cd663fb042..17ccbe328342 100644 --- a/js/src/tests/test262/language/module-code/instn-resolve-order-depth.js +++ b/js/src/tests/test262/language/module-code/instn-resolve-order-depth.js @@ -5,7 +5,7 @@ description: Module dependencies are resolved following a depth-first strategy esid: sec-moduledeclarationinstantiation negative: - phase: early + phase: resolution type: ReferenceError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/instn-resolve-order-src.js b/js/src/tests/test262/language/module-code/instn-resolve-order-src.js index cbb12f14db2b..94ad1b3436c4 100644 --- a/js/src/tests/test262/language/module-code/instn-resolve-order-src.js +++ b/js/src/tests/test262/language/module-code/instn-resolve-order-src.js @@ -5,7 +5,7 @@ description: Modules dependencies are resolved in source text order esid: sec-moduledeclarationinstantiation negative: - phase: early + phase: resolution type: ReferenceError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/namespace/Symbol.toStringTag.js b/js/src/tests/test262/language/module-code/namespace/Symbol.toStringTag.js index 57851512473a..f0f2648efff8 100644 --- a/js/src/tests/test262/language/module-code/namespace/Symbol.toStringTag.js +++ b/js/src/tests/test262/language/module-code/namespace/Symbol.toStringTag.js @@ -6,7 +6,7 @@ es6id: 26.3.1 esid: sec-@@tostringtag description: > `Symbol.toStringTag` property descriptor -info: > +info: | The initial value of the @@toStringTag property is the String value "Module". diff --git a/js/src/tests/test262/language/module-code/namespace/internals/enumerate-binding-uninit.js b/js/src/tests/test262/language/module-code/namespace/internals/enumerate-binding-uninit.js new file mode 100644 index 000000000000..ee8107ebc451 --- /dev/null +++ b/js/src/tests/test262/language/module-code/namespace/internals/enumerate-binding-uninit.js @@ -0,0 +1,45 @@ +// |reftest| module +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-enumerate-object-properties +description: > + Test for-in enumeration with uninitialized binding. +info: | + 13.7.5.15 EnumerateObjectProperties (O) + ... + EnumerateObjectProperties must obtain the own property keys of the + target object by calling its [[OwnPropertyKeys]] internal method. + Property attributes of the target object must be obtained by + calling its [[GetOwnProperty]] internal method. + + 9.4.6.4 [[GetOwnProperty]] (P) + ... + 4. Let value be ? O.[[Get]](P, O). + ... + + 9.4.6.7 [[Get]] (P, Receiver) + ... + 12. Let targetEnvRec be targetEnv's EnvironmentRecord. + 13. Return ? targetEnvRec.GetBindingValue(binding.[[BindingName]], true). + + 8.1.1.1.6 GetBindingValue ( N, S ) + ... + If the binding for N in envRec is an uninitialized binding, throw a ReferenceError exception. + ... + +flags: [module] +---*/ + +import* as self from "./enumerate-binding-uninit.js"; + +assert.throws(ReferenceError, function() { + for (var key in self) { + throw new Test262Error(); + } +}); + +export default 0; + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/module-code/namespace/internals/object-hasOwnProperty-binding-uninit.js b/js/src/tests/test262/language/module-code/namespace/internals/object-hasOwnProperty-binding-uninit.js new file mode 100644 index 000000000000..8d496b756cf7 --- /dev/null +++ b/js/src/tests/test262/language/module-code/namespace/internals/object-hasOwnProperty-binding-uninit.js @@ -0,0 +1,45 @@ +// |reftest| module +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.prototype.hasownproperty +description: > + Test Object.prototype.hasOwnProperty() with uninitialized binding. +info: | + 19.1.3.2 Object.prototype.hasOwnProperty ( V ) + ... + 3. Return ? HasOwnProperty(O, P). + + 7.3.11 HasOwnProperty ( O, P ) + ... + 3. Let desc be ? O.[[GetOwnProperty]](P). + ... + + 9.4.6.4 [[GetOwnProperty]] (P) + ... + 4. Let value be ? O.[[Get]](P, O). + ... + + 9.4.6.7 [[Get]] (P, Receiver) + ... + 12. Let targetEnvRec be targetEnv's EnvironmentRecord. + 13. Return ? targetEnvRec.GetBindingValue(binding.[[BindingName]], true). + + 8.1.1.1.6 GetBindingValue ( N, S ) + ... + If the binding for N in envRec is an uninitialized binding, throw a ReferenceError exception. + ... + +flags: [module] +---*/ + +import* as self from "./object-hasOwnProperty-binding-uninit.js"; + +assert.throws(ReferenceError, function() { + Object.prototype.hasOwnProperty.call(self, "default"); +}); + +export default 0; + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/module-code/namespace/internals/object-keys-binding-uninit.js b/js/src/tests/test262/language/module-code/namespace/internals/object-keys-binding-uninit.js new file mode 100644 index 000000000000..67d9a75997f3 --- /dev/null +++ b/js/src/tests/test262/language/module-code/namespace/internals/object-keys-binding-uninit.js @@ -0,0 +1,48 @@ +// |reftest| module +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.keys +description: > + Test Object.keys() with uninitialized binding. +info: | + 19.1.2.16 Object.keys ( O ) + ... + 2. Let nameList be ? EnumerableOwnProperties(obj, "key"). + ... + + 7.3.21 EnumerableOwnProperties ( O, kind ) + ... + 4. For each element key of ownKeys in List order, do + a. If Type(key) is String, then + i. Let desc be ? O.[[GetOwnProperty]](key). + ... + + 9.4.6.4 [[GetOwnProperty]] (P) + ... + 4. Let value be ? O.[[Get]](P, O). + ... + + 9.4.6.7 [[Get]] (P, Receiver) + ... + 12. Let targetEnvRec be targetEnv's EnvironmentRecord. + 13. Return ? targetEnvRec.GetBindingValue(binding.[[BindingName]], true). + + 8.1.1.1.6 GetBindingValue ( N, S ) + ... + If the binding for N in envRec is an uninitialized binding, throw a ReferenceError exception. + ... + +flags: [module] +---*/ + +import* as self from "./object-keys-binding-uninit.js"; + +assert.throws(ReferenceError, function() { + Object.keys(self); +}); + +export default 0; + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/module-code/namespace/internals/object-propertyIsEnumerable-binding-uninit.js b/js/src/tests/test262/language/module-code/namespace/internals/object-propertyIsEnumerable-binding-uninit.js new file mode 100644 index 000000000000..be5f6ea39ec2 --- /dev/null +++ b/js/src/tests/test262/language/module-code/namespace/internals/object-propertyIsEnumerable-binding-uninit.js @@ -0,0 +1,41 @@ +// |reftest| module +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.prototype.propertyisenumerable +description: > + Test Object.prototype.propertyIsEnumerable() with uninitialized binding. +info: | + 19.1.3.4 Object.prototype.propertyIsEnumerable ( V ) + ... + 3. Let desc be ? O.[[GetOwnProperty]](P). + ... + + 9.4.6.4 [[GetOwnProperty]] (P) + ... + 4. Let value be ? O.[[Get]](P, O). + ... + + 9.4.6.7 [[Get]] (P, Receiver) + ... + 12. Let targetEnvRec be targetEnv's EnvironmentRecord. + 13. Return ? targetEnvRec.GetBindingValue(binding.[[BindingName]], true). + + 8.1.1.1.6 GetBindingValue ( N, S ) + ... + If the binding for N in envRec is an uninitialized binding, throw a ReferenceError exception. + ... + +flags: [module] +---*/ + +import* as self from "./object-propertyIsEnumerable-binding-uninit.js"; + +assert.throws(ReferenceError, function() { + Object.prototype.propertyIsEnumerable.call(self, "default"); +}); + +export default 0; + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-arrow-function.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-arrow-function.js index 3c1a45e67f7b..d9f0c017ad3a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-arrow-function.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-arrow-function.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt-list.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt-list.js index ff6c59cf17d7..1f80faa978ea 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt-list.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt-list.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt.js index 33267be066f8..f0a21eb2f638 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-block-stmt.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js index c0f3af300821..28ba8a08ded2 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth-static.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth.js index a76e9ef6e5d0..6e0596406025 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-meth.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js index 29b112420226..e99bc090ac78 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen-static.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js index 31d23ca63b79..ce366b206008 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-decl-method-gen.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js index ca1d2a654c10..248d678be74d 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen-static.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js index c0921e34cd41..91a445620ddd 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-gen.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js index d36766fc8c49..e84a8b5d47d7 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth-static.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth.js index f752860ef307..ab75074e4eda 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-class-expr-meth.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-do-while.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-do-while.js index eeff430a5f61..a7588d57b5f3 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-do-while.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-do-while.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-const.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-const.js index 021577068888..752c3a0bd712 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-const.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-const.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-const.js index c1221d856f64..b079d0cae624 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-const.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-let.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-let.js index 95fb4c3f8aa9..9506f9572efb 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-let.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-lhs.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-lhs.js index 95ad77fbac05..8287488d46c4 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-lhs.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-lhs.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-var.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-var.js index 01d204cf8d48..c5d6383aceed 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-in-var.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-let.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-let.js index e2899b6cb072..8e7d874a556c 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-let.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-lhs.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-lhs.js index f755ddc5c603..f1164f7db7ef 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-lhs.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-lhs.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-const.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-const.js index 6c776af3e95c..73828b29ece1 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-const.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-let.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-let.js index 48124402088b..fd6dc6482760 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-let.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-lhs.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-lhs.js index 736e60e15f4d..eb7414c78d2f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-lhs.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-lhs.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-var.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-var.js index 4f19dab0cdbd..df4af7d591e6 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-of-var.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-var.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-var.js index dc6660bb04c8..75fd0c348a95 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-for-var.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-decl.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-decl.js index 6a85b66e057c..a779e10f3841 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-decl.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-decl.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-expr.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-expr.js index f1d467d8eede..7e7f603cce71 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-expr.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-function-expr.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-decl.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-decl.js index 768837749253..28158a571a33 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-decl.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-decl.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-expr.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-expr.js index aa363ae63656..15669839e94b 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-expr.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-generator-expr.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-else.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-else.js index 727b63adc70a..be451d6290c1 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-else.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-else.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-if.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-if.js index 9ff3645e28a7..26120f821a9f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-if.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-if-if.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-labeled.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-labeled.js index 6b439c73fd5b..d1191a8a42f3 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-labeled.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-labeled.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-gen-method.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-gen-method.js index e4b458cfc918..df6d16e2ad9a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-gen-method.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-gen-method.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-getter.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-getter.js index ec616f8eaaf5..771480ec3af9 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-getter.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-getter.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-method.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-method.js index 1f274b674687..35467c6431a4 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-method.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-method.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-setter.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-setter.js index 6e4b4d8c363d..850ed5e87e54 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-setter.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-object-setter.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js index b67878b1fdf9..ebc96234f6a7 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case-dflt.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case.js index a8c3364ecb29..aebc18a92e1f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-case.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-dftl.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-dftl.js index d39e528900ad..05fcc587a503 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-dftl.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-switch-dftl.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch-finally.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch-finally.js index e5c1fabd59e5..b4240a751eb2 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch-finally.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch-finally.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch.js index 30a2d6f20ea5..e2e340f48d3f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-catch.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-finally.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-finally.js index d780cfd348e8..83a4e43b664a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-finally.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-finally.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-try.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-try.js index 75218c9db727..db3aa03084e7 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-try.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-try-try.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-while.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-while.js index 390b567763d0..4fb610f4f9fe 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-while.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-export-while.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `export` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-arrow-function.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-arrow-function.js index 3ffa5d18b87d..68dc71de6ff5 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-arrow-function.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-arrow-function.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt-list.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt-list.js index 3f31360c5b39..905c3ceaf5d3 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt-list.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt-list.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt.js index f8b662406d93..65a3a7b5dde4 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-block-stmt.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js index ed08a0a2d658..076bbe6c2d93 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth-static.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth.js index 35d82ccd61d3..d857ec072a9d 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-meth.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js index 806e579ed3bd..025b52da7739 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen-static.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js index b8408b4de1b1..19b27b8aafc4 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-decl-method-gen.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js index 7f1cb545ebf6..ebabeb8e575f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen-static.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js index 107efdaa02d7..f350b56b54cf 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-gen.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js index 23a1292ce721..66b51d9f1140 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth-static.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth.js index e9c5bca0ab29..7fb5ad322b89 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-class-expr-meth.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-do-while.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-do-while.js index c1e7c77b522a..34f2479fb4d4 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-do-while.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-do-while.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-const.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-const.js index 16a58919870e..13511a786332 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-const.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-const.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-const.js index 87dc71f69323..d28291b52ca0 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-const.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-let.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-let.js index 52ab6edbce9e..31f46f8c594d 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-let.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-lhs.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-lhs.js index df6c5ff7b2f5..f38a4d7ce172 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-lhs.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-lhs.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-var.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-var.js index ed8919b96fb2..bed45a80c24a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-in-var.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-let.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-let.js index bc72c884a97c..3a3b54520a08 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-let.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-lhs.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-lhs.js index a8dd041489e7..7c031fbcd272 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-lhs.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-lhs.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-const.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-const.js index ff5a761cfe9c..d4e1971cc2ab 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-const.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-let.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-let.js index d8f87a17ab33..ac1e8e57acc0 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-let.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-lhs.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-lhs.js index 844553708ac1..d8b47955f15e 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-lhs.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-lhs.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-var.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-var.js index b39407d36489..be52cb8aaa99 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-of-var.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-var.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-var.js index 6963aa6c54b8..189927fefe7c 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-for-var.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-decl.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-decl.js index 705f8f23d754..7c38063dabe2 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-decl.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-decl.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-expr.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-expr.js index 5be48415bb63..a8d44a2b3449 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-expr.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-function-expr.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-decl.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-decl.js index 9431853502ba..9acac02179c6 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-decl.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-decl.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-expr.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-expr.js index 5a27be645985..c37771fbaed6 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-expr.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-generator-expr.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-else.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-else.js index b2d5bcc4067a..dfb4f89fff6a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-else.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-else.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-if.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-if.js index 04c135159ada..99016b795650 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-if.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-if-if.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-labeled.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-labeled.js index 69242b76076e..90f0fb348e95 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-labeled.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-labeled.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-gen-method.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-gen-method.js index da86bad9f290..bda88313dc68 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-gen-method.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-gen-method.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-getter.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-getter.js index 718294aba4ba..a6fb1aa596c9 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-getter.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-getter.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-method.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-method.js index e5ffffc5f55b..98a385ed1977 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-method.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-method.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-setter.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-setter.js index 36ab278b0998..e7af2dd4b324 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-setter.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-object-setter.js @@ -5,7 +5,7 @@ description: Expression cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js index 30f44c1cf67d..a68ca3d7cc8e 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case-dflt.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case.js index 2bd2973c20b3..491d4e4760a5 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-case.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-dftl.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-dftl.js index bfb58839f8d5..a731be5e236f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-dftl.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-switch-dftl.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch-finally.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch-finally.js index 52c5b684bcf8..5fffb0593519 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch-finally.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch-finally.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch.js index 9c7aab82835a..cfe596d1cb19 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-catch.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-finally.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-finally.js index e3ebb0dcee6d..668e7da6912d 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-finally.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-finally.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-try.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-try.js index e080e09b9d88..293c056383dc 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-try.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-try-try.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-while.js b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-while.js index d87ca483fcab..0c8cd7d48983 100644 --- a/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-while.js +++ b/js/src/tests/test262/language/module-code/parse-err-decl-pos-import-while.js @@ -5,7 +5,7 @@ description: Statement cannot contain an `import` declaration esid: sec-modules negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-export-dflt-const.js b/js/src/tests/test262/language/module-code/parse-err-export-dflt-const.js index f351c81ee6f8..718a7644e341 100644 --- a/js/src/tests/test262/language/module-code/parse-err-export-dflt-const.js +++ b/js/src/tests/test262/language/module-code/parse-err-export-dflt-const.js @@ -7,7 +7,7 @@ es6id: 15.2.3 description: The default export may not be a LexicalDeclaration (const) flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-export-dflt-expr.js b/js/src/tests/test262/language/module-code/parse-err-export-dflt-expr.js index 1fc7193e07e0..93a4675fba9d 100644 --- a/js/src/tests/test262/language/module-code/parse-err-export-dflt-expr.js +++ b/js/src/tests/test262/language/module-code/parse-err-export-dflt-expr.js @@ -16,7 +16,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-export-dflt-let.js b/js/src/tests/test262/language/module-code/parse-err-export-dflt-let.js index 48a376d6f0ff..acbb0a1139c5 100644 --- a/js/src/tests/test262/language/module-code/parse-err-export-dflt-let.js +++ b/js/src/tests/test262/language/module-code/parse-err-export-dflt-let.js @@ -7,7 +7,7 @@ es6id: 15.2.3 description: The default export may not be a LexicalDeclaration (let) flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-export-dflt-var.js b/js/src/tests/test262/language/module-code/parse-err-export-dflt-var.js index f116d6852c59..0aa811eba4d3 100644 --- a/js/src/tests/test262/language/module-code/parse-err-export-dflt-var.js +++ b/js/src/tests/test262/language/module-code/parse-err-export-dflt-var.js @@ -7,7 +7,7 @@ es6id: 15.2.3 description: The default export may not be a VariableStatement flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-hoist-lex-fun.js b/js/src/tests/test262/language/module-code/parse-err-hoist-lex-fun.js index bd5d902ec03a..b0cfa716e49a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-hoist-lex-fun.js +++ b/js/src/tests/test262/language/module-code/parse-err-hoist-lex-fun.js @@ -15,7 +15,7 @@ info: | - It is a Syntax Error if any element of the LexicallyDeclaredNames of ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-hoist-lex-gen.js b/js/src/tests/test262/language/module-code/parse-err-hoist-lex-gen.js index ce2b6249b34a..5c789514dcf3 100644 --- a/js/src/tests/test262/language/module-code/parse-err-hoist-lex-gen.js +++ b/js/src/tests/test262/language/module-code/parse-err-hoist-lex-gen.js @@ -16,7 +16,7 @@ info: | - It is a Syntax Error if any element of the LexicallyDeclaredNames of ModuleItemList also occurs in the VarDeclaredNames of ModuleItemList. negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-invoke-anon-fun-decl.js b/js/src/tests/test262/language/module-code/parse-err-invoke-anon-fun-decl.js index 9eaa6b00496f..d47dfdf51c56 100644 --- a/js/src/tests/test262/language/module-code/parse-err-invoke-anon-fun-decl.js +++ b/js/src/tests/test262/language/module-code/parse-err-invoke-anon-fun-decl.js @@ -16,7 +16,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-invoke-anon-gen-decl.js b/js/src/tests/test262/language/module-code/parse-err-invoke-anon-gen-decl.js index ff7a211dea06..051f368f631f 100644 --- a/js/src/tests/test262/language/module-code/parse-err-invoke-anon-gen-decl.js +++ b/js/src/tests/test262/language/module-code/parse-err-invoke-anon-gen-decl.js @@ -17,7 +17,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] features: [generators] diff --git a/js/src/tests/test262/language/module-code/parse-err-reference.js b/js/src/tests/test262/language/module-code/parse-err-reference.js index d92dcab15f8e..beaa8ed1e77a 100644 --- a/js/src/tests/test262/language/module-code/parse-err-reference.js +++ b/js/src/tests/test262/language/module-code/parse-err-reference.js @@ -5,7 +5,7 @@ description: Early ReferenceError resulting from module parsing esid: sec-parsemodule negative: - phase: early + phase: parse type: ReferenceError info: | [...] diff --git a/js/src/tests/test262/language/module-code/parse-err-return.js b/js/src/tests/test262/language/module-code/parse-err-return.js index 84f96a359cff..74c73f61b386 100644 --- a/js/src/tests/test262/language/module-code/parse-err-return.js +++ b/js/src/tests/test262/language/module-code/parse-err-return.js @@ -24,7 +24,7 @@ info: | StatementListItem[~Yield, ~Return] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-semi-dflt-expr.js b/js/src/tests/test262/language/module-code/parse-err-semi-dflt-expr.js index 947df0460ec5..efb38a13ff8c 100644 --- a/js/src/tests/test262/language/module-code/parse-err-semi-dflt-expr.js +++ b/js/src/tests/test262/language/module-code/parse-err-semi-dflt-expr.js @@ -17,7 +17,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-semi-export-clause-from.js b/js/src/tests/test262/language/module-code/parse-err-semi-export-clause-from.js index e5d16a3322d0..9e4f70f4e9b1 100644 --- a/js/src/tests/test262/language/module-code/parse-err-semi-export-clause-from.js +++ b/js/src/tests/test262/language/module-code/parse-err-semi-export-clause-from.js @@ -17,7 +17,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-semi-export-clause.js b/js/src/tests/test262/language/module-code/parse-err-semi-export-clause.js index 6c949460f3b1..37ba1ec38d20 100644 --- a/js/src/tests/test262/language/module-code/parse-err-semi-export-clause.js +++ b/js/src/tests/test262/language/module-code/parse-err-semi-export-clause.js @@ -17,7 +17,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-semi-export-star.js b/js/src/tests/test262/language/module-code/parse-err-semi-export-star.js index a226a1f95617..b9455181d422 100644 --- a/js/src/tests/test262/language/module-code/parse-err-semi-export-star.js +++ b/js/src/tests/test262/language/module-code/parse-err-semi-export-star.js @@ -16,7 +16,7 @@ info: | export default ClassDeclaration[Default] export default [lookahead ∉ { function, class }] AssignmentExpression[In]; negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/module-code/parse-err-syntax.js b/js/src/tests/test262/language/module-code/parse-err-syntax.js index f8f5da168b9c..3516a08c2429 100644 --- a/js/src/tests/test262/language/module-code/parse-err-syntax.js +++ b/js/src/tests/test262/language/module-code/parse-err-syntax.js @@ -5,7 +5,7 @@ description: Early SyntaxError resulting from module parsing esid: sec-parsemodule negative: - phase: early + phase: parse type: SyntaxError info: | [...] diff --git a/js/src/tests/test262/language/module-code/parse-err-yield.js b/js/src/tests/test262/language/module-code/parse-err-yield.js index c734ff686c6f..f1ea1097341e 100644 --- a/js/src/tests/test262/language/module-code/parse-err-yield.js +++ b/js/src/tests/test262/language/module-code/parse-err-yield.js @@ -24,7 +24,7 @@ info: | StatementListItem[~Yield, ~Return] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-1.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-1.js index 313e2d2889cb..59b6fe20f0e9 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-1.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-1.js @@ -11,7 +11,7 @@ info: | features: [class, class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-2.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-2.js index ab3536400038..8a946c9de968 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-2.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-2.js @@ -11,7 +11,7 @@ info: | features: [class, class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-3.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-3.js index 9c6d5d86dd85..37acfd419a87 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-3.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-3.js @@ -11,7 +11,7 @@ info: | features: [class, class-fields-private, class-fields-public] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-4.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-4.js index b04ad2e92a1d..5f1256930e41 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-4.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-4.js @@ -12,7 +12,7 @@ info: | features: [class, class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-5.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-5.js index a964e9858be1..dce2c4fadbd9 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-5.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-5.js @@ -11,7 +11,7 @@ info: | features: [class, class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-6.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-6.js index c35eb02e55bb..1e1f9d8d1be8 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-6.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-6.js @@ -11,7 +11,7 @@ info: | features: [class, class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-7.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-7.js index cca5fa83a719..0ceb152ca4dc 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-7.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-7.js @@ -11,7 +11,7 @@ info: | features: [class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-8.js b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-8.js index 00e9a3e35052..d9ed3c82e412 100644 --- a/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-8.js +++ b/js/src/tests/test262/language/module-code/privatename-not-valid-earlyerr-module-8.js @@ -11,7 +11,7 @@ info: | features: [class-fields-private] flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T1.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T1.js index 6be4adc82628..d13fe09a1bc1 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T1.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T1 description: Try to use {} as a Unicode \u007B\u007D negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T10.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T10.js index a8223fbec1db..a02d55300407 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T10.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T10.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T10 description: Try to use / as a Unicode \u002F negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T2.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T2.js index c9eaecba818e..11af3ab15d06 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T2.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T2.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T2 description: Try to use () as Unicode \u00281\u0029 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T3.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T3.js index 773f3e5ade40..8de5c2e97b41 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T3.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T3.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T3 description: Try to use [] as a Unicode \u005B\u005D negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T4.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T4.js index c3799045babc..966ab854bb1f 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T4.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T4.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T4 description: Try to use ; as a Unicode \u003B negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T5.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T5.js index 90bec90800f4..71a14565e95a 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T5.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T5.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T5 description: Try to use . as a Unicode \u002E negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T6.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T6.js index 6a1630c63389..328654dda18e 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T6.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T6.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T6 description: Try to use , as a Unicode \u002C negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T7.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T7.js index 00cca6371a8b..d4dd217c8455 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T7.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T7.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T7 description: Try to use + as a Unicode \u002B negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T8.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T8.js index 5e15949ed710..967a24617680 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T8.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T8.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T8 description: Try to use - as a Unicode \u002D negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/punctuators/S7.7_A2_T9.js b/js/src/tests/test262/language/punctuators/S7.7_A2_T9.js index 67ad0ead05ce..f4dcb947eb99 100644 --- a/js/src/tests/test262/language/punctuators/S7.7_A2_T9.js +++ b/js/src/tests/test262/language/punctuators/S7.7_A2_T9.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Punctuator cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.7_A2_T9 description: Try to use * as a Unicode \u002A negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/await-module.js b/js/src/tests/test262/language/reserved-words/await-module.js index cdf42ad51dd7..98d5bd070f0e 100644 --- a/js/src/tests/test262/language/reserved-words/await-module.js +++ b/js/src/tests/test262/language/reserved-words/await-module.js @@ -7,7 +7,7 @@ es6id: 11.6.2 description: The `await` token is not permitted as an identifier in module code flags: [module] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/ident-reference-false-escaped.js b/js/src/tests/test262/language/reserved-words/ident-reference-false-escaped.js index 5f5e46856985..01333c8d78af 100644 --- a/js/src/tests/test262/language/reserved-words/ident-reference-false-escaped.js +++ b/js/src/tests/test262/language/reserved-words/ident-reference-false-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/ident-reference-false.js b/js/src/tests/test262/language/reserved-words/ident-reference-false.js index 77d76323603a..e606ba6f998a 100644 --- a/js/src/tests/test262/language/reserved-words/ident-reference-false.js +++ b/js/src/tests/test262/language/reserved-words/ident-reference-false.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/ident-reference-null-escaped.js b/js/src/tests/test262/language/reserved-words/ident-reference-null-escaped.js index de38c18aefc9..00789faa9219 100644 --- a/js/src/tests/test262/language/reserved-words/ident-reference-null-escaped.js +++ b/js/src/tests/test262/language/reserved-words/ident-reference-null-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/ident-reference-null.js b/js/src/tests/test262/language/reserved-words/ident-reference-null.js index d5bc7f61ae38..a8fae38b5969 100644 --- a/js/src/tests/test262/language/reserved-words/ident-reference-null.js +++ b/js/src/tests/test262/language/reserved-words/ident-reference-null.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/ident-reference-true-escaped.js b/js/src/tests/test262/language/reserved-words/ident-reference-true-escaped.js index 2f74205cea41..82105646aa4e 100644 --- a/js/src/tests/test262/language/reserved-words/ident-reference-true-escaped.js +++ b/js/src/tests/test262/language/reserved-words/ident-reference-true-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/ident-reference-true.js b/js/src/tests/test262/language/reserved-words/ident-reference-true.js index 66d90fb0e761..02cbb841c233 100644 --- a/js/src/tests/test262/language/reserved-words/ident-reference-true.js +++ b/js/src/tests/test262/language/reserved-words/ident-reference-true.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/label-ident-false-escaped.js b/js/src/tests/test262/language/reserved-words/label-ident-false-escaped.js index 09f49969a0ce..2f4781744893 100644 --- a/js/src/tests/test262/language/reserved-words/label-ident-false-escaped.js +++ b/js/src/tests/test262/language/reserved-words/label-ident-false-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/label-ident-false.js b/js/src/tests/test262/language/reserved-words/label-ident-false.js index 40429fdef415..1bb8eed7d367 100644 --- a/js/src/tests/test262/language/reserved-words/label-ident-false.js +++ b/js/src/tests/test262/language/reserved-words/label-ident-false.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/label-ident-null-escaped.js b/js/src/tests/test262/language/reserved-words/label-ident-null-escaped.js index e6675917c951..f6d76d63266f 100644 --- a/js/src/tests/test262/language/reserved-words/label-ident-null-escaped.js +++ b/js/src/tests/test262/language/reserved-words/label-ident-null-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/label-ident-null.js b/js/src/tests/test262/language/reserved-words/label-ident-null.js index a871056fca4c..dc68b739b515 100644 --- a/js/src/tests/test262/language/reserved-words/label-ident-null.js +++ b/js/src/tests/test262/language/reserved-words/label-ident-null.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/label-ident-true-escaped.js b/js/src/tests/test262/language/reserved-words/label-ident-true-escaped.js index ffb3746350cc..8c347497a7b1 100644 --- a/js/src/tests/test262/language/reserved-words/label-ident-true-escaped.js +++ b/js/src/tests/test262/language/reserved-words/label-ident-true-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/reserved-words/label-ident-true.js b/js/src/tests/test262/language/reserved-words/label-ident-true.js index afc22d208d2c..efcb4faa02e7 100644 --- a/js/src/tests/test262/language/reserved-words/label-ident-true.js +++ b/js/src/tests/test262/language/reserved-words/label-ident-true.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if StringValue of IdentifierName is the same String value as the StringValue of any ReservedWord except for yield. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/rest-parameters/array-pattern.js b/js/src/tests/test262/language/rest-parameters/array-pattern.js index 554e27048f16..4b7dbd969b56 100644 --- a/js/src/tests/test262/language/rest-parameters/array-pattern.js +++ b/js/src/tests/test262/language/rest-parameters/array-pattern.js @@ -5,7 +5,7 @@ esid: sec-destructuring-binding-patterns description: > The rest parameter can be a binding pattern. -info: > +info: | Destructuring Binding Patterns - Syntax BindingRestElement[Yield]: diff --git a/js/src/tests/test262/language/rest-parameters/object-pattern.js b/js/src/tests/test262/language/rest-parameters/object-pattern.js index e5fb6992e4cb..c7dd35236d78 100644 --- a/js/src/tests/test262/language/rest-parameters/object-pattern.js +++ b/js/src/tests/test262/language/rest-parameters/object-pattern.js @@ -5,7 +5,7 @@ esid: sec-destructuring-binding-patterns description: > The rest parameter can be a binding pattern. -info: > +info: | Destructuring Binding Patterns - Syntax BindingRestElement[Yield]: diff --git a/js/src/tests/test262/language/rest-parameters/position-invalid.js b/js/src/tests/test262/language/rest-parameters/position-invalid.js index 5bd007ca640f..1a0c7a66a5b8 100644 --- a/js/src/tests/test262/language/rest-parameters/position-invalid.js +++ b/js/src/tests/test262/language/rest-parameters/position-invalid.js @@ -6,7 +6,7 @@ es6id: 14.1 description: > Rest parameter cannot be followed by another named parameter negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier-escaped.js index 746ed4066e08..68daeb19f145 100644 --- a/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionDeclaration features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier.js b/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier.js index d191a6582f36..83ce5c8a2007 100644 --- a/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/async-function/await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionDeclaration features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference-escaped.js index 2cc37c5b569a..63a06aa45532 100644 --- a/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionDeclaration features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference.js b/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference.js index b02ab45ea105..b03b70254138 100644 --- a/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/async-function/await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionDeclaration features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/await-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/async-function/await-as-label-identifier-escaped.js index 9c414379b72d..887c7df597f2 100644 --- a/js/src/tests/test262/language/statements/async-function/await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/async-function/await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionDeclaration features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/await-as-label-identifier.js b/js/src/tests/test262/language/statements/async-function/await-as-label-identifier.js index f8c47f4927fc..efe6e3947fd7 100644 --- a/js/src/tests/test262/language/statements/async-function/await-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/async-function/await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncFunctionDeclaration features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/cptn-decl.js b/js/src/tests/test262/language/statements/async-function/cptn-decl.js index ee4edbb2cf5c..31cf99ab11dc 100644 --- a/js/src/tests/test262/language/statements/async-function/cptn-decl.js +++ b/js/src/tests/test262/language/statements/async-function/cptn-decl.js @@ -3,7 +3,7 @@ /*--- esid: sec-async-function-definitions-runtime-semantics-evaluation description: Async function declaration completion value is empty. -info: > +info: | AsyncFunctionDeclaration : async [no LineTerminator here] function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } 1. Return NormalCompletion(empty). diff --git a/js/src/tests/test262/language/statements/async-function/dflt-params-duplicates.js b/js/src/tests/test262/language/statements/async-function/dflt-params-duplicates.js index 0e940fec8f70..eea2711e07e3 100644 --- a/js/src/tests/test262/language/statements/async-function/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/async-function/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/dflt-params-rest.js b/js/src/tests/test262/language/statements/async-function/dflt-params-rest.js index ecd502c99fa6..2c63fd5225b6 100644 --- a/js/src/tests/test262/language/statements/async-function/dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/async-function/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-async-function-definitions features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js index 91eb77e6e91f..ec4af7e0376f 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters-strict.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters-strict.js index 7f3480d5c69f..f1f936d3e6ad 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains arguments in strict mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals-default.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals-default.js index 68bbcaee2a22..a2396669b65a 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals-default.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals-default.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters' default expressions contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals.js index 4c4b5e2fa344..4fdde6c3295d 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-await-in-formals.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-arguments-strict.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-arguments-strict.js index 10ecdb69a32a..22ad24f9beac 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-arguments-strict.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-arguments-strict.js @@ -9,7 +9,7 @@ esid: pending description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName arguments. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-eval-strict.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-eval-strict.js index c771c3cfa640..0d39c6505294 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-eval-strict.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-binding-identifier-eval-strict.js @@ -9,7 +9,7 @@ esid: pending description: > If the source code matching this production is strict code, it is a Syntax Error if BindingIdentifier is the IdentifierName eval. negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-call.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-call.js index a8692ca26db8..7c163445f926 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-call.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if AsyncFunctionBody contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-property.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-property.js index 706f3118977b..4afe98d244ec 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-property.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-body-contains-super-property.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if AsyncFunctionBody contains SuperProperty is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-duplicate-parameters-strict.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-duplicate-parameters-strict.js index 51bcfd7be102..d406b9d143e5 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-duplicate-parameters-strict.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-duplicate-parameters-strict.js @@ -9,7 +9,7 @@ esid: pending description: > If strict mode, early error rules for StrictFormalParameters are applied negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters-strict.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters-strict.js index c0145fad2d8e..092c3fb84533 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters-strict.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters-strict.js @@ -8,7 +8,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains eval in strict mode negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js index 12172a29339e..a86aab799233 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js index 5aaa2f6f360a..960129617323 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js index 5fb2d883e9fa..0f394a6e07a2 100644 --- a/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js +++ b/js/src/tests/test262/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/escaped-async.js b/js/src/tests/test262/language/statements/async-function/escaped-async.js index b201223410ec..7fe8605f4588 100644 --- a/js/src/tests/test262/language/statements/async-function/escaped-async.js +++ b/js/src/tests/test262/language/statements/async-function/escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/evaluation-default-that-throws.js b/js/src/tests/test262/language/statements/async-function/evaluation-default-that-throws.js index f4d07b119267..00ea3464c5e9 100644 --- a/js/src/tests/test262/language/statements/async-function/evaluation-default-that-throws.js +++ b/js/src/tests/test262/language/statements/async-function/evaluation-default-that-throws.js @@ -6,7 +6,7 @@ author: Brian Terlson esid: pending description: > If a default expression throws, the promise is rejected. -info: > +info: | This is different from generators which will throw the error out of the generator when it is called. flags: [async] diff --git a/js/src/tests/test262/language/statements/async-function/let-newline-await-in-async-function.js b/js/src/tests/test262/language/statements/async-function/let-newline-await-in-async-function.js index 06154d8c7b29..ce7aa0c960fe 100644 --- a/js/src/tests/test262/language/statements/async-function/let-newline-await-in-async-function.js +++ b/js/src/tests/test262/language/statements/async-function/let-newline-await-in-async-function.js @@ -7,13 +7,13 @@ author: Jeff Walden esid: sec-let-and-const-declarations description: > `let await` does not permit ASI in between, as `await` is a BindingIdentifier -info: > +info: | `await` is a perfectly cromulent binding name in any context grammatically, just prohibited by static semantics in some contexts. Therefore ASI can never apply between `let` (where a LexicalDeclaration is permitted) and `await`, so a subsequent `0` where `=` was expected is a syntax error. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/async-function/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/async-function/rest-params-trailing-comma-early-error.js index 8bb8114ebe75..6cffffcf2dd0 100644 --- a/js/src/tests/test262/language/statements/async-function/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/async-function/rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-async-function-definitions flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.6 Async Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier-escaped.js index 53ba19be77aa..2e9201a27a14 100644 --- a/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier.js b/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier.js index a30cfc664d16..f5e91ce7fe11 100644 --- a/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/async-generator/await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference-escaped.js index e29a89f02943..e604e6e95343 100644 --- a/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference.js b/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference.js index f1d65f1d7e4e..6a5d4c24598a 100644 --- a/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/async-generator/await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier-escaped.js index f4452bf39643..918898d1df57 100644 --- a/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier.js b/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier.js index c0f6290e7461..5ea29cb5cdef 100644 --- a/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/async-generator/await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/dflt-params-duplicates.js b/js/src/tests/test262/language/statements/async-generator/dflt-params-duplicates.js index d9f636099690..385dac437e58 100644 --- a/js/src/tests/test262/language/statements/async-generator/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/async-generator/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dflt-params-rest.js b/js/src/tests/test262/language/statements/async-generator/dflt-params-rest.js index 14fa94e87103..9d185933bec9 100644 --- a/js/src/tests/test262/language/statements/async-generator/dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/async-generator/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-ary.js index cb94ef2bd415..43a3d4b577ef 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-id.js index a5234a7658bf..2e3c0bfc1c43 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-obj.js index c93cd67d11b3..4ac033c959c0 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-ary.js index f207f1017c5e..76e1778f160d 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-id.js index ec7113bac846..6d293496fa97 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-obj.js index 90392c915a1d..fb08a786e504 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js index 905a67a232ce..ec71c09309ff 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js index 66a79b8025f1..257646768576 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js index f7a9cf1ae7ac..0ba4b9554515 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js index 64e6749346b3..a4594f9eebec 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js index 7b035569e48a..58fdda64f66b 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js index 0a1ed69e6bfb..a2d9224151e7 100644 --- a/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/async-generator/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/escaped-async.js b/js/src/tests/test262/language/statements/async-generator/escaped-async.js index 75b695d0b11f..cd28803fadde 100644 --- a/js/src/tests/test262/language/statements/async-generator/escaped-async.js +++ b/js/src/tests/test262/language/statements/async-generator/escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/async-generator/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/async-generator/rest-params-trailing-comma-early-error.js index 727eb2f1d851..b4c53c3b7ff8 100644 --- a/js/src/tests/test262/language/statements/async-generator/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/async-generator/rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-asyncgenerator-definitions-instantiatefunctionobject features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier diff --git a/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier-escaped.js index dae4dd0f0dcb..8a46014aaa73 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier.js b/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier.js index 4c9991e2a03c..d0e884fb6495 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference-escaped.js index 86fd11062fc4..730ff333c71d 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference.js b/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference.js index 13800311b78e..39544d9524ad 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier-escaped.js index 72d72c6a8d5d..050a89daf5ca 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier.js b/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier.js index 011718370f6f..d412c05cf486 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/statements/async-generator/yield-identifier-spread-strict-strict.js index a7b848328bd9..214f69ab4ec6 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorDeclaration features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/async-generator/yield-identifier-strict-strict.js b/js/src/tests/test262/language/statements/async-generator/yield-identifier-strict-strict.js index 84b06a69758c..d6c29a9b7125 100644 --- a/js/src/tests/test262/language/statements/async-generator/yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/statements/async-generator/yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorDeclaration features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | Async Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/block/S12.1_A2.js b/js/src/tests/test262/language/statements/block/S12.1_A2.js index c39c7604801c..36566fc29f22 100644 --- a/js/src/tests/test262/language/statements/block/S12.1_A2.js +++ b/js/src/tests/test262/language/statements/block/S12.1_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production StatementList Statement is evaluated as follows 1. Evaluate Statement. 2. If an exception was thrown, return (throw, V, empty) where V is the exception diff --git a/js/src/tests/test262/language/statements/block/S12.1_A4_T1.js b/js/src/tests/test262/language/statements/block/S12.1_A4_T1.js index 32a9c6bdb810..443b5cd512d4 100644 --- a/js/src/tests/test262/language/statements/block/S12.1_A4_T1.js +++ b/js/src/tests/test262/language/statements/block/S12.1_A4_T1.js @@ -7,7 +7,7 @@ info: The production Block can't be inside of expression es5id: 12.1_A4_T1 description: Checking if execution of "y={__func}()" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/block/S12.1_A4_T2.js b/js/src/tests/test262/language/statements/block/S12.1_A4_T2.js index 878e20494ea9..82d8cd269e11 100644 --- a/js/src/tests/test262/language/statements/block/S12.1_A4_T2.js +++ b/js/src/tests/test262/language/statements/block/S12.1_A4_T2.js @@ -7,7 +7,7 @@ info: The production Block can't be inside of expression es5id: 12.1_A4_T2 description: Checking if execution of "y={x;}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/block/S12.1_A5.js b/js/src/tests/test262/language/statements/block/S12.1_A5.js index f67794c02800..c8a0035ddd5a 100644 --- a/js/src/tests/test262/language/statements/block/S12.1_A5.js +++ b/js/src/tests/test262/language/statements/block/S12.1_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | StatementList: StatementList Statement inside the Block is evaluated from left to right es5id: 12.1_A5 diff --git a/js/src/tests/test262/language/statements/block/tco-stmt-list-strict.js b/js/src/tests/test262/language/statements/block/tco-stmt-list-strict.js index e1f75b770b35..f8bae6ce7d2d 100644 --- a/js/src/tests/test262/language/statements/block/tco-stmt-list-strict.js +++ b/js/src/tests/test262/language/statements/block/tco-stmt-list-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/block/tco-stmt-strict.js b/js/src/tests/test262/language/statements/block/tco-stmt-strict.js index 0a44318df88a..308d5cff4200 100644 --- a/js/src/tests/test262/language/statements/block/tco-stmt-strict.js +++ b/js/src/tests/test262/language/statements/block/tco-stmt-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/break/S12.8_A1_T1.js b/js/src/tests/test262/language/statements/break/S12.8_A1_T1.js index 1ffe321f18ec..e463056f0335 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A1_T1.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A1_T1.js @@ -7,7 +7,7 @@ info: Appearing of break without an IterationStatement leads to syntax error es5id: 12.8_A1_T1 description: Checking if break statement with no loop fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A1_T2.js b/js/src/tests/test262/language/statements/break/S12.8_A1_T2.js index cb0f5bdcdb75..3116ea2b8301 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A1_T2.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A1_T2.js @@ -7,7 +7,7 @@ info: Appearing of break without an IterationStatement leads to syntax error es5id: 12.8_A1_T2 description: Checking if break Identifier with no loop fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A1_T3.js b/js/src/tests/test262/language/statements/break/S12.8_A1_T3.js index bb7c71c5388c..d84e3024e774 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A1_T3.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A1_T3.js @@ -9,7 +9,7 @@ description: > Checking if break statement with no loop, placed into a block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A1_T4.js b/js/src/tests/test262/language/statements/break/S12.8_A1_T4.js index 9bba6f6364f9..46f75ca8b7b3 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A1_T4.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A1_T4.js @@ -9,7 +9,7 @@ description: > Checking if break Identifier with no loop, placed into a block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A2.js b/js/src/tests/test262/language/statements/break/S12.8_A2.js index b5ded84e79f3..1c9e6095c402 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A2.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since LineTerminator between "break" and Identifier is not allowed, "break" is evaluated without label es5id: 12.8_A2 diff --git a/js/src/tests/test262/language/statements/break/S12.8_A4_T1.js b/js/src/tests/test262/language/statements/break/S12.8_A4_T1.js index 39fb9a5652c7..be08103d38f9 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A4_T1.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "break Identifier" is evaluated, (break, empty, Identifier) is returned es5id: 12.8_A4_T1 diff --git a/js/src/tests/test262/language/statements/break/S12.8_A4_T2.js b/js/src/tests/test262/language/statements/break/S12.8_A4_T2.js index 53fcb542cc87..48ddc8dcb602 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A4_T2.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "break Identifier" is evaluated, (break, empty, Identifier) is returned es5id: 12.8_A4_T2 diff --git a/js/src/tests/test262/language/statements/break/S12.8_A4_T3.js b/js/src/tests/test262/language/statements/break/S12.8_A4_T3.js index 7546b34d433b..38869d8f09ec 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A4_T3.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "break Identifier" is evaluated, (break, empty, Identifier) is returned es5id: 12.8_A4_T3 diff --git a/js/src/tests/test262/language/statements/break/S12.8_A5_T1.js b/js/src/tests/test262/language/statements/break/S12.8_A5_T1.js index 87fc1ee5075a..55c4f24c39f1 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A5_T1.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A5_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Identifier must be label in the label set of an enclosing (but not crossing function boundaries) IterationStatement es5id: 12.8_A5_T1 description: Checking if breaking another labeled loop fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A5_T2.js b/js/src/tests/test262/language/statements/break/S12.8_A5_T2.js index 47697acdc6d3..e29cf55d1a19 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A5_T2.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A5_T2.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Identifier must be label in the label set of an enclosing (but not crossing function boundaries) IterationStatement es5id: 12.8_A5_T2 @@ -11,7 +11,7 @@ description: > Checking if using function name as an Identifier appears to be invalid negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A5_T3.js b/js/src/tests/test262/language/statements/break/S12.8_A5_T3.js index 168f08ef8f1e..16e44332b934 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A5_T3.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A5_T3.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Identifier must be label in the label set of an enclosing (but not crossing function boundaries) IterationStatement es5id: 12.8_A5_T3 @@ -11,7 +11,7 @@ description: > Checking if using internal loop label as an Identifier appears to be invalid negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A6.js b/js/src/tests/test262/language/statements/break/S12.8_A6.js index 4f5ebcc5f59e..a4c9a7b7e4f4 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A6.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A6.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Appearing of "break" within a function call that is nested in a IterationStatement yields SyntaxError es5id: 12.8_A6 @@ -11,7 +11,7 @@ description: > Checking if using "break Identifier" within a function body appears to be invalid negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A7.js b/js/src/tests/test262/language/statements/break/S12.8_A7.js index af5517ff127b..1fe93f2c29c6 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A7.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Appearing of "break" within eval statement that is nested in an IterationStatement yields SyntaxError es5id: 12.8_A7 diff --git a/js/src/tests/test262/language/statements/break/S12.8_A8_T1.js b/js/src/tests/test262/language/statements/break/S12.8_A8_T1.js index bf7cd6ef6b60..bdfb70d8c7be 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A8_T1.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A8_T1.js @@ -9,7 +9,7 @@ description: > Checking if using "break Identifier" from within catch Block appears to be invalid negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A8_T2.js b/js/src/tests/test262/language/statements/break/S12.8_A8_T2.js index b4c58c961c1a..5098d9a7fd2d 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A8_T2.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A8_T2.js @@ -9,7 +9,7 @@ description: > Checking if using "break Identifier" from within catch Block appears to be invalid negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/break/S12.8_A9_T1.js b/js/src/tests/test262/language/statements/break/S12.8_A9_T1.js index 6b5d3ac0eaff..f7a831ed3f3f 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A9_T1.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A9_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "break" within "try/catch" statement that is nested in a loop is allowed es5id: 12.8_A9_T1 diff --git a/js/src/tests/test262/language/statements/break/S12.8_A9_T2.js b/js/src/tests/test262/language/statements/break/S12.8_A9_T2.js index ebc8e4ca62ec..55afe40c809d 100644 --- a/js/src/tests/test262/language/statements/break/S12.8_A9_T2.js +++ b/js/src/tests/test262/language/statements/break/S12.8_A9_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "break" within "try/catch" statement that is nested in a loop is allowed es5id: 12.8_A9_T2 diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-duplicates.js index bbb959ef6fa5..08a64e0dd8b2 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-rest.js index 75037eae9ee3..d385d512de13 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-escaped-async.js b/js/src/tests/test262/language/statements/class/async-gen-meth-escaped-async.js index f5df42ed718a..ddc09b5746b3 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-escaped-async.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js index 74b7780a838c..c111deb45f65 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js index 37d734f600ae..950c510cec2c 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-rest.js index 24572e32454e..de34c5df96d1 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js index 39087e2afaa9..a8335c425a04 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier-escaped.js index 28431773422d..061c67c37e1a 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier.js index d0e3ec56ade5..0bd4fd8f3c59 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference-escaped.js index 5e9413feecb2..9bb83fb9d093 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference.js index 30a4c7e03ac3..baede9fe6e60 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier-escaped.js index 9e50012d717c..7a1c113058b4 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier.js index e1b000e0ef4c..96e0857482ac 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier-escaped.js index c386d5108a57..572ca0111bb6 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier.js index 8921473eb565..54a0d2f1e8bd 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference-escaped.js index 3054ec2d9d52..3567588ae2e5 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference.js index 7f1f62e82700..5eb947544ccb 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier-escaped.js index bb6b354e6347..f36d90ad1ccc 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier.js index f509d8d0fe82..30f6390a9e47 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier-escaped.js index d4cf3c140f0b..7feb1c1c7ad4 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier.js index bcc5b5b85d4d..d6dd75bd5890 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference-escaped.js index 796e664f1fe9..db3e261cf69e 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference.js index 51c9ca4de51c..381c2e5edf0a 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier-escaped.js index c3f0e5e6729e..471eff5bea97 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier.js index 72ebdad39535..26dd06ac8ea7 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-spread-strict-strict.js index cec196d0a545..76003ed6892e 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-strict-strict.js b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-strict-strict.js index aeaef3bebec1..19396790d220 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-static-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier-escaped.js index b4d7a66ef438..e028f71e274d 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier.js index c21201a14aaf..5f80dddd1694 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference-escaped.js index cf4591f49696..c0dd740d000e 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference.js index 9c6754b587f1..99cf56e00f63 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier-escaped.js index f3fe34b9e3a7..b05428b7ae14 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier.js index 559076b90916..eff341a4e5df 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-spread-strict-strict.js index 661a2191cdd3..fd759b26885e 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [object-spread, async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-strict-strict.js b/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-strict-strict.js index ff7a05f6690c..a7001475d455 100644 --- a/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/async-gen-method-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-AsyncGeneratorMethod features: [async-iteration] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/async-meth-dflt-params-duplicates.js index ff83ef81dc91..245966b82bd6 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/async-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-meth-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/async-meth-dflt-params-rest.js index 649eeb0a3299..b60c383d0791 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/async-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-meth-escaped-async.js b/js/src/tests/test262/language/statements/class/async-meth-escaped-async.js index 3d0624feed63..5dcc928f3e3c 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-escaped-async.js +++ b/js/src/tests/test262/language/statements/class/async-meth-escaped-async.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `async` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js index 1c47e1b8a822..a474f01e520c 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-class-definitions-runtime-semantics-evaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-duplicates.js index d746160a5750..ae676460da74 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-rest.js index dfa4250f8aa0..f0024d942f87 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/async-meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js index aabe77e04d7b..0c0ce3ee31f0 100644 --- a/js/src/tests/test262/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-runtime-semantics-bindingclassdeclarationevaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier-escaped.js index 994131ee2961..d635e0c8c7c2 100644 --- a/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier.js index 5b1daa58b801..0445b9362d0d 100644 --- a/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-method-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference-escaped.js index c6acd8056bd3..591914ccf4cf 100644 --- a/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference.js index 35d690c93687..a5bf8cd6e401 100644 --- a/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/async-method-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier-escaped.js index c2c20534cd38..2e035147cd1b 100644 --- a/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier.js b/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier.js index b00a0404ceff..deb8b018db5e 100644 --- a/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-method-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier-escaped.js index 6fe82b181840..c272f17342cb 100644 --- a/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier.js index 565bf0f23b31..5aca9cf982f7 100644 --- a/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-method-static-await-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference-escaped.js index acaf0bb98db0..278853f99864 100644 --- a/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference.js index dd4539e82091..5bf6db6f88f2 100644 --- a/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/async-method-static-await-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier-escaped.js index c111bc9230bb..7b19eae80912 100644 --- a/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier.js b/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier.js index a5d1f78d9965..3967ba703195 100644 --- a/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/async-method-static-await-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-AsyncMethod features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/classelementname-abrupt-completion.js b/js/src/tests/test262/language/statements/class/classelementname-abrupt-completion.js index 65f720a922d5..f1dad486d9b7 100644 --- a/js/src/tests/test262/language/statements/class/classelementname-abrupt-completion.js +++ b/js/src/tests/test262/language/statements/class/classelementname-abrupt-completion.js @@ -4,7 +4,7 @@ /*--- description: Class definition should error if evaluation of ClassElementName errors -esid: runtime-semantics-class-definition-evaluation +esid: sec-runtime-semantics-classdefinitionevaluation info: | Runtime Semantics: ClassDefinitionEvaluation ... diff --git a/js/src/tests/test262/language/statements/class/cptn-decl.js b/js/src/tests/test262/language/statements/class/cptn-decl.js index f03608736720..f3beb693c1dc 100644 --- a/js/src/tests/test262/language/statements/class/cptn-decl.js +++ b/js/src/tests/test262/language/statements/class/cptn-decl.js @@ -3,7 +3,7 @@ /*--- esid: sec-class-definitions-runtime-semantics-evaluation description: Class declaration completion value is empty. -info: > +info: | ClassDeclaration : class BindingIdentifier ClassTail 1. Perform ? BindingClassDeclarationEvaluation of this ClassDeclaration. diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js index 242d09bcd8f0..b78493fb64f5 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js @@ -8,7 +8,7 @@ esid: pending description: > It is a Syntax Error if ContainsUseStrict of AsyncConciseBody is *true* and IsSimpleParameterList of ArrowParameters is *false*. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js index 79f8cb39c681..155012c8be0a 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains arguments negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js index 8eda4c24fc28..3055656abac3 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters' default expressions contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals.js index 68a36280a6c3..b103ee89b7d7 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-await-in-formals.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains await negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js index 63ba0195a5b0..c38ae0def980 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if AsyncFunctionBody contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js index beec3539c185..14147c962a61 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js @@ -8,7 +8,7 @@ esid: pending description: > Early error rules for StrictFormalParameters are applied negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js index e0ca45a27b47..3dfefb0683b0 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a SyntaxError if FormalParameters contains eval in strict mode negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js index 42033e6ed82f..f5fdb3f02260 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js @@ -8,7 +8,7 @@ esid: pending description: > It is a SyntaxError if BoundNames of FormalParameters also occurs in the LexicallyDeclaredNames of AsyncFunctionBody negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js index 2136277e3679..452d102c6c5f 100644 --- a/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js +++ b/js/src/tests/test262/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js @@ -7,7 +7,7 @@ author: Brian Terlson esid: pending description: It is a syntax error if FormalParameters contains SuperCall is true negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-get.js b/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-get.js index 0b89b73e4485..8d329f0de5da 100644 --- a/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-get.js +++ b/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-get.js @@ -4,7 +4,7 @@ /*--- es6id: 14.3.9 description: Assignment of function `name` attribute ("get" accessor) -info: > +info: | MethodDefinition : get PropertyName ( ) { FunctionBody } [...] diff --git a/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-set.js b/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-set.js index 273cb8e9bf33..22d97ca84427 100644 --- a/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-set.js +++ b/js/src/tests/test262/language/statements/class/definition/fn-name-accessor-set.js @@ -4,7 +4,7 @@ /*--- es6id: 14.3.9 description: Assignment of function `name` attribute ("set" accessor) -info: > +info: | MethodDefinition : set PropertyName ( PropertySetParameterList ) { FunctionBody } diff --git a/js/src/tests/test262/language/statements/class/definition/fn-name-gen-method.js b/js/src/tests/test262/language/statements/class/definition/fn-name-gen-method.js index f53b2fda9431..f6bb4781af72 100644 --- a/js/src/tests/test262/language/statements/class/definition/fn-name-gen-method.js +++ b/js/src/tests/test262/language/statements/class/definition/fn-name-gen-method.js @@ -5,7 +5,7 @@ es6id: 14.4.13 description: > Assignment of function `name` attribute (GeneratorMethod) -info: > +info: | GeneratorMethod : * PropertyName ( StrictFormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/class/definition/fn-name-method.js b/js/src/tests/test262/language/statements/class/definition/fn-name-method.js index 4a34212c378b..f01641f5c000 100644 --- a/js/src/tests/test262/language/statements/class/definition/fn-name-method.js +++ b/js/src/tests/test262/language/statements/class/definition/fn-name-method.js @@ -4,7 +4,7 @@ /*--- es6id: 12.2.6.9 description: Assignment of function `name` attribute (MethodDefinition) -info: > +info: | 6. If IsAnonymousFunctionDefinition(AssignmentExpression) is true, then a. Let hasNameProperty be HasOwnProperty(propValue, "name"). b. ReturnIfAbrupt(hasNameProperty). diff --git a/js/src/tests/test262/language/statements/class/definition/fn-name-static-precedence.js b/js/src/tests/test262/language/statements/class/definition/fn-name-static-precedence.js index 2470ac477376..655e0deb9b0e 100644 --- a/js/src/tests/test262/language/statements/class/definition/fn-name-static-precedence.js +++ b/js/src/tests/test262/language/statements/class/definition/fn-name-static-precedence.js @@ -5,7 +5,7 @@ es6id: 14.5.15 description: > Function `name` attribute not inferred in presence of static `name` method -info: > +info: | ClassDeclaration : class BindingIdentifier ClassTail [...] diff --git a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js index 6514eaa68149..1e2f55c6623b 100644 --- a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js @@ -9,7 +9,7 @@ features: [generators] es6id: 14.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js index dd49fb064560..293351879d34 100644 --- a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js +++ b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js @@ -9,7 +9,7 @@ features: [generators] es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js index e49edad4b4c6..f02dac5a6bc1 100644 --- a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js +++ b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js @@ -8,7 +8,7 @@ features: [generators] es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-parameter.js b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-parameter.js index f235b181ca69..739249264897 100644 --- a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-parameter.js +++ b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-as-parameter.js @@ -9,7 +9,7 @@ features: [generators] es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-star-after-newline.js b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-star-after-newline.js index 92a13f595626..0772b5a9d9a7 100644 --- a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-star-after-newline.js +++ b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-star-after-newline.js @@ -8,7 +8,7 @@ features: [generators] es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-weak-binding.js b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-weak-binding.js index fa0f2c274447..cba09bc873ee 100644 --- a/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-weak-binding.js +++ b/js/src/tests/test262/language/statements/class/definition/methods-gen-yield-weak-binding.js @@ -8,7 +8,7 @@ features: [generators] es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js index 6d7c49f43d52..9e321b707638 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js index de91f9b87b1c..c2df1f8cb799 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js index fd2a4143befa..debe654866b5 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js index 7bc2f5b65915..2d61f2d20ff4 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js index 974f584eb51c..fc8dcd01ebf5 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js index 65819d2f39e8..d2df69c08548 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js index 4b75345904d8..e544daecacf6 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js index f565ad48d60d..39bb4722ad28 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js index 0dd106c6b256..4399b4dce31f 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js index 884fdf6e9722..7b79c01a6a36 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js index 254948ef2d0d..e4993881d3c6 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js index ce45c43c51d1..86796dcf620d 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js index a4b30944b723..d0e4c3d4d448 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js index 1e0a02f91c82..df9d25aef0b9 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js index a740ff04e36d..a23e116f0593 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js index 27c54fae9c22..324d693c24a9 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js index 33023e17d2d6..8872a88cccf1 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js index 73917f1cadb7..dcc534b95e1e 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js index 5d70c3b70790..f9a020ca54ed 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js index f5c134ec59b0..6bf3597dbc5a 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js index 3a2ffaceaa41..27c0c1f3cd3f 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js index 6cac3c39cd48..76dc2eb56744 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js index 8aed4060a90c..955608c32010 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js index 802be2aff2a3..6efd40308bb6 100644 --- a/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-async-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js index a3c87fd735e8..fb314708872a 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js index bb4b88b49269..557b3b30d143 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js index 4c4e64183e94..6ed42fbf59ef 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js index 33048099d8d7..a2a5399e4b27 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js index e393a4594c81..1d4f087268c3 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js index 6dd7d989ef03..36b9aebff3ea 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js index be1b29bdccc8..9dc10b3b78c9 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js index d10ee454f239..a480e1e32b4d 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js index 3f61c4749fdd..6cd762edc467 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js index 4968cb2085e4..0f3f1d5db601 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js index 4716e1dcf953..33cff294e0b8 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js index ef7436939ef5..7b62dcf8a6f6 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.16 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js index e42413887e92..635081a1fa20 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js index 4871ae98f81c..83a6045c2575 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js index f8e604d00161..33de7d55a41c 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js index 93f9f1c3f652..b3ecda53ef1f 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js index 9c528262f8e7..746d35894034 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js index 27cdfb306264..95e26bcccd17 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js index efea4ca99715..450aaf63f15a 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js index cd5193184dc0..d7d6bfef2c38 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js index 1ea51a12fe68..380d0931fc43 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js index e753f03a7239..71f8a750b708 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js index af50ac9d1676..f717d1c9fc89 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js index c1c5fe853934..a29b145ac739 100644 --- a/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-gen-meth-static-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-ary.js index a8e81edfb8b9..4fd31910f45b 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-id.js index 12aa68ba2a80..3aff020757c1 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-obj.js index daa5420b935c..c84863cf21c4 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-ary.js index 440e2f9745fc..b1b5895aab86 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-id.js index 1205a82544f7..86c66275a0eb 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-obj.js index 9845f160a38e..b0f736382112 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js index aaabfd0c28a0..be42022cbfbb 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js index 04b32946045c..aaffc583b2f4 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js index f42009146491..41204890592b 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js index a873e19d0a63..780593c3a723 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js index 639a3488c7ca..2d09b320459e 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js index 5e4be6c1d890..e6ddb5f79d59 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-ary.js index 380168f85a26..c318e65fedb5 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-id.js index 42d8cce08a1a..bd53252a216a 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-obj.js index 38bc528573b2..467ed37567aa 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js index 4b63b4130306..205abdb7055d 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js index 307dbf7dcca8..2c42c0e5d67b 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js index a0426063fbd1..8129d60537b8 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js index 459fab820669..922b7042a59a 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js index 558c9087c643..2b8950e2cc3e 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js index 316a3b4dd4a5..6b79900e88ca 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js index 176c49087cd1..358d36dd8f77 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js index 838450dac010..ea814ba3ba44 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js index 51080925255c..72bf1bb7caea 100644 --- a/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/class/dstr-meth-static-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.5.15 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/err-field-delete-call-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-field-delete-call-expression-privatename.js index 3eae1fe0b88e..8392ce6abeef 100644 --- a/js/src/tests/test262/language/statements/class/err-field-delete-call-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-field-delete-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-field-delete-covered-call-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-field-delete-covered-call-expression-privatename.js index e05f8fb76be8..c3f2f4ab58e4 100644 --- a/js/src/tests/test262/language/statements/class/err-field-delete-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-field-delete-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-field-delete-covered-member-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-field-delete-covered-member-expression-privatename.js index 0e6a448bba0e..ef40854c51a3 100644 --- a/js/src/tests/test262/language/statements/class/err-field-delete-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-field-delete-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-field-delete-member-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-field-delete-member-expression-privatename.js index bf0f363a4638..26a0154a07f8 100644 --- a/js/src/tests/test262/language/statements/class/err-field-delete-member-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-field-delete-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js index de1f24299448..640c11444d88 100644 --- a/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js index 2e269533b145..ade746623042 100644 --- a/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-method-delete-call-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-method-delete-call-expression-privatename.js index 7f9f6ec604d7..e21a09a72a27 100644 --- a/js/src/tests/test262/language/statements/class/err-method-delete-call-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-method-delete-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-method-delete-covered-call-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-method-delete-covered-call-expression-privatename.js index b127f51ac72e..1645e278d5e6 100644 --- a/js/src/tests/test262/language/statements/class/err-method-delete-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-method-delete-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-method-delete-covered-member-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-method-delete-covered-member-expression-privatename.js index 69d4e27c6a8b..6a521f07ba6a 100644 --- a/js/src/tests/test262/language/statements/class/err-method-delete-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-method-delete-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-method-delete-member-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-method-delete-member-expression-privatename.js index 8fc138568261..665b8900fbda 100644 --- a/js/src/tests/test262/language/statements/class/err-method-delete-member-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-method-delete-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js index 8f202d0d59fd..1323e7dd99c0 100644 --- a/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js b/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js index a2f6e5209b12..09d10a4db126 100644 --- a/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js +++ b/js/src/tests/test262/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class-fields-private, class] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-computed-names.js index 03b9ef8e1dfb..3fb82655f68f 100644 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-computed-names.js deleted file mode 100644 index 1b45816c444b..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-gen.template -/*--- -description: Static Computed property names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js deleted file mode 100644 index 57fbf7b70bbf..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-gen.template -/*--- -description: Static computed property symbol names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-literal-names.js deleted file mode 100644 index bc1b77fd9d19..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-gen.template -/*--- -description: Static literal property names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-private-names.js deleted file mode 100644 index 56e0be128aaf..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-gen-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-gen.template -/*--- -description: literal private names (field definitions after a generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-method-computed-names.js index b88b44d31276..059a02f77ba3 100644 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-after-same-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-computed-names.js deleted file mode 100644 index 60e22718d354..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-method.template -/*--- -description: Static Computed property names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js deleted file mode 100644 index 95a45cb7e868..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-method.template -/*--- -description: Static computed property symbol names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-literal-names.js deleted file mode 100644 index fe193f11c3bb..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-method.template -/*--- -description: Static literal property names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-private-names.js deleted file mode 100644 index 51c047b17043..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-method-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-method.template -/*--- -description: literal private names (field definitions after a method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js index e79cb00f24f1..5d8e917a8496 100644 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static async *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static async *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js deleted file mode 100644 index 8eee15850801..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-computed-names.js +++ /dev/null @@ -1,61 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-gen.template -/*--- -description: Static Computed property names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static async *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js deleted file mode 100644 index 8d627c821cbb..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,75 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-gen.template -/*--- -description: Static computed property symbol names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static async *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js deleted file mode 100644 index 3d46bbb9ddb5..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-literal-names.js +++ /dev/null @@ -1,78 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-gen.template -/*--- -description: Static literal property names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static async *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js deleted file mode 100644 index b932c56946c2..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-gen-static-private-names.js +++ /dev/null @@ -1,71 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-gen.template -/*--- -description: literal private names (field definitions after a static async generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static async *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -C.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-computed-names.js index 5ea2df55440b..9c4e6a347429 100644 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static async m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static async m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js deleted file mode 100644 index 41baff184024..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-method.template -/*--- -description: Static Computed property names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static async m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js deleted file mode 100644 index 3c02ebbc1abe..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-method.template -/*--- -description: Static computed property symbol names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static async m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js deleted file mode 100644 index 50a1b7eeb419..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-method.template -/*--- -description: Static literal property names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static async m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js deleted file mode 100644 index 34cca845a476..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-async-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-async-method.template -/*--- -description: literal private names (field definitions after a static async method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static async m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -C.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-computed-names.js index 88eb14b203d2..1d6bb8836402 100644 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js deleted file mode 100644 index 87c0707c4027..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-gen.template -/*--- -description: Static Computed property names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js deleted file mode 100644 index 6dc437939190..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-gen.template -/*--- -description: Static computed property symbol names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js deleted file mode 100644 index 2ad340829671..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-gen.template -/*--- -description: Static literal property names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-private-names.js deleted file mode 100644 index 11a9ecf0c8e9..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-gen-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-gen.template -/*--- -description: literal private names (field definitions after a static generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, generators, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(C.m().next().value, 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-computed-names.js index f1be1b790d3b..4aafc5de3e9b 100644 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + static m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -41,16 +41,6 @@ verifyProperty(C, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-computed-names.js deleted file mode 100644 index df6d69553f76..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-method.template -/*--- -description: Static Computed property names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js deleted file mode 100644 index 003e3456e127..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-method.template -/*--- -description: Static computed property symbol names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-literal-names.js deleted file mode 100644 index d0374f944f39..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-method.template -/*--- -description: Static literal property names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-private-names.js deleted file mode 100644 index db3c04154483..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-after-same-line-static-method-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-static-method.template -/*--- -description: literal private names (field definitions after a static method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(C.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "m"), false); - -verifyProperty(C, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js index 5d770eaa9c39..7041bf00477a 100644 --- a/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-super.js index 5dbee21a3f42..67e981879ea2 100644 --- a/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-arrow-fnc-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-asi-3.js b/js/src/tests/test262/language/statements/class/fields-asi-3.js index b94e2e386e61..116e422c86f6 100644 --- a/js/src/tests/test262/language/statements/class/fields-asi-3.js +++ b/js/src/tests/test262/language/statements/class/fields-asi-3.js @@ -7,7 +7,7 @@ description: ASI test in field declarations -- error when computed name interpre esid: sec-automatic-semicolon-insertion features: [class, class-fields-public] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/fields-asi-4.js b/js/src/tests/test262/language/statements/class/fields-asi-4.js index fe69dd6f222b..ecd9c7757a24 100644 --- a/js/src/tests/test262/language/statements/class/fields-asi-4.js +++ b/js/src/tests/test262/language/statements/class/fields-asi-4.js @@ -7,7 +7,7 @@ description: ASI test in field declarations -- error when generator interpreted esid: sec-automatic-semicolon-insertion features: [class, class-fields-public, generators] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/fields-comp-name-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-comp-name-init-err-contains-arguments.js deleted file mode 100644 index bba4a92953f0..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-comp-name-init-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-decl-fields-comp-name.template -/*--- -description: Syntax error if `arguments` used in class field (computed ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var x = "string"; -class C { - static [x] = arguments; -} diff --git a/js/src/tests/test262/language/statements/class/fields-comp-name-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-comp-name-init-err-contains-super.js deleted file mode 100644 index 8ce91e308541..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-comp-name-init-err-contains-super.js +++ /dev/null @@ -1,29 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-decl-fields-comp-name.template -/*--- -description: Syntax error if `super()` used in class field (computed ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var x = "string"; -class C { - static [x] = super(); -} diff --git a/js/src/tests/test262/language/statements/class/fields-computed-name-static-propname-constructor.js b/js/src/tests/test262/language/statements/class/fields-computed-name-static-propname-constructor.js deleted file mode 100644 index d18bb71c4b31..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-computed-name-static-propname-constructor.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// Copyright (C) 2017 Valerie Young. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: > - static class fields forbid PropName 'constructor' (no early error for - ComputedPropertyName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -info: | - Static Semantics: PropName - ... - ComputedPropertyName : [ AssignmentExpression ] - Return empty. - - // This test file also tests the ComputedPropertyName won't trigger the - // following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or - "constructor". ----*/ - -class C { - static ["constructor"]; -} - -assert.sameValue(C.hasOwnProperty("constructor"), true); - -var c = new C(); -assert.sameValue(c.hasOwnProperty("constructor"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-computed-name-static-propname-prototype.js b/js/src/tests/test262/language/statements/class/fields-computed-name-static-propname-prototype.js deleted file mode 100644 index c68adf292141..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-computed-name-static-propname-prototype.js +++ /dev/null @@ -1,61 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// Copyright (C) 2017 Valerie Young. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: > - Cannot redefine a non-configurable, non-writable "prototype" property -esid: runtime-semantics-class-definition-evaluation -features: [class, class-fields-public] -info: | - // This test file also tests the ComputedPropertyName won't trigger the - // following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or - "constructor". - - 2.13.2 Runtime Semantics: ClassDefinitionEvaluation - - ... - 21. Perform MakeConstructor(F, false, proto). - ... - 25. Else, let elements be NonConstructorMethodDefinitions of ClassBody. - 26. Let fieldRecords be a new empty List. - 26. For each ClassElement me in order from elements - a. If IsStatic of me is false, then - i. Let fields be the result of performing ClassElementEvaluation for e - with arguments proto and false. - ... - 33. Let result be InitializeStaticFields(F). - ... - - // ClassElementEvaluation should evaluate the ComputedPropertyName - - 12.2.6.7 Runtime Semantics: Evaluation - - ComputedPropertyName:[AssignmentExpression] - - 1. Let exprValue be the result of evaluating AssignmentExpression. - 2. Let propName be ? GetValue(exprValue). - 3. Return ? ToPropertyKey(propName). - - // And the Static Fields should be defined to the class - - 2.8 InitializeStaticFields(F) - - ... - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). ----*/ - -assert.throws(TypeError, function() { - class C { - static ["prototype"]; - }; -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive-symbol.js b/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive-symbol.js index e1f1ceb2654b..b62f87db97d9 100644 --- a/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive-symbol.js +++ b/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive-symbol.js @@ -25,9 +25,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive.js b/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive.js index be91635790da..1fc065683859 100644 --- a/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive.js +++ b/js/src/tests/test262/language/statements/class/fields-computed-name-toprimitive.js @@ -25,9 +25,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/statements/class/fields-computed-variable-name-static-propname-constructor.js b/js/src/tests/test262/language/statements/class/fields-computed-variable-name-static-propname-constructor.js deleted file mode 100644 index 177a93827521..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-computed-variable-name-static-propname-constructor.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-constructor.case -// - src/class-fields/propname-error-static/cls-decl-static-variable-name.template -/*--- -description: static class field forbid PropName 'constructor' (no early error -- PropName of ComputedPropertyName not forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -info: | - Static Semantics: PropName - ... - ComputedPropertyName : [ AssignmentExpression ] - Return empty. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -var constructor = "foo"; -class C { - static [constructor]; -} - -assert.sameValue(C.hasOwnProperty("foo"), true); - -var c = new C(); -assert.sameValue(c.hasOwnProperty("foo"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-computed-variable-name-static-propname-prototype.js b/js/src/tests/test262/language/statements/class/fields-computed-variable-name-static-propname-prototype.js deleted file mode 100644 index d5da3c2f026d..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-computed-variable-name-static-propname-prototype.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-prototype.case -// - src/class-fields/propname-error-static/cls-decl-static-variable-name.template -/*--- -description: static class fields forbid PropName 'prototype' (no early error -- PropName of ComputedPropertyName not forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -info: | - Static Semantics: PropName - ... - ComputedPropertyName : [ AssignmentExpression ] - Return empty. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -var prototype = "foo"; -class C { - static [prototype]; -} - -assert.sameValue(C.hasOwnProperty("foo"), true); - -var c = new C(); -assert.sameValue(c.hasOwnProperty("foo"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-duplicate-privatenames.js b/js/src/tests/test262/language/statements/class/fields-duplicate-privatenames.js index 773a97e95500..20804c497d73 100644 --- a/js/src/tests/test262/language/statements/class/fields-duplicate-privatenames.js +++ b/js/src/tests/test262/language/statements/class/fields-duplicate-privatenames.js @@ -7,7 +7,7 @@ description: Syntax error if the same private field defined twice esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-arguments.js index e8fb46a4ef5c..f8e55340efbe 100644 --- a/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-super.js index e77d9f271f96..8bd15eca1e6e 100644 --- a/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-equality-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js index 739a2a77afcf..72527eeac0db 100644 --- a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js +++ b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-referenceerror.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js index 046e23ab7afc..75091d8f7fff 100644 --- a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js +++ b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-toprimitive-err.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js index 53a6c60678d8..0a1c882a2eb3 100644 --- a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js +++ b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-tostring-err.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js index e49bd6cc9b01..dec058f4bfc1 100644 --- a/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js +++ b/js/src/tests/test262/language/statements/class/fields-evaluation-error-computed-name-valueof-err.js @@ -24,9 +24,6 @@ info: | Runtime Semantics: ClassElementEvaluation - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - ClassElement: FieldDefinition; Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. diff --git a/js/src/tests/test262/language/statements/class/fields-init-value-incremental.js b/js/src/tests/test262/language/statements/class/fields-init-value-incremental.js index 2f3cb647726a..321380e1e81b 100644 --- a/js/src/tests/test262/language/statements/class/fields-init-value-incremental.js +++ b/js/src/tests/test262/language/statements/class/fields-init-value-incremental.js @@ -29,59 +29,43 @@ info: | ... ---*/ -var x = 0; +var x = 1; class C { - static [x++] = x++; [x++] = x++; - static [x++] = x++; [x++] = x++; } var c1 = new C(); var c2 = new C(); -verifyProperty(C, "0", { +verifyProperty(c1, "1", { + value: 3, + enumerable: true, + configurable: true, + writable: true, +}); + +verifyProperty(c1, "2", { value: 4, enumerable: true, configurable: true, writable: true, }); -verifyProperty(C, "2", { +verifyProperty(c2, "1", { value: 5, enumerable: true, configurable: true, writable: true, }); -verifyProperty(c1, "1", { +verifyProperty(c2, "2", { value: 6, enumerable: true, configurable: true, writable: true, }); -verifyProperty(c1, "3", { - value: 7, - enumerable: true, - configurable: true, - writable: true, -}); - -verifyProperty(c2, "1", { - value: 8, - enumerable: true, - configurable: true, - writable: true, -}); - -verifyProperty(c2, "3", { - value: 9, - enumerable: true, - configurable: true, - writable: true, -}); - reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-initializer-static-private-fields-forbidden.js b/js/src/tests/test262/language/statements/class/fields-initializer-static-private-fields-forbidden.js new file mode 100644 index 000000000000..e063ff3dc720 --- /dev/null +++ b/js/src/tests/test262/language/statements/class/fields-initializer-static-private-fields-forbidden.js @@ -0,0 +1,19 @@ +// |reftest| skip error:SyntaxError -- class-fields-private is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-private-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-decl-static-field-initializer.template +/*--- +description: static private class fields forbidden (early error -- static ClassElementName Initializer) +features: [class, class-fields-private] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + static #field = 0; +} diff --git a/js/src/tests/test262/language/statements/class/fields-initializer-static-public-fields-forbidden.js b/js/src/tests/test262/language/statements/class/fields-initializer-static-public-fields-forbidden.js new file mode 100644 index 000000000000..9f544e86dc48 --- /dev/null +++ b/js/src/tests/test262/language/statements/class/fields-initializer-static-public-fields-forbidden.js @@ -0,0 +1,19 @@ +// |reftest| skip error:SyntaxError -- class-fields-public is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-public-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-decl-static-field-initializer.template +/*--- +description: static public class fields forbidden (early error -- static ClassElementName Initializer) +features: [class, class-fields-public] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + static field = 0; +} diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-arguments.js index 20dc39b706c7..72d73fcc67db 100644 --- a/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-super.js index d8d1e1be70fa..e5d66492bbd9 100644 --- a/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-literal-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-propname-constructor.js b/js/src/tests/test262/language/statements/class/fields-literal-name-propname-constructor.js index 6214b85df9ad..66ec2a020785 100644 --- a/js/src/tests/test262/language/statements/class/fields-literal-name-propname-constructor.js +++ b/js/src/tests/test262/language/statements/class/fields-literal-name-propname-constructor.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: PropName diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-static-private-fields-forbidden.js b/js/src/tests/test262/language/statements/class/fields-literal-name-static-private-fields-forbidden.js new file mode 100644 index 000000000000..032aa6d7f21a --- /dev/null +++ b/js/src/tests/test262/language/statements/class/fields-literal-name-static-private-fields-forbidden.js @@ -0,0 +1,20 @@ +// |reftest| skip error:SyntaxError -- class-fields-private is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-private-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-decl-static-literal-name.template +/*--- +description: static private class fields forbidden (early error -- PropName of IdentifierName is forbidden value) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + static #field; +} diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-static-propname-constructor.js b/js/src/tests/test262/language/statements/class/fields-literal-name-static-propname-constructor.js deleted file mode 100644 index e3784d38af74..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-literal-name-static-propname-constructor.js +++ /dev/null @@ -1,32 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-constructor.case -// - src/class-fields/propname-error-static/cls-decl-static-literal-name.template -/*--- -description: static class field forbid PropName 'constructor' (early error -- PropName of IdentifierName is forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - LiteralPropertyName : IdentifierName - Return StringValue of IdentifierName. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static constructor; -} diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-static-propname-prototype.js b/js/src/tests/test262/language/statements/class/fields-literal-name-static-propname-prototype.js deleted file mode 100644 index 110cb3dffd73..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-literal-name-static-propname-prototype.js +++ /dev/null @@ -1,32 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-prototype.case -// - src/class-fields/propname-error-static/cls-decl-static-literal-name.template -/*--- -description: static class fields forbid PropName 'prototype' (early error -- PropName of IdentifierName is forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - LiteralPropertyName : IdentifierName - Return StringValue of IdentifierName. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static prototype; -} diff --git a/js/src/tests/test262/language/statements/class/fields-literal-name-static-public-fields-forbidden.js b/js/src/tests/test262/language/statements/class/fields-literal-name-static-public-fields-forbidden.js new file mode 100644 index 000000000000..ce125aeb46ef --- /dev/null +++ b/js/src/tests/test262/language/statements/class/fields-literal-name-static-public-fields-forbidden.js @@ -0,0 +1,20 @@ +// |reftest| skip error:SyntaxError -- class-fields-public is not supported +// This file was procedurally generated from the following sources: +// - src/class-fields/static-public-fields-forbidden.case +// - src/class-fields/propname-error-static/cls-decl-static-literal-name.template +/*--- +description: static public class fields forbidden (early error -- PropName of IdentifierName is forbidden value) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-public] +flags: [generated] +negative: + phase: parse + type: SyntaxError +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + static field; +} diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-computed-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-definitions-computed-names.js index 5ba7f678600a..2e4810e472c1 100644 --- a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-multiple-definitions-computed-names.js @@ -27,7 +27,7 @@ var x = "b"; class C { foo = "foobar"; m() { return 42 } - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] m2() { return 39 } bar = "barbaz"; @@ -77,16 +77,6 @@ verifyProperty(c, "bar", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-computed-names.js deleted file mode 100644 index d9e1805fdcec..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-computed-names.js +++ /dev/null @@ -1,95 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-multiple-definitions.template -/*--- -description: Static Computed property names (multiple fields definitions) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - foo = "foobar"; - m() { return 42 } - static ["a"] = 42; ["a"] = 39 - m2() { return 39 } - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js deleted file mode 100644 index 3dd85cf9f4ad..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-computed-symbol-names.js +++ /dev/null @@ -1,109 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-multiple-definitions.template -/*--- -description: Static computed property symbol names (multiple fields definitions) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - foo = "foobar"; - m() { return 42 } - static [x]; static [y] = 42 - m2() { return 39 } - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-literal-names.js deleted file mode 100644 index 356b32297500..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-literal-names.js +++ /dev/null @@ -1,112 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-multiple-definitions.template -/*--- -description: Static literal property names (multiple fields definitions) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - foo = "foobar"; - m() { return 42 } - static a; b = 42; - static c = fn - m2() { return 39 } - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-private-names.js deleted file mode 100644 index 66a629ba47d2..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-definitions-static-private-names.js +++ /dev/null @@ -1,105 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-multiple-definitions.template -/*--- -description: literal private names (multiple fields definitions) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - foo = "foobar"; - m() { return 42 } - static #x; static #y - m2() { return 39 } - bar = "barbaz"; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.m2(), 39); -assert.sameValue(Object.hasOwnProperty.call(c, "m2"), false); -assert.sameValue(c.m2, C.prototype.m2); - -verifyProperty(C.prototype, "m2", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-computed-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-computed-names.js index cbf99d7805a3..0ab1edbe39aa 100644 --- a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] foo = "foobar" bar = "barbaz"; @@ -55,16 +55,6 @@ verifyProperty(c, "bar", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js deleted file mode 100644 index 2891740b8187..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-computed-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-multiple-stacked-definitions.template -/*--- -description: Static Computed property names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39 - foo = "foobar" - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js deleted file mode 100644 index a6304e431b6f..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-computed-symbol-names.js +++ /dev/null @@ -1,87 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-multiple-stacked-definitions.template -/*--- -description: Static computed property symbol names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42 - foo = "foobar" - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js deleted file mode 100644 index 189b60ed737f..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-literal-names.js +++ /dev/null @@ -1,90 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-multiple-stacked-definitions.template -/*--- -description: Static literal property names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn - foo = "foobar" - bar = "barbaz"; - -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js deleted file mode 100644 index 876779f2ee4a..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-multiple-stacked-definitions-static-private-names.js +++ /dev/null @@ -1,83 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-multiple-stacked-definitions.template -/*--- -description: literal private names (multiple stacked fields definitions through ASI) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y - foo = "foobar" - bar = "barbaz"; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.foo, "foobar"); -assert.sameValue(Object.hasOwnProperty.call(C, "foo"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "foo"), false); - -verifyProperty(c, "foo", { - value: "foobar", - enumerable: true, - configurable: true, - writable: true, -}); - -assert.sameValue(c.bar, "barbaz"); -assert.sameValue(Object.hasOwnProperty.call(C, "bar"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "bar"), false); - -verifyProperty(c, "bar", { - value: "barbaz", - enumerable: true, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-computed-names.js index 52d58f5a86b8..39a9a36fabda 100644 --- a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] m() { return 42; } } @@ -42,16 +42,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js deleted file mode 100644 index c291a3dfa28d..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-new-no-sc-line-method.template -/*--- -description: Static Computed property names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39 - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js deleted file mode 100644 index 6a25e2f09941..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-new-no-sc-line-method.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42 - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js deleted file mode 100644 index 3a26fe4b6d8e..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-new-no-sc-line-method.template -/*--- -description: Static literal property names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-private-names.js deleted file mode 100644 index e6cd8082d39f..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-no-sc-line-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-new-no-sc-line-method.template -/*--- -description: literal private names (field definitions followed by a method in a new line without a semicolon) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y - m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-computed-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-computed-names.js index c44276c370d1..31819de04429 100644 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + [x] = 42; [10] = "meep"; ["not initialized"]; *m() { return 42; } } @@ -42,16 +42,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-computed-names.js deleted file mode 100644 index b5e62366030b..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-generator.template -/*--- -description: Static Computed property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39; - *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js deleted file mode 100644 index 307ab1906f04..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-generator.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42; - *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-literal-names.js deleted file mode 100644 index 1db22b5f909c..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-generator.template -/*--- -description: Static literal property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn; - *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-private-names.js deleted file mode 100644 index 4ce75d487bcf..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-gen-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-generator.template -/*--- -description: literal private names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y; - *m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-computed-names.js index 40401b5b2c59..20b28d3f95ed 100644 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + [x] = 42; [10] = "meep"; ["not initialized"]; m() { return 42; } } @@ -42,16 +42,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-computed-names.js deleted file mode 100644 index 919f3738a51f..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-method.template -/*--- -description: Static Computed property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39; - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js deleted file mode 100644 index 9ec42b36996c..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-method.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42; - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-literal-names.js deleted file mode 100644 index bfd5110bc82e..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-method.template -/*--- -description: Static literal property names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn; - m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-private-names.js deleted file mode 100644 index 82dc62fab491..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-new-sc-line-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-new-sc-line-method.template -/*--- -description: literal private names (field definitions followed by a method in a new line with a semicolon) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y; - m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js index 3a2722dbeeb4..789d67d6b66e 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js index 042345103b7a..8859f0eff852 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-private-arrow-fnc-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, arrow-function, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js index 150cb5382f1e..c64491598afa 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-super.js index 946683990f5c..0a7dc963ea9e 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-private-literal-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-arguments.js index f1b252fe4940..2dd555f61345 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-super.js index 7c553620f462..fc0bf0e6679d 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-private-ternary-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-arguments.js index c45c12e3c7e8..f45fae57273b 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-super.js index 36fe90e56ba9..44155711e5a9 100644 --- a/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-private-typeof-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public, class-fields-private] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-privatename-constructor-err.js b/js/src/tests/test262/language/statements/class/fields-privatename-constructor-err.js index 9912932ed973..d136223bebe8 100644 --- a/js/src/tests/test262/language/statements/class/fields-privatename-constructor-err.js +++ b/js/src/tests/test262/language/statements/class/fields-privatename-constructor-err.js @@ -7,7 +7,7 @@ description: Private class fields early error with StringValue "#constructor" esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElementName : PrivateName; diff --git a/js/src/tests/test262/language/statements/class/fields-regular-definitions-computed-names.js b/js/src/tests/test262/language/statements/class/fields-regular-definitions-computed-names.js index e794d4b59f54..be8803e8c121 100644 --- a/js/src/tests/test262/language/statements/class/fields-regular-definitions-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-regular-definitions-computed-names.js @@ -25,22 +25,12 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"] + [x] = 42; [10] = "meep"; ["not initialized"] } var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-computed-names.js deleted file mode 100644 index 62a07754c84a..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-computed-names.js +++ /dev/null @@ -1,49 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-regular-definitions.template -/*--- -description: Static Computed property names (regular fields defintion) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39 - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js deleted file mode 100644 index 1ae9ee593f49..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-computed-symbol-names.js +++ /dev/null @@ -1,63 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-regular-definitions.template -/*--- -description: Static computed property symbol names (regular fields defintion) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42 - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-literal-names.js deleted file mode 100644 index ce7f52533840..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-literal-names.js +++ /dev/null @@ -1,66 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-regular-definitions.template -/*--- -description: Static literal property names (regular fields defintion) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-private-names.js deleted file mode 100644 index adc3e334a0f8..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-regular-definitions-static-private-names.js +++ /dev/null @@ -1,58 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-regular-definitions.template -/*--- -description: literal private names (regular fields defintion) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-computed-names.js index 4f4c2df31a09..63086f5ebe9e 100644 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - async *m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + async *m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C.prototype, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-computed-names.js deleted file mode 100644 index ab3bfea69863..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-computed-names.js +++ /dev/null @@ -1,61 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-gen.template -/*--- -description: Static Computed property names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - async *m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js deleted file mode 100644 index ed6571655086..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,75 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-gen.template -/*--- -description: Static computed property symbol names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - async *m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-literal-names.js deleted file mode 100644 index fdf3679b0a6f..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-literal-names.js +++ /dev/null @@ -1,78 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-gen.template -/*--- -description: Static literal property names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - async *m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-private-names.js deleted file mode 100644 index c84be12240dc..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-gen-static-private-names.js +++ /dev/null @@ -1,71 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-gen.template -/*--- -description: literal private names (field definitions after an async generator in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-iteration] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - async *m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -c.m().next().then(function(v) { - assert.sameValue(v.value, 42); - assert.sameValue(v.done, true); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-method-computed-names.js index 5aafc94310ec..c8f0e0856c51 100644 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-same-line-async-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - async m() { return 42; } static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; + async m() { return 42; } [x] = 42; [10] = "meep"; ["not initialized"]; } @@ -40,16 +40,6 @@ verifyProperty(C.prototype, "m", { writable: true, }, {restore: true}); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-computed-names.js deleted file mode 100644 index dd6fe28530cc..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-computed-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-method.template -/*--- -description: Static Computed property names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - async m() { return 42; } static ["a"] = 42; ["a"] = 39; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js deleted file mode 100644 index 9713e4739d39..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-computed-symbol-names.js +++ /dev/null @@ -1,74 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-method.template -/*--- -description: Static computed property symbol names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - async m() { return 42; } static [x]; static [y] = 42; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-literal-names.js deleted file mode 100644 index 50decaf343cd..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-literal-names.js +++ /dev/null @@ -1,77 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-method.template -/*--- -description: Static literal property names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - async m() { return 42; } static a; b = 42; - static c = fn; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-private-names.js deleted file mode 100644 index 9b1076c451bc..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-async-method-static-private-names.js +++ /dev/null @@ -1,70 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-after-same-line-async-method.template -/*--- -description: literal private names (field definitions after an async method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, async-functions] -flags: [generated, async] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - async m() { return 42; } static #x; static #y; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); -assert.sameValue(c.m, C.prototype.m); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}, {restore: true}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -c.m().then(function(v) { - assert.sameValue(v, 42); -}, $DONE).then($DONE, $DONE); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-gen-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-gen-computed-names.js index a8b813365c71..a670bd143791 100644 --- a/js/src/tests/test262/language/statements/class/fields-same-line-gen-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-same-line-gen-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; *m() { return 42; } + [x] = 42; [10] = "meep"; ["not initialized"]; *m() { return 42; } } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-computed-names.js deleted file mode 100644 index 17c19a4f1440..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-same-line-generator.template -/*--- -description: Static Computed property names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39; *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js deleted file mode 100644 index fb0e86dbdb23..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-same-line-generator.template -/*--- -description: Static computed property symbol names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42; *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-literal-names.js deleted file mode 100644 index 63dd785d56c0..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-same-line-generator.template -/*--- -description: Static literal property names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn; *m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-private-names.js deleted file mode 100644 index e3af4ddf7d4e..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-gen-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-same-line-generator.template -/*--- -description: literal private names (field definitions followed by a generator method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public, generators] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y; *m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m().next().value, 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-method-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-method-computed-names.js index 764c2ef6d6f1..7cc710c37f01 100644 --- a/js/src/tests/test262/language/statements/class/fields-same-line-method-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-same-line-method-computed-names.js @@ -25,7 +25,7 @@ var x = "b"; class C { - static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"]; m() { return 42; } + [x] = 42; [10] = "meep"; ["not initialized"]; m() { return 42; } } @@ -41,16 +41,6 @@ verifyProperty(C.prototype, "m", { writable: true, }); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-method-static-computed-names.js deleted file mode 100644 index 79e6b1cc9960..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-computed-names.js +++ /dev/null @@ -1,59 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-same-line-method.template -/*--- -description: Static Computed property names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - static ["a"] = 42; ["a"] = 39; m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-method-static-computed-symbol-names.js deleted file mode 100644 index 77a8207d39ef..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-computed-symbol-names.js +++ /dev/null @@ -1,73 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-same-line-method.template -/*--- -description: Static computed property symbol names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - static [x]; static [y] = 42; m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-method-static-literal-names.js deleted file mode 100644 index 61dbfee68120..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-literal-names.js +++ /dev/null @@ -1,76 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-same-line-method.template -/*--- -description: Static literal property names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - static a; b = 42; - static c = fn; m() { return 42; } - -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-same-line-method-static-private-names.js deleted file mode 100644 index 952c2d7d60e8..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-same-line-method-static-private-names.js +++ /dev/null @@ -1,69 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-same-line-method.template -/*--- -description: literal private names (field definitions followed by a method in the same line) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - static #x; static #y; m() { return 42; } -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -assert.sameValue(c.m(), 42); -assert.sameValue(c.m, C.prototype.m); -assert.sameValue(Object.hasOwnProperty.call(c, "m"), false); - -verifyProperty(C.prototype, "m", { - enumerable: false, - configurable: true, - writable: true, -}); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js deleted file mode 100644 index c6a523cb4c2a..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-comp-name-init-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-decl-fields-static-comp-name.template -/*--- -description: Syntax error if `arguments` used in class field (static computed ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var x = "string"; -class C { - static [x] = arguments; -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-comp-name-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-static-comp-name-init-err-contains-super.js deleted file mode 100644 index 36733d0e3e3c..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-comp-name-init-err-contains-super.js +++ /dev/null @@ -1,29 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-decl-fields-static-comp-name.template -/*--- -description: Syntax error if `super()` used in class field (static computed ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -var x = "string"; -class C { - static [x] = super(); -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-computed-name-toprimitive-symbol.js b/js/src/tests/test262/language/statements/class/fields-static-computed-name-toprimitive-symbol.js deleted file mode 100644 index b0919f9d8ee4..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-computed-name-toprimitive-symbol.js +++ /dev/null @@ -1,108 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-name-toprimitive-symbol.case -// - src/class-fields/default/cls-decl.template -/*--- -description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class declaration) -esid: prod-FieldDefinition -features: [computed-property-names, Symbol.toPrimitive, Symbol, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - Runtime Semantics: ClassDefinitionEvaluation - - ... - 27. For each ClassElement e in order from elements - a. If IsStatic of me is false, then - i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false. - b. Else, - i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false. - c. If fields is an abrupt completion, then - i. Set the running execution context's LexicalEnvironment to lex. - ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. - iii. Return Completion(status). - ... - - Runtime Semantics: ClassElementEvaluation - - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - - ClassElement: FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. - - Runtime Semantics: ClassFieldDefinitionEvaluation - With parameters isStatic and homeObject. - - 1. Let fieldName be the result of evaluating ClassElementName. - 2. ReturnIfAbrupt(fieldName). - ... - - Runtime Semantics: Evaluation - ComputedPropertyName: [ AssignmentExpression ] - - 1. Let exprValue be the result of evaluating AssignmentExpression. - 2. Let propName be ? GetValue(exprValue). - 3. Return ? ToPropertyKey(propName). - ----*/ -var s1 = Symbol(); -var s2 = Symbol(); -var s3 = Symbol(); -var err = function() { throw new Test262Error(); }; -var obj1 = { - [Symbol.toPrimitive]: function() { return s1; }, - toString: err, - valueOf: err -}; - -var obj2 = { - toString: function() { return s2; }, - valueOf: err -}; - -var obj3 = { - toString: undefined, - valueOf: function() { return s3; } -}; - - - -class C { - static [obj1] = 42; - static [obj2] = 43; - static [obj3] = 44; -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, s1), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, s2), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, s3), false); - -verifyProperty(C, s1, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, s2, { - value: 43, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, s3, { - value: 44, - enumerable: true, - writable: true, - configurable: true -}); - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, s1), false); -assert.sameValue(Object.hasOwnProperty.call(c, s2), false); -assert.sameValue(Object.hasOwnProperty.call(c, s3), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-static-computed-name-toprimitive.js b/js/src/tests/test262/language/statements/class/fields-static-computed-name-toprimitive.js deleted file mode 100644 index 5594c3f8bd01..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-computed-name-toprimitive.js +++ /dev/null @@ -1,105 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-name-toprimitive.case -// - src/class-fields/default/cls-decl.template -/*--- -description: ToPrimitive evaluation in the ComputedPropertyName (field definitions in a class declaration) -esid: prod-FieldDefinition -features: [computed-property-names, Symbol.toPrimitive, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - Runtime Semantics: ClassDefinitionEvaluation - - ... - 27. For each ClassElement e in order from elements - a. If IsStatic of me is false, then - i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false. - b. Else, - i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false. - c. If fields is an abrupt completion, then - i. Set the running execution context's LexicalEnvironment to lex. - ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. - iii. Return Completion(status). - ... - - Runtime Semantics: ClassElementEvaluation - - ClassElement: static FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - - ClassElement: FieldDefinition; - Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter false and object. - - Runtime Semantics: ClassFieldDefinitionEvaluation - With parameters isStatic and homeObject. - - 1. Let fieldName be the result of evaluating ClassElementName. - 2. ReturnIfAbrupt(fieldName). - ... - - Runtime Semantics: Evaluation - ComputedPropertyName: [ AssignmentExpression ] - - 1. Let exprValue be the result of evaluating AssignmentExpression. - 2. Let propName be ? GetValue(exprValue). - 3. Return ? ToPropertyKey(propName). - ----*/ -var err = function() { throw new Test262Error(); }; -var obj1 = { - [Symbol.toPrimitive]: function() { return "d"; }, - toString: err, - valueOf: err -}; - -var obj2 = { - toString: function() { return "e"; }, - valueOf: err -}; - -var obj3 = { - toString: undefined, - valueOf: function() { return "f"; } -}; - - - -class C { - static [obj1] = 42; - static [obj2] = 43; - static [obj3] = 44; -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "d"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "e"), false); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "f"), false); - -verifyProperty(C, "d", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, "e", { - value: 43, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(C, "f", { - value: 44, - enumerable: true, - writable: true, - configurable: true -}); - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(c, "d"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "e"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "f"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-static-literal-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-static-literal-init-err-contains-arguments.js deleted file mode 100644 index 713b1638c76c..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-literal-init-err-contains-arguments.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-decl-fields-static-literal-name.template -/*--- -description: Syntax error if `arguments` used in class field (static literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static x = arguments; -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-literal-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-static-literal-init-err-contains-super.js deleted file mode 100644 index 240191b95f6a..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-literal-init-err-contains-super.js +++ /dev/null @@ -1,28 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-decl-fields-static-literal-name.template -/*--- -description: Syntax error if `super()` used in class field (static literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static x = super(); -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-private-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-static-private-init-err-contains-arguments.js deleted file mode 100644 index dbeae6020860..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-private-init-err-contains-arguments.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-decl-fields-static-private-name.template -/*--- -description: Syntax error if `arguments` used in class field (static PrivateName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public, class-fields-private] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static #x = arguments; -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-private-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-static-private-init-err-contains-super.js deleted file mode 100644 index f34e5d19897b..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-private-init-err-contains-super.js +++ /dev/null @@ -1,28 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-decl-fields-static-private-name.template -/*--- -description: Syntax error if `super()` used in class field (static PrivateName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public, class-fields-private] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static #x = super(); -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-redeclaration-symbol.js b/js/src/tests/test262/language/statements/class/fields-static-redeclaration-symbol.js deleted file mode 100644 index bd5b379fee79..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-redeclaration-symbol.js +++ /dev/null @@ -1,53 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-redeclaration-symbol.case -// - src/class-fields/default/cls-decl.template -/*--- -description: Redeclaration of public static fields with the same name (field definitions in a class declaration) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js, compareArray.js] -info: | - 2.13.2 Runtime Semantics: ClassDefinitionEvaluation - - ... - 30. Set the value of F's [[Fields]] internal slot to fieldRecords. - ... - 33. Let result be InitializeStaticFields(F). - - InitializeStaticFields(F) - - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). - ----*/ -var x = []; -var y = Symbol(); - - -class C { - static [y] = (x.push("a"), "old_value"); - static [y] = (x.push("b"), "same_value"); - static [y] = (x.push("c"), "same_value"); -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); - -verifyProperty(C, y, { - value: "same_value", - enumerable: true, - writable: true, - configurable: true -}); - -assert(compareArray(x, ["a", "b", "c"])); - -var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -assert(compareArray(x, ["a", "b", "c"]), "static fields are not redefined on class instatiation"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-static-redeclaration.js b/js/src/tests/test262/language/statements/class/fields-static-redeclaration.js deleted file mode 100644 index ae86d3710034..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-redeclaration.js +++ /dev/null @@ -1,53 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-redeclaration.case -// - src/class-fields/default/cls-decl.template -/*--- -description: Redeclaration of public static fields with the same name (field definitions in a class declaration) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js, compareArray.js] -info: | - 2.13.2 Runtime Semantics: ClassDefinitionEvaluation - - ... - 30. Set the value of F's [[Fields]] internal slot to fieldRecords. - ... - 33. Let result be InitializeStaticFields(F). - - InitializeStaticFields(F) - - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). - ----*/ -var x = []; - - -class C { - static y = (x.push("a"), "old_value"); - static ["y"] = (x.push("b"), "another_value"); - static "y" = (x.push("c"), "same_value"); - static y = (x.push("d"), "same_value"); -} - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); - -verifyProperty(C, "y", { - value: "same_value", - enumerable: true, - writable: true, - configurable: true -}); - -assert(compareArray(x, ["a", "b", "c", "d"])); - -var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -assert(compareArray(x, ["a", "b", "c", "d"]), "static fields are not redefined on class instatiation"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js deleted file mode 100644 index 93b67e844fc6..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-string-literal-name-init-err-contains-arguments.js +++ /dev/null @@ -1,35 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-arguments.case -// - src/class-fields/initializer-error/cls-decl-fields-static-string-literal-name.template -/*--- -description: Syntax error if `arguments` used in class field (static string literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if ContainsArguments of Initializer is true. - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static 'x' = arguments; -} diff --git a/js/src/tests/test262/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js deleted file mode 100644 index a695011f6f12..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-static-string-literal-name-init-err-contains-super.js +++ /dev/null @@ -1,28 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/init-err-contains-super.case -// - src/class-fields/initializer-error/cls-decl-fields-static-string-literal-name.template -/*--- -description: Syntax error if `super()` used in class field (static string literal ClassElementName) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: Early Errors - - FieldDefinition: - PropertyNameInitializeropt - - - It is a Syntax Error if Initializer is present and Initializer Contains SuperCall is true. - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static 'x' = super(); -} diff --git a/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js index 1226292e35c6..dfe49b090e6c 100644 --- a/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-super.js index e43f85a204d2..7c612af74a02 100644 --- a/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-string-literal-name-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-string-name-propname-constructor.js b/js/src/tests/test262/language/statements/class/fields-string-name-propname-constructor.js index 51cf78eb0a88..9c6a2cdd6d99 100644 --- a/js/src/tests/test262/language/statements/class/fields-string-name-propname-constructor.js +++ b/js/src/tests/test262/language/statements/class/fields-string-name-propname-constructor.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: PropName diff --git a/js/src/tests/test262/language/statements/class/fields-string-name-static-propname-constructor.js b/js/src/tests/test262/language/statements/class/fields-string-name-static-propname-constructor.js deleted file mode 100644 index 95d24408caf8..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-string-name-static-propname-constructor.js +++ /dev/null @@ -1,33 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-constructor.case -// - src/class-fields/propname-error-static/cls-decl-static-string-name.template -/*--- -description: static class field forbid PropName 'constructor' (early error -- PropName of StringLiteral is forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - ... - LiteralPropertyName : StringLiteral - Return the String value whose code units are the SV of the StringLiteral. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static 'constructor'; -} diff --git a/js/src/tests/test262/language/statements/class/fields-string-name-static-propname-prototype.js b/js/src/tests/test262/language/statements/class/fields-string-name-static-propname-prototype.js deleted file mode 100644 index 480fcdeff00c..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-string-name-static-propname-prototype.js +++ /dev/null @@ -1,33 +0,0 @@ -// |reftest| skip error:SyntaxError -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-propname-prototype.case -// - src/class-fields/propname-error-static/cls-decl-static-string-name.template -/*--- -description: static class fields forbid PropName 'prototype' (early error -- PropName of StringLiteral is forbidden value) -esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-public] -flags: [generated] -negative: - phase: early - type: SyntaxError -info: | - Static Semantics: PropName - ... - LiteralPropertyName : StringLiteral - Return the String value whose code units are the SV of the StringLiteral. - - - // This test file tests the following early error: - Static Semantics: Early Errors - - ClassElement : staticFieldDefinition; - It is a Syntax Error if PropName of FieldDefinition is "prototype" or "constructor". - ----*/ - - -throw "Test262: This statement should not be evaluated."; - -class C { - static 'prototype'; -} diff --git a/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-arguments.js index 98f927a43660..ad7003c56ee6 100644 --- a/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-super.js index f684d28134c5..d1626882c6c2 100644 --- a/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-ternary-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-arguments.js b/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-arguments.js index de9334a80666..be1d0258b0f2 100644 --- a/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-arguments.js +++ b/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-arguments.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-super.js b/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-super.js index b65ce415351c..a0b111d4206a 100644 --- a/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-super.js +++ b/js/src/tests/test262/language/statements/class/fields-typeof-init-err-contains-super.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-public] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Static Semantics: Early Errors diff --git a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-computed-names.js b/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-computed-names.js index ecec5ca9850e..cfc44033b77b 100644 --- a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-computed-names.js +++ b/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-computed-names.js @@ -26,23 +26,13 @@ var x = "b"; class C { ;;;; - ;;;;;;static ["a"] = 39; [x] = 42; [10] = "meep"; ["not initialized"];;;;;;; + ;;;;;;[x] = 42; [10] = "meep"; ["not initialized"];;;;;;; ;;;; } var c = new C(); -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); diff --git a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-computed-names.js b/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-computed-names.js deleted file mode 100644 index caa7a42025f3..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-computed-names.js +++ /dev/null @@ -1,51 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-names.case -// - src/class-fields/productions/cls-decl-wrapped-in-sc.template -/*--- -description: Static Computed property names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ - - -class C { - ;;;; - ;;;;;;static ["a"] = 42; ["a"] = 39;;;;;;; - ;;;; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); - -verifyProperty(C, "a", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -verifyProperty(c, "a", { - value: 39, - enumerable: true, - writable: true, - configurable: true -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js b/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js deleted file mode 100644 index 1a2ab9fa1532..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-computed-symbol-names.js +++ /dev/null @@ -1,65 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-computed-symbol-names.case -// - src/class-fields/productions/cls-decl-wrapped-in-sc.template -/*--- -description: Static computed property symbol names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [Symbol, computed-property-names, class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -var x = Symbol(); -var y = Symbol(); - - - -class C { - ;;;; - ;;;;;;static [x]; static [y] = 42;;;;;;; - ;;;; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, x), false); -assert.sameValue(Object.hasOwnProperty.call(c, x), false); - -verifyProperty(C, x, { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, y), false); -assert.sameValue(Object.hasOwnProperty.call(c, y), false); - -verifyProperty(C, y, { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "x"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "x"), false); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "y"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "y"), false); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-literal-names.js b/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-literal-names.js deleted file mode 100644 index 86b62821b41c..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-literal-names.js +++ /dev/null @@ -1,68 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-literal-names.case -// - src/class-fields/productions/cls-decl-wrapped-in-sc.template -/*--- -description: Static literal property names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [class, class-fields-public] -flags: [generated] -includes: [propertyHelper.js] -info: | - ClassElement: - ... - FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PropertyName - ----*/ -const fn = function() {} - - - -class C { - ;;;; - ;;;;;;static a; b = 42; - static c = fn;;;;;;; - ;;;; - -} - -var c = new C(); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "a"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "a"), false); - -verifyProperty(C, "a", { - value: undefined, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "b"), false); -assert.sameValue(Object.hasOwnProperty.call(C, "b"), false); - -verifyProperty(c, "b", { - value: 42, - enumerable: true, - writable: true, - configurable: true -}); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "c"), false); -assert.sameValue(Object.hasOwnProperty.call(c, "c"), false); - -verifyProperty(C, "c", { - value: fn, - enumerable: true, - writable: true, - configurable: true -}); - - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-private-names.js b/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-private-names.js deleted file mode 100644 index 6f314d430bab..000000000000 --- a/js/src/tests/test262/language/statements/class/fields-wrapped-in-sc-static-private-names.js +++ /dev/null @@ -1,60 +0,0 @@ -// |reftest| skip -- class-fields-private,class-fields-public is not supported -// This file was procedurally generated from the following sources: -// - src/class-fields/static-private-names.case -// - src/class-fields/productions/cls-decl-wrapped-in-sc.template -/*--- -description: literal private names (fields definition wrapped in semicolons) -esid: prod-FieldDefinition -features: [class-fields-private, class, class-fields-public] -flags: [generated] -info: | - ClassElement: - ... - static FieldDefinition ; - - FieldDefinition: - ClassElementName Initializer_opt - - ClassElementName: - PrivateName - - PrivateName: - #IdentifierName - ----*/ - - -class C { - ;;;; - ;;;;;;static #x; static #y;;;;;;; - ;;;; -static x() { - this.#x = 42; - return this.#x; - } - static y() { - this.#y = 43; - return this.#y; - } -} - -var c = new C(); - -// Test the private fields do not appear as properties before set to value -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#x"), false, "test 1"); -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 2"); -assert.sameValue(Object.hasOwnProperty.call(c, "#x"), false, "test 3"); - -assert.sameValue(Object.hasOwnProperty.call(C.prototype, "#y"), false, "test 4"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 5"); -assert.sameValue(Object.hasOwnProperty.call(c, "#y"), false, "test 6"); - -// Test if private fields can be sucessfully accessed and set to value -assert.sameValue(C.x(), 42, "test 7"); -assert.sameValue(C.y(), 43, "test 8"); - -// Test the private fields do not appear as properties before after set to value -assert.sameValue(Object.hasOwnProperty.call(C, "#x"), false, "test 9"); -assert.sameValue(Object.hasOwnProperty.call(C, "#y"), false, "test 10"); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-duplicates.js index 65af4f051d9c..3695a2026395 100644 --- a/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-rest.js index 8664a5344ad3..ad45943fdaaa 100644 --- a/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/gen-meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js index c93e893d942e..a2c734ec5785 100644 --- a/js/src/tests/test262/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-class-definitions-runtime-semantics-evaluation features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-duplicates.js index 622f89715266..22fac713be6d 100644 --- a/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-rest.js index 0cda6976d5fe..de8e4e0ddc3b 100644 --- a/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/gen-meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js index e2635cc79f27..1d5cd113822f 100644 --- a/js/src/tests/test262/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/gen-method-param-dflt-yield.js b/js/src/tests/test262/language/statements/class/gen-method-param-dflt-yield.js index 5504b8f914f8..b62ad97a5fb1 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-param-dflt-yield.js +++ b/js/src/tests/test262/language/statements/class/gen-method-param-dflt-yield.js @@ -17,7 +17,7 @@ info: | evaluated before the resulting generator object is in a resumable state. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js index 8981efe74a36..0da959b40dc2 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier.js index 4f88667d29ef..a1299c108b01 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js index 23d2d8bf4251..f37611744096 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference.js index 239665a6136e..b73d14726deb 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js index 6e0531f9e1c9..4f1184011ac1 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier.js index 87500dac6157..c3534dfa75a4 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-spread-strict-strict.js index 04a22cbf6021..4205407ca4ba 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-strict-strict.js b/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-strict-strict.js index 911477278009..9d6dd6790ff8 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/gen-method-static-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js index 694ea7717a1a..1df9bf95b2c1 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier.js b/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier.js index eaacd9dda40b..6b04cd9331df 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js index cf9a71dbb2f3..9e4acc41bc17 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference.js b/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference.js index 983a39440f70..bd7b2cfcc5cd 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier-escaped.js index 434f21150e41..4066877ad2c7 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier.js b/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier.js index f5f972c7d9a3..4fc606ace71d 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-spread-strict-strict.js index e24f0d7deba2..7568f8333719 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-strict-strict.js b/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-strict-strict.js index 61943c49bcdc..35e111622618 100644 --- a/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/statements/class/gen-method-yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorMethod features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | ClassElement : diff --git a/js/src/tests/test262/language/statements/class/getter-param-dflt.js b/js/src/tests/test262/language/statements/class/getter-param-dflt.js index 02e7899a8bb3..eda62559fffc 100644 --- a/js/src/tests/test262/language/statements/class/getter-param-dflt.js +++ b/js/src/tests/test262/language/statements/class/getter-param-dflt.js @@ -15,7 +15,7 @@ info: | get PropertyName[?Yield] ( ) { FunctionBody } features: [default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/meth-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/meth-dflt-params-duplicates.js index 0fa8f086c6d0..cfbe323e2ee4 100644 --- a/js/src/tests/test262/language/statements/class/meth-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/meth-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/meth-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/meth-dflt-params-rest.js index ebc372ca3a7f..8186d3fe3efe 100644 --- a/js/src/tests/test262/language/statements/class/meth-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/meth-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/meth-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/meth-rest-params-trailing-comma-early-error.js index 1d3b33623825..b8140f6aed62 100644 --- a/js/src/tests/test262/language/statements/class/meth-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/meth-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-runtime-semantics-bindingclassdeclarationevaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/meth-static-dflt-params-duplicates.js b/js/src/tests/test262/language/statements/class/meth-static-dflt-params-duplicates.js index 45434de229c4..2811a78a370b 100644 --- a/js/src/tests/test262/language/statements/class/meth-static-dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/class/meth-static-dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/meth-static-dflt-params-rest.js b/js/src/tests/test262/language/statements/class/meth-static-dflt-params-rest.js index 29d07b13bf33..38405a730fa6 100644 --- a/js/src/tests/test262/language/statements/class/meth-static-dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/class/meth-static-dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js index 8a5b8f8eca57..71d3e361ee18 100644 --- a/js/src/tests/test262/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-runtime-semantics-bindingclassdeclarationevaluation flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | ClassDeclaration : class BindingIdentifier ClassTail diff --git a/js/src/tests/test262/language/statements/class/method-param-yield.js b/js/src/tests/test262/language/statements/class/method-param-yield.js index 683a09abb86b..ba45fe1cb9cf 100644 --- a/js/src/tests/test262/language/statements/class/method-param-yield.js +++ b/js/src/tests/test262/language/statements/class/method-param-yield.js @@ -12,7 +12,7 @@ info: | PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody } features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/name.js b/js/src/tests/test262/language/statements/class/name.js index c9b339a40ea5..a426556179f9 100644 --- a/js/src/tests/test262/language/statements/class/name.js +++ b/js/src/tests/test262/language/statements/class/name.js @@ -4,7 +4,7 @@ /*--- es6id: 14.5.15 description: Assignment of function `name` attribute -info: > +info: | ClassDeclaration : class BindingIdentifier ClassTail [...] diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-1.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-1.js index 53801a222e50..adc89a4aacb7 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-1.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-1.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-2.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-2.js index 12fcff5abe66..6462a4e3a2bd 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-2.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-2.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-3.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-3.js index 4b9a66930f31..977d7ac0025b 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-3.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-3.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class, class-fields-private, class-fields-public] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-4.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-4.js index 973dc81b2b5d..3d401856d92c 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-4.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-4.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-5.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-5.js index 358095e86c47..3cb7f3314e95 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-5.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-5.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-6.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-6.js index 7cb5441b08b0..9d0e1536be7e 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-6.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-6.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class, class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-7.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-7.js index 57df8ea8b385..786520911d49 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-7.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-7.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-8.js b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-8.js index 7e9e08eb6386..f05d5ea3001d 100644 --- a/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-8.js +++ b/js/src/tests/test262/language/statements/class/privatename-not-valid-earlyerr-script-8.js @@ -12,7 +12,7 @@ info: | 3. If AllPrivateNamesValid of ScriptBody with the argument names is false, throw a SyntaxError exception. features: [class-fields-private] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/static-classelementname-abrupt-completion.js b/js/src/tests/test262/language/statements/class/static-classelementname-abrupt-completion.js deleted file mode 100644 index 52fd9da8a3ab..000000000000 --- a/js/src/tests/test262/language/statements/class/static-classelementname-abrupt-completion.js +++ /dev/null @@ -1,45 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// Copyright (C) 2017 Valerie Young. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: Class definition should error if evaluation of static ClassElementName errors -esid: runtime-semantics-class-definition-evaluation -info: | - Runtime Semantics: ClassDefinitionEvaluation - ... - 27. For each ClassElement e in order from elements - a. If IsStatic of e is false, then - i. Let fields be the result of performing ClassElementEvaluation for e with arguments proto and false. - b. Else, - i. Let fields be the result of performing ClassElementEvaluation for e with arguments F and false. - c. If fields is an abrupt completion, then - i. Set the running execution context's LexicalEnvironment to lex. - ii. Set the running execution context's PrivateNameEnvironment to outerPrivateEnvironment. - iii. Return Completion(status). - - Runtime Semantics: ClassElementEvaluation - ... - ClassElement : static FieldDefinition ; - 1. Return ClassFieldDefinitionEvaluation of FieldDefinition with parameter true and object. - - Runtime Semantics: ClassFieldDefinitionEvaluation - With parameters isStatic and homeObject. - FieldDefinition : ClassElementNameInitializer - 1. Let fieldName be the result of evaluating ClassElementName. - 2. ReturnIfAbrupt(fieldName). - -features: [class, class-fields-public] ----*/ - -function f() { - throw new Test262Error(); -} - -assert.throws(Test262Error, function() { - class C { - static [f()] - } -}); - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js b/js/src/tests/test262/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js deleted file mode 100644 index ba88c0770a40..000000000000 --- a/js/src/tests/test262/language/statements/class/static-fielddefinition-initializer-abrupt-completion.js +++ /dev/null @@ -1,45 +0,0 @@ -// |reftest| skip -- class-fields-public is not supported -// Copyright (C) 2017 Valerie Young. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -description: Class construction should error if evaluation of static field initializer errors -esid: runtime-semantics-class-definition-evaluation -info: | - Runtime Semantics: ClassDefinitionEvaluation - ... - 33. Let result be InitializeStaticFields(F). - 34. If result is an abrupt completion, then - a. Set the running execution context's LexicalEnvironment to lex. - b. Return Completion(result). - - InitializeStaticFields(F) - 1. Assert: Type(F) is Object. - 2. Assert: F is an ECMAScript function object. - 3. Let fieldRecords be the value of F's [[Fields]] internal slot. - 4. For each item fieldRecord in order from fieldRecords, - a. If fieldRecord.[[static]] is true, then - i. Perform ? DefineField(F, fieldRecord). - - DefineField(receiver, fieldRecord) - 1. Assert: Type(receiver) is Object. - 2. Assert: fieldRecord is a Record as created by ClassFieldDefinitionEvaluation. - 3. Let fieldName be fieldRecord.[[Name]]. - 4. Let initializer be fieldRecord.[[Initializer]]. - 5. If initializer is not empty, then - a. Let initValue be ? Call(initializer, receiver). - -features: [class, class-fields-public] ----*/ - -function f() { - throw new Test262Error(); -} - -assert.throws(Test262Error, function() { - class C { - static x = f(); - } -}) - -reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/class/static-gen-method-param-dflt-yield.js b/js/src/tests/test262/language/statements/class/static-gen-method-param-dflt-yield.js index cc93d230928f..e51e28f28246 100644 --- a/js/src/tests/test262/language/statements/class/static-gen-method-param-dflt-yield.js +++ b/js/src/tests/test262/language/statements/class/static-gen-method-param-dflt-yield.js @@ -17,7 +17,7 @@ info: | evaluated before the resulting generator object is in a resumable state. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/static-method-param-yield.js b/js/src/tests/test262/language/statements/class/static-method-param-yield.js index 5b8a4a8daa5d..5684e13141ad 100644 --- a/js/src/tests/test262/language/statements/class/static-method-param-yield.js +++ b/js/src/tests/test262/language/statements/class/static-method-param-yield.js @@ -12,7 +12,7 @@ info: | PropertyName[?Yield] ( StrictFormalParameters ) { FunctionBody } features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/strict-mode/with.js b/js/src/tests/test262/language/statements/class/strict-mode/with.js index c5a527bf0110..3e89253ae902 100644 --- a/js/src/tests/test262/language/statements/class/strict-mode/with.js +++ b/js/src/tests/test262/language/statements/class/strict-mode/with.js @@ -6,7 +6,7 @@ es6id: 14.5 description: > class strict mode: `with` disallowed negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js index 8638c440a374..0a125a951212 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js @@ -4,7 +4,7 @@ es6id: 22.1.1 description: > Constructor calling super() with 2+ arguments creates an Array object -info: > +info: | 22.1.1 The Array Constructor The Array constructor is designed to be subclassable. It may be used as the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-single-argument.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-single-argument.js index 39d8a2fdd128..9311d7f27898 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-single-argument.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-single-argument.js @@ -4,7 +4,7 @@ es6id: 22.1.1 description: > Constructor calling super() with a single argument creates an Array object -info: > +info: | 22.1.1 The Array Constructor The Array constructor is designed to be subclassable. It may be used as the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/length.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/length.js index 78925c6e9dc0..7f47d0ceb9c5 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/length.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/length.js @@ -4,7 +4,7 @@ es6id: 22.1.4.1 description: > Instances has the own property length -info: > +info: | 22.1.4.1 length The length property of an Array instance is a data property whose value is diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js index 219cd5ab1bdc..7cf1bfede55e 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 22.1.1 description: Subclassing Array -info: > +info: | 22.1.1 The Array Constructor The Array constructor is designed to be subclassable. It may be used as the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/super-must-be-called.js index 3ce8d79209e5..134c3a770240 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Array/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 22.1.1 description: Super need to be called to initialize internals -info: > +info: | 22.1.1 The Array Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing.js index dd89ca9d4c85..d2b319173a47 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 24.1.2 description: Subclassing the ArrayBuffer object -info: > +info: | 24.1.2 The ArrayBuffer Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/super-must-be-called.js index ea4ac313f815..232c344cee3e 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/ArrayBuffer/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 24.1.2 description: Super need to be called to initialize internals -info: > +info: | 24.1.2 The ArrayBuffer Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/regular-subclassing.js index c223452322e1..e296c1d4e3b0 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 19.3.1 description: Subclassing Function -info: > +info: | 19.3.1 The Boolean Constructor The Boolean constructor is designed to be subclassable. It may be used as the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/super-must-be-called.js index 11c7e0ab0baa..fde940702f91 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Boolean/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 19.3.1 description: Super need to be called to initialize Boolean internals -info: > +info: | 19.3.1 The Boolean Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/regular-subclassing.js index e64d09269442..fe91d32a2b19 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 24.2.2 description: Subclassing the DataView object -info: > +info: | 24.2.2 The DataView Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/super-must-be-called.js index 111947477826..9693b9a205e1 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/DataView/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 24.2.2 description: Super need to be called to initialize internals -info: > +info: | 24.2.2 The DataView Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/regular-subclassing.js index d0fdb23e9f76..41619f26b42d 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 20.3.2 description: Subclassing the String object -info: > +info: | 20.3.2 The Date Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/super-must-be-called.js index 6c16d1537101..8099ac871fad 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Date/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 20.3.2 description: Super need to be called to initialize internals -info: > +info: | 20.3.2 The Date Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/message-property-assignment.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/message-property-assignment.js index f857bed3e532..afa9b7e92489 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/message-property-assignment.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/message-property-assignment.js @@ -4,7 +4,7 @@ es6id: 19.5.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.1.1 Error ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/regular-subclassing.js index 5cb6c06ce2cf..d34c85cb3c96 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.1 description: Subclassing the Error object -info: > +info: | 19.5.1 The Error Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/super-must-be-called.js index 06e5d4d8dfba..8d7dcae53ea9 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Error/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.1 The Error Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-length.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-length.js index 291eabfa42e8..d14cd344d4c1 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-length.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-length.js @@ -3,7 +3,7 @@ /*--- es6id: 19.2.4.1 description: Subclassed Function instances has length and name properties -info: > +info: | 19.2.4.1 length The value of the length property is an integer that indicates the typical diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-name.js index 291bbe0b03b3..6648909da4ba 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/instance-name.js @@ -3,7 +3,7 @@ /*--- es6id: 19.2.4.2 description: Subclassed Function instances has length and name properties -info: > +info: | 19.2.4.2 name The value of the name property is an String that is descriptive of the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/regular-subclassing.js index c00ca8200768..d68fb28206d5 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 19.2.1 description: Subclassing Function -info: > +info: | 19.2.1 The Function Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js index c68445704e6c..9d8fc30c0c1f 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js @@ -4,7 +4,7 @@ es6id: 19.2.1 description: > super must be called to initialize Function internal slots -info: > +info: | 19.2.1 The Function Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-length.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-length.js index 4ad495e68416..f5d17fe131b8 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-length.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-length.js @@ -4,7 +4,7 @@ es6id: 25.2.4.1 description: > Subclassed GeneratorFunction instances `length` property -info: > +info: | 25.2.4.1 length The value of the length property is an integer that indicates the typical diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-name.js index dc5beb5f8fbf..69be80c2e441 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-name.js @@ -3,7 +3,7 @@ /*--- es6id: 25.2.4.2 description: Subclassed GeneratorFunction instances `name` property -info: > +info: | 25.2.4.2 name The specification for the name property of Function instances given in diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-prototype.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-prototype.js index 2cb149b45eda..3b4029adcd03 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-prototype.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/instance-prototype.js @@ -4,7 +4,7 @@ es6id: 25.2.4.3 description: > Subclassed GeneratorFunction instances `prototype` property -info: > +info: | 25.2.4.3 prototype Whenever a GeneratorFunction instance is created another ordinary object is diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/regular-subclassing.js index 64ea53013707..55a8c2ded58c 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 25.2.1 description: Subclassing GeneratorFunction -info: > +info: | 25.2.1 The GeneratorFunction Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js index bf436e11ba18..6d3aa6004d56 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js @@ -4,7 +4,7 @@ es6id: 25.2.1 description: > super must be called to initialize GeneratorFunction internal slots -info: > +info: | 25.2.1 The GeneratorFunction Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/regular-subclassing.js index 492d979221e3..755b2b1faa82 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 23.1.1 description: Subclassing the Map object -info: > +info: | 23.1.1 The Map Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/super-must-be-called.js index a3a1ac89daf5..23d3e8dbf8bf 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Map/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 23.1.1 description: Super need to be called to initialize internals -info: > +info: | 23.1.1 The Map Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-message.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-message.js index b79662918b22..6d911069bf46 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-message.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-message.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.6.1.1 NativeError ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-name.js index 9983090a8d0a..9f4c87eeb536 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-name.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > The name property on a new instance -info: > +info: | 19.5.6.3.3 NativeError.prototype.name The initial value of the name property of the prototype for a given diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-super.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-super.js index 179a09535cc5..3e7055bcc0e7 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-super.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/EvalError-super.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.6.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.6.1 NativeError Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-message.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-message.js index ae340a721d6f..28931bfcd553 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-message.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-message.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.6.1.1 NativeError ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-name.js index 60a15a619eee..49a05b2ab084 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-name.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > The name property on a new instance -info: > +info: | 19.5.6.3.3 NativeError.prototype.name The initial value of the name property of the prototype for a given diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-super.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-super.js index 38f280868e68..af5a17d16e2e 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-super.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/RangeError-super.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.6.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.6.1 NativeError Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message.js index f024eb5a6fe2..cb5626c984d7 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.6.1.1 NativeError ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-name.js index ec6fe76b4c22..8898f2e7b55f 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-name.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > The name property on a new instance -info: > +info: | 19.5.6.3.3 NativeError.prototype.name The initial value of the name property of the prototype for a given diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-super.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-super.js index 0d0f152c39a9..b8517e4e2560 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-super.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-super.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.6.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.6.1 NativeError Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message.js index 07e5d66c57ab..c5460959d68e 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.6.1.1 NativeError ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-name.js index 09ebb477275a..19719c503c9d 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-name.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > The name property on a new instance -info: > +info: | 19.5.6.3.3 NativeError.prototype.name The initial value of the name property of the prototype for a given diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-super.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-super.js index 9850d78333cf..00c4865cab0e 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-super.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-super.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.6.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.6.1 NativeError Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-message.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-message.js index 851917d13ae9..855e3ad1a40a 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-message.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-message.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.6.1.1 NativeError ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-name.js index 05c227fec374..ca1cb0995ad1 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-name.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > The name property on a new instance -info: > +info: | 19.5.6.3.3 NativeError.prototype.name The initial value of the name property of the prototype for a given diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-super.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-super.js index 5534b19c5c51..80fcbf935ad2 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-super.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/TypeError-super.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.6.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.6.1 NativeError Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-message.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-message.js index cb31b693a647..1131b75185e4 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-message.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-message.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > A new instance has the message property if created with a parameter -info: > +info: | 19.5.6.1.1 NativeError ( message ) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-name.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-name.js index 2c0c45493d28..83d8d8f5e8e7 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-name.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-name.js @@ -4,7 +4,7 @@ es6id: 19.5.6.1.1 description: > The name property on a new instance -info: > +info: | 19.5.6.3.3 NativeError.prototype.name The initial value of the name property of the prototype for a given diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-super.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-super.js index 144f8a154c27..3714a117493a 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-super.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/NativeError/URIError-super.js @@ -3,7 +3,7 @@ /*--- es6id: 19.5.6.1 description: Super need to be called to initialize internals -info: > +info: | 19.5.6.1 NativeError Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/regular-subclassing.js index 263dec0d00a9..f5764f046fce 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 20.1.1 description: Subclassing the Number object -info: > +info: | 20.1.1 The Number Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/super-must-be-called.js index d6335b343382..fb37ca829cba 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Number/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 20.1.1 description: Super need to be called to initialize internals -info: > +info: | 20.1.1 The Number Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-return-undefined-throws.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-return-undefined-throws.js index ade2d2cbef92..ddf4ec4795cc 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-return-undefined-throws.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-return-undefined-throws.js @@ -3,7 +3,7 @@ /*--- es6id: 9.2.2 description: Throws a ReferenceError if constructor result is undefined -info: > +info: | 9.2.2 [[Construct]] ( argumentsList, newTarget) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-returns-non-object.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-returns-non-object.js index 0d6bad34bfeb..6f266cc1e74f 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-returns-non-object.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/constructor-returns-non-object.js @@ -3,7 +3,7 @@ /*--- es6id: 9.2.2 description: The Type of the return value must be an Object -info: > +info: | 9.2.2 [[Construct]] ( argumentsList, newTarget) ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/regular-subclassing.js index 16b4fe63926b..59b6afd6a37e 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 19.1.1 description: Subclassing Object -info: > +info: | 19.1.1 The Object Constructor The Object constructor is designed to be subclassable. It may be used as the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/replacing-prototype.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/replacing-prototype.js index 5d36c107a796..dd6e7d56354c 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/replacing-prototype.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Object/replacing-prototype.js @@ -3,7 +3,7 @@ /*--- es6id: 19.1.1 description: Subclassing Object replacing a prototype method -info: > +info: | 19.1.1 The Object Constructor The Object constructor is designed to be subclassable. It may be used as the diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/regular-subclassing.js index c54a3d95b5a7..397e452cf0f8 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 25.4.3 description: Subclassing the Promise object -info: > +info: | 25.4.3 The Promise Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/super-must-be-called.js index 7227ff44131c..8ed2fb3f633c 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Promise/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 25.4.3 description: Super need to be called to initialize internals -info: > +info: | 25.4.3 The Promise Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Proxy/no-prototype-throws.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Proxy/no-prototype-throws.js index 3e82cfca902a..c61848395ce1 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Proxy/no-prototype-throws.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Proxy/no-prototype-throws.js @@ -3,7 +3,7 @@ /*--- es6id: 14.5.14 description: The Proxy Object is not subclasseable without a prototype -info: > +info: | 14.5.14 Runtime Semantics: ClassDefinitionEvaluation 5. If ClassHeritageopt is not present, then diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js index 628d82033d1f..9a6939e7a927 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js @@ -3,7 +3,7 @@ /*--- es6id: 21.2.6.1 description: Instances has the own property lastIndex -info: > +info: | 21.2.6.1 lastIndex The value of the lastIndex property specifies the String index at which to diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/regular-subclassing.js index 1a7983cc04d0..3dab8a3ee648 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 21.2.3 description: Subclassing the RegExp object -info: > +info: | 21.2.3 The RegExp Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/super-must-be-called.js index 2ad557711027..8d617a15ee7a 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/RegExp/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 21.2.3 description: Super need to be called to initialize internals -info: > +info: | 21.2.3 The RegExp Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/regular-subclassing.js index a217f265a8d2..43a92d8a69d6 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 23.2.1 description: Subclassing the Set object -info: > +info: | 23.2.1 The Set Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/super-must-be-called.js index cc190528627d..1b5e23cd0816 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Set/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 23.2.1 description: Super need to be called to initialize internals -info: > +info: | 23.2.1 The Set Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/length.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/length.js index 3afc6a59b446..28ef88875e93 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/length.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/length.js @@ -3,7 +3,7 @@ /*--- es6id: 21.1.4 description: Instances has the own property length -info: > +info: | 21.1.4 Properties of String Instances ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/regular-subclassing.js index 37f87e2eefbd..b5c2ac34be5d 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 21.1.1 description: Subclassing the String object -info: > +info: | 21.1.1 The String Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/super-must-be-called.js index f5e543ff3ace..0c247e62dbee 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/String/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 21.1.1 description: Super need to be called to initialize internals -info: > +info: | 21.1.1 The String Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js index 520b4a626096..70cdae8717a8 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js @@ -3,7 +3,7 @@ /*--- es6id: 19.4.1 description: Symbol subclass called with the new operator throws on super() -info: > +info: | 19.4.1 The Symbol Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/symbol-valid-as-extends-value.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/symbol-valid-as-extends-value.js index 5c69537c1c9f..2ba5f953e277 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/symbol-valid-as-extends-value.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/Symbol/symbol-valid-as-extends-value.js @@ -3,7 +3,7 @@ /*--- es6id: 19.4.1 description: Symbol can be used as the value of an extends -info: > +info: | 19.4.1 The Symbol Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/regular-subclassing.js index 7782854a0d19..abc83cdf31a4 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 22.2.4 description: Subclassing TypedArrays -info: > +info: | 22.2.4 The TypedArray Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/super-must-be-called.js index 490307565d81..5a8ae561221c 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/TypedArray/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 22.2.4 description: Super need to be called to initialize internals -info: > +info: | 22.2.4 The TypedArray Constructors ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js index e2f6aea13719..99b3e732a3c3 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 23.3.1 description: Subclassing the WeakMap object -info: > +info: | 23.3.1 The WeakMap Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js index 3d60dd8e2df9..d9cc5ef9a444 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 23.3.1 description: Super need to be called to initialize internals -info: > +info: | 23.3.1 The WeakMap Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js index cadbb302c03e..9309dae05df7 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js @@ -3,7 +3,7 @@ /*--- es6id: 23.4.1 description: Subclassing the WeakSet object -info: > +info: | 23.4.1 The WeakSet Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js index 4ffe89d63b00..c0fa8eb886ae 100644 --- a/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js +++ b/js/src/tests/test262/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js @@ -3,7 +3,7 @@ /*--- es6id: 23.4.1 description: Super need to be called to initialize internals -info: > +info: | 23.4.1 The WeakSet Constructor ... diff --git a/js/src/tests/test262/language/statements/class/subclass/default-constructor-spread-override.js b/js/src/tests/test262/language/statements/class/subclass/default-constructor-spread-override.js index 221e6a6f557c..e8897c444619 100644 --- a/js/src/tests/test262/language/statements/class/subclass/default-constructor-spread-override.js +++ b/js/src/tests/test262/language/statements/class/subclass/default-constructor-spread-override.js @@ -5,7 +5,7 @@ esid: sec-runtime-semantics-classdefinitionevaluation description: > Default class constructor uses standard iterator spread semantics. -info: > +info: | 14.5.14 Runtime Semantics: ClassDefinitionEvaluation ... 10. If constructor is empty, then diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js index 7810b1dbee0d..ee32e1bd0d90 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-contains-multiple-constructor.js @@ -9,7 +9,7 @@ description: > It is a Syntax Error if PrototypePropertyNameList of ClassElementList contains more than one occurrence of "constructor". negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js index db568210ce32..72afe51daeb7 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js @@ -12,7 +12,7 @@ description: > 3. Return HasDirectSuper of constructor. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js index 90cfd687fe36..576045a78bad 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js @@ -9,7 +9,7 @@ description: > It is a Syntax Error if PropName of MethodDefinition is not "constructor" and HasDirectSuper of MethodDefinition is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js index a7e00b161d62..f659cf27ea83 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js @@ -11,7 +11,7 @@ description: > (GeneratorMethod) negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js index 4eeff9011e70..22dfbb101a04 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-generator-propname-constructor.js @@ -11,7 +11,7 @@ description: > (GeneratorMethod) negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js index 7ec471a70516..54377fef4362 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js @@ -11,7 +11,7 @@ description: > (get) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js index 00abf775f45d..7663fc2c3836 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-get-propname-constructor.js @@ -11,7 +11,7 @@ description: > (get) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js index c25f4a131478..e7714a56d937 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js @@ -11,7 +11,7 @@ description: > (set) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js index 8e4c86a7a8fe..125c5cdfbd19 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-special-method-set-propname-constructor.js @@ -11,7 +11,7 @@ description: > (set) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js index 67fa510f143a..b9b3f0c58f56 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js @@ -9,7 +9,7 @@ description: > It is a Syntax Error if HasDirectSuper of MethodDefinition is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js index bd75dcec8278..0b919d8060ee 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js @@ -11,7 +11,7 @@ description: > (get) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js index 45c857bf1c11..c117569d6ad9 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-get-propname-prototype.js @@ -11,7 +11,7 @@ description: > (get) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js index aac7622932bc..71888dae1601 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-propname-prototype.js @@ -9,7 +9,7 @@ description: > It is a Syntax Error if PropName of MethodDefinition is "prototype". negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js index d65040e19be6..2994464ecbb0 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js @@ -11,7 +11,7 @@ description: > (set) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js index 999c2e223216..3a9089bc6ef8 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-body-static-method-set-propname-prototype.js @@ -11,7 +11,7 @@ description: > (set) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js index 0f35622fc4fe..fea22f127598 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js @@ -8,7 +8,7 @@ description: > It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js index f5fdae0945f0..f814fa86bb9d 100644 --- a/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js +++ b/js/src/tests/test262/language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js @@ -8,7 +8,7 @@ description: > It is a Syntax Error if the LexicallyDeclaredNames of StatementList contains any duplicate entries. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/class/syntax/escaped-static.js b/js/src/tests/test262/language/statements/class/syntax/escaped-static.js index f5632ee6b3b2..ffa8b008113a 100644 --- a/js/src/tests/test262/language/statements/class/syntax/escaped-static.js +++ b/js/src/tests/test262/language/statements/class/syntax/escaped-static.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `static` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-ary.js index 8e65a4d6260e..271ff2b0d780 100644 --- a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-id.js index c3c044da5e0f..62f9601598bc 100644 --- a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-obj.js index 116c469aa65e..ad5628ecadb9 100644 --- a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-ary.js index 06b94c7b10db..2c6d5cf9b748 100644 --- a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-id.js index 5aa309c5d0c4..a7138b34a02c 100644 --- a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-obj.js index 830fd84b70a7..b939cb47963f 100644 --- a/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/const/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/const/fn-name-arrow.js b/js/src/tests/test262/language/statements/const/fn-name-arrow.js index a95e9488c8ad..0c0e9396678d 100644 --- a/js/src/tests/test262/language/statements/const/fn-name-arrow.js +++ b/js/src/tests/test262/language/statements/const/fn-name-arrow.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (ArrowFunction) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/const/fn-name-class.js b/js/src/tests/test262/language/statements/const/fn-name-class.js index 48a8fb10a53b..b1b9f4402441 100644 --- a/js/src/tests/test262/language/statements/const/fn-name-class.js +++ b/js/src/tests/test262/language/statements/const/fn-name-class.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (ClassExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/const/fn-name-cover.js b/js/src/tests/test262/language/statements/const/fn-name-cover.js index 63cf43984904..08f77bb6f82b 100644 --- a/js/src/tests/test262/language/statements/const/fn-name-cover.js +++ b/js/src/tests/test262/language/statements/const/fn-name-cover.js @@ -5,7 +5,7 @@ es6id: 13.3.1.4 description: > Assignment of function `name` attribute (CoverParenthesizedExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/const/fn-name-fn.js b/js/src/tests/test262/language/statements/const/fn-name-fn.js index bf711f23c3c9..d9c8be1143f7 100644 --- a/js/src/tests/test262/language/statements/const/fn-name-fn.js +++ b/js/src/tests/test262/language/statements/const/fn-name-fn.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (FunctionExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/const/fn-name-gen.js b/js/src/tests/test262/language/statements/const/fn-name-gen.js index e6e073185fb2..37763eb368b7 100644 --- a/js/src/tests/test262/language/statements/const/fn-name-gen.js +++ b/js/src/tests/test262/language/statements/const/fn-name-gen.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (GeneratorExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js b/js/src/tests/test262/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js index f9fa6e67e91e..db2921881741 100644 --- a/js/src/tests/test262/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js +++ b/js/src/tests/test262/language/statements/const/redeclaration-error-from-within-strict-mode-function-const.js @@ -6,7 +6,7 @@ es6id: 13.1 description: > Redeclaration error within strict mode function inside non-strict code. negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js b/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js index e1a904dbe00a..5681506b68a2 100644 --- a/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js +++ b/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-with-without-initialiser.js @@ -6,7 +6,7 @@ es6id: 13.1 description: > const declarations mixed: with, without initialiser negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js b/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js index dca49bf3544f..7cdf7f9fe582 100644 --- a/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js +++ b/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-mixed-without-with-initialiser.js @@ -6,7 +6,7 @@ es6id: 13.1 description: > const declarations mixed: without, with initialiser negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js b/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js index 87e52844613e..c45d9491d071 100644 --- a/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js +++ b/js/src/tests/test262/language/statements/const/syntax/block-scope-syntax-const-declarations-without-initialiser.js @@ -6,7 +6,7 @@ es6id: 13.1 description: > const declarations without initialiser negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js b/js/src/tests/test262/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js index 85cf7a7bcadc..df9e1f4ab934 100644 --- a/js/src/tests/test262/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js +++ b/js/src/tests/test262/language/statements/const/syntax/const-declaring-let-split-across-two-lines.js @@ -7,10 +7,10 @@ author: Jeff Walden es6id: 13.3.1.1 description: > const: |const let| split across two lines is a static semantics early error. -info: > +info: | Lexical declarations may not declare a binding named "let". negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/with-initializer-do-statement-while-expression.js b/js/src/tests/test262/language/statements/const/syntax/with-initializer-do-statement-while-expression.js index 653e0682cf1d..42dcf5b9adee 100644 --- a/js/src/tests/test262/language/statements/const/syntax/with-initializer-do-statement-while-expression.js +++ b/js/src/tests/test262/language/statements/const/syntax/with-initializer-do-statement-while-expression.js @@ -7,7 +7,7 @@ description: > const declarations with initialisers in statement positions: do Statement while ( Expression ) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/with-initializer-for-statement.js b/js/src/tests/test262/language/statements/const/syntax/with-initializer-for-statement.js index 43907db299dd..e3393902f2ef 100644 --- a/js/src/tests/test262/language/statements/const/syntax/with-initializer-for-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/with-initializer-for-statement.js @@ -7,7 +7,7 @@ description: > const declarations with initialisers in statement positions: for ( ;;) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js b/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js index ea33cb5499c5..5aee683dd81f 100644 --- a/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement-else-statement.js @@ -7,7 +7,7 @@ description: > const declarations with initialisers in statement positions: if ( Expression ) Statement else Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement.js b/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement.js index e44c5ee6f63a..53bdd674c99a 100644 --- a/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/with-initializer-if-expression-statement.js @@ -7,7 +7,7 @@ description: > const declarations with initialisers in statement positions: if ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/with-initializer-label-statement.js b/js/src/tests/test262/language/statements/const/syntax/with-initializer-label-statement.js index 3a8812f0b7e6..1e31c1715c8e 100644 --- a/js/src/tests/test262/language/statements/const/syntax/with-initializer-label-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/with-initializer-label-statement.js @@ -7,7 +7,7 @@ description: > const declarations with initialisers in statement positions: label: Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/with-initializer-while-expression-statement.js b/js/src/tests/test262/language/statements/const/syntax/with-initializer-while-expression-statement.js index abe59e55389c..da80a2d8c0d5 100644 --- a/js/src/tests/test262/language/statements/const/syntax/with-initializer-while-expression-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/with-initializer-while-expression-statement.js @@ -7,7 +7,7 @@ description: > const declarations with initialisers in statement positions: while ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-case-expression-statement-list.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-case-expression-statement-list.js index 201811170264..2fd7bb49713b 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-case-expression-statement-list.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-case-expression-statement-list.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: case Expression : StatementList negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-default-statement-list.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-default-statement-list.js index 84d77d4768e6..6290495b1ca8 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-default-statement-list.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-default-statement-list.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: default : StatementList negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-do-statement-while-expression.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-do-statement-while-expression.js index 975c6bdb2274..43925afdfd5c 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-do-statement-while-expression.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-do-statement-while-expression.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: do Statement while ( Expression ) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-for-statement.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-for-statement.js index 0ddb338a2f07..c677c930904f 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-for-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-for-statement.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: for ( ;;) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js index 2e15c1b5db51..7ed9fc059aad 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement-else-statement.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: if ( Expression ) Statement else Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement.js index c22502ab83e1..547910a1e556 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-if-expression-statement.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: if ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-label-statement.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-label-statement.js index 50fef60248eb..8f2a54f84908 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-label-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-label-statement.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: label: Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/const/syntax/without-initializer-while-expression-statement.js b/js/src/tests/test262/language/statements/const/syntax/without-initializer-while-expression-statement.js index 4c23ab559fc6..e9fa69b4f24d 100644 --- a/js/src/tests/test262/language/statements/const/syntax/without-initializer-while-expression-statement.js +++ b/js/src/tests/test262/language/statements/const/syntax/without-initializer-while-expression-statement.js @@ -7,7 +7,7 @@ description: > const declarations without initialisers in statement positions: while ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A1_T1.js b/js/src/tests/test262/language/statements/continue/S12.7_A1_T1.js index b3d43c8fe3cd..69fb04beb90f 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A1_T1.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A1_T1.js @@ -9,7 +9,7 @@ description: > Checking if execution of single "continue" without any IterationStatement fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A1_T2.js b/js/src/tests/test262/language/statements/continue/S12.7_A1_T2.js index a9b1017fa931..2f7196d95e0d 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A1_T2.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A1_T2.js @@ -9,7 +9,7 @@ description: > Checking if single "continue" with Label but without any IterationStatement fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A1_T3.js b/js/src/tests/test262/language/statements/continue/S12.7_A1_T3.js index ee024dbf9710..71f622cd66d0 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A1_T3.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A1_T3.js @@ -9,7 +9,7 @@ description: > Checking if laballed "continue" with no IterationStatement, placed into a block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A1_T4.js b/js/src/tests/test262/language/statements/continue/S12.7_A1_T4.js index 56d4dee07ceb..55e9dfe3c383 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A1_T4.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A1_T4.js @@ -9,7 +9,7 @@ description: > Checking if execution of "continue" with no IterationStatement, placed into a block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A2.js b/js/src/tests/test262/language/statements/continue/S12.7_A2.js index c9975e58f824..cdf1418b0dac 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A2.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since LineTerminator between "continue" and Identifier is not allowed, "continue" is evaluated without label es5id: 12.7_A2 diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A5_T1.js b/js/src/tests/test262/language/statements/continue/S12.7_A5_T1.js index 14c5ec016109..030284051991 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A5_T1.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A5_T1.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "continue Identifier" is evaluated Identifier must be label in the label set of an enclosing (but not crossing function boundaries) IterationStatement es5id: 12.7_A5_T1 description: Trying to continue another labeled loop negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A5_T2.js b/js/src/tests/test262/language/statements/continue/S12.7_A5_T2.js index 83e2c0b1d945..15afb401aa7f 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A5_T2.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A5_T2.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "continue Identifier" is evaluated Identifier must be label in the label set of an enclosing (but not crossing function boundaries) IterationStatement es5id: 12.7_A5_T2 description: Identifier is a function name negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A5_T3.js b/js/src/tests/test262/language/statements/continue/S12.7_A5_T3.js index f54d3e973f48..2dd57511dd20 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A5_T3.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A5_T3.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "continue Identifier" is evaluated Identifier must be label in the label set of an enclosing (but not crossing function boundaries) IterationStatement es5id: 12.7_A5_T3 description: Identifier is within loop label negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A6.js b/js/src/tests/test262/language/statements/continue/S12.7_A6.js index c5a2bfa68f61..07549fda17f0 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A6.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A6.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Appearing of "continue" within a function call that is within an IterationStatement yields SyntaxError es5id: 12.7_A6 description: Using labaled "continue Identifier" within a function body negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A7.js b/js/src/tests/test262/language/statements/continue/S12.7_A7.js index cd892f1cbead..a29e428106cc 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A7.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Appearing of continue within eval statement that is within an IterationStatement yields SyntaxError es5id: 12.7_A7 diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A8_T1.js b/js/src/tests/test262/language/statements/continue/S12.7_A8_T1.js index 20d74bfa53ab..9e054d068b84 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A8_T1.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A8_T1.js @@ -9,7 +9,7 @@ description: > Checking if execution of "continue Identifier" within catch Block fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/continue/S12.7_A8_T2.js b/js/src/tests/test262/language/statements/continue/S12.7_A8_T2.js index 0a4a8f89972c..1c1f744ce1ec 100644 --- a/js/src/tests/test262/language/statements/continue/S12.7_A8_T2.js +++ b/js/src/tests/test262/language/statements/continue/S12.7_A8_T2.js @@ -7,7 +7,7 @@ info: Appearing of "continue" within a "try/catch" Block yields SyntaxError es5id: 12.7_A8_T2 description: Checking if execution of "continue" within catch Block fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/debugger/expression.js b/js/src/tests/test262/language/statements/debugger/expression.js index c157c4b500b6..e69bde9725ad 100644 --- a/js/src/tests/test262/language/statements/debugger/expression.js +++ b/js/src/tests/test262/language/statements/debugger/expression.js @@ -6,7 +6,7 @@ description: The `debugger` token may not occupy an expression position esid: sec-debugger-statement es6id: 13.16 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A1.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A1.js index 1011572d0bf4..dd159c7a487d 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A1.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the production "do Statement while ( Expression )" is evaluated, Statement is evaluated first es5id: 12.6.1_A1 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A10.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A10.js index 004542d1adc4..ba2fd68d4e81 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A10.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | FunctionExpression within a "do-while" statement is allowed, but no function with the given name will appear in the global context es5id: 12.6.1_A10 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A12.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A12.js index f4f063effc74..04b7487f307b 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A12.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A12.js @@ -7,7 +7,7 @@ info: Any statement within "do-while" construction must be a compound es5id: 12.6.1_A12 description: Checking if execution of "do var x=1; var y =2; while (0)" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A15.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A15.js index bd4c1d46aafb..d90b39b084e8 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A15.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A15.js @@ -7,7 +7,7 @@ info: Block within a "do-while" Expression is not allowed es5id: 12.6.1_A15 description: Using "{0}" Block as an Expression negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A2.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A2.js index c947dff4c441..60157c993d73 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A2.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating "do Statement while ( Expression )", Statement is evaluated first and only after it is done Expression is checked es5id: 12.6.1_A2 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A3.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A3.js index 3bbaaba44a00..9e6d1e6951b2 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A3.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the production "do Statement while ( Expression )" is evaluated, then (normal, V, empty) is returned es5id: 12.6.1_A3 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T1.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T1.js index d347be258247..120da40447b5 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T1.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "do-while" Statement is allowed and performed as described in 12.8 es5id: 12.6.1_A4_T1 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T2.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T2.js index ffeff8882ec7..32d323564aed 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T2.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "do-while" Statement is allowed and performed as described in 12.8 es5id: 12.6.1_A4_T2 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T3.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T3.js index 83a2cfa08468..1c40dbaa6f44 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T3.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "do-while" Statement is allowed and performed as described in 12.8 es5id: 12.6.1_A4_T3 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T4.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T4.js index 5ed331c0a80b..40365433ed5c 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T4.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "do-while" Statement is allowed and performed as described in 12.8 es5id: 12.6.1_A4_T4 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T5.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T5.js index 9e7f85cddb8a..cb1bc3670003 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T5.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "do-while" Statement is allowed and performed as described in 12.8 es5id: 12.6.1_A4_T5 diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T1.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T1.js index e90adb001674..44400ef7cdff 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T1.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T1.js @@ -7,7 +7,7 @@ info: Expression in "do-while" IterationStatement is bracketed with braces es5id: 12.6.1_A6_T1 description: Checking if execution of "do{} while 1" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T2.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T2.js index 4a454c0c700f..c343c1840228 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T2.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T2.js @@ -7,7 +7,7 @@ info: Expression in "do-while" IterationStatement is bracketed with braces es5id: 12.6.1_A6_T2 description: Checking if execution of "do{} while 0" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T3.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T3.js index c19fbfe8a0aa..b3b29fd43aec 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T3.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T3.js @@ -7,7 +7,7 @@ info: Expression in "do-while" IterationStatement is bracketed with braces es5id: 12.6.1_A6_T3 description: Checking if execution of "do{}while true" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T4.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T4.js index 6405cc4cb3ac..74db72230b3c 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T4.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T4.js @@ -7,7 +7,7 @@ info: Expression in "do-while" IterationStatement is bracketed with braces es5id: 12.6.1_A6_T4 description: Checking if execution of "do{}while false" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T5.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T5.js index 53e7214d3d7b..9b49f79a96e1 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T5.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T5.js @@ -7,7 +7,7 @@ info: Expression in "do-while" IterationStatement is bracketed with braces es5id: 12.6.1_A6_T5 description: Checking if execution of "do{}while ''" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T6.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T6.js index 1c24e246dba3..7b65b467c4ed 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T6.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A6_T6.js @@ -7,7 +7,7 @@ info: Expression in "do-while" IterationStatement is bracketed with braces es5id: 12.6.1_A6_T6 description: Checking if execution of "do{}while 'hood'" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/S12.6.1_A7.js b/js/src/tests/test262/language/statements/do-while/S12.6.1_A7.js index 85ad3c9d8bba..6a64af9ea85a 100644 --- a/js/src/tests/test262/language/statements/do-while/S12.6.1_A7.js +++ b/js/src/tests/test262/language/statements/do-while/S12.6.1_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The "do-while" Statement is evaluted according to 12.6.1 and returns (normal, V, empty) es5id: 12.6.1_A7 diff --git a/js/src/tests/test262/language/statements/do-while/cptn-abrupt-empty.js b/js/src/tests/test262/language/statements/do-while/cptn-abrupt-empty.js index ebc6cc73401b..9a92df2acf2c 100644 --- a/js/src/tests/test262/language/statements/do-while/cptn-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/do-while/cptn-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.7.2.6 description: > Completion value when iteration completes due to an empty abrupt completion -info: > +info: | IterationStatement : do Statement while ( Expression ) ; 1. Let V = undefined. diff --git a/js/src/tests/test262/language/statements/do-while/cptn-normal.js b/js/src/tests/test262/language/statements/do-while/cptn-normal.js index 1ae07c796c0a..d7ec585dc97b 100644 --- a/js/src/tests/test262/language/statements/do-while/cptn-normal.js +++ b/js/src/tests/test262/language/statements/do-while/cptn-normal.js @@ -4,7 +4,7 @@ es6id: 13.7.2.6 description: > Completion value when iteration completes due to expression value -info: > +info: | IterationStatement : do Statement while ( Expression ) ; 1. Let V = undefined. diff --git a/js/src/tests/test262/language/statements/do-while/decl-async-fun.js b/js/src/tests/test262/language/statements/do-while/decl-async-fun.js index dbd6a534ccce..45e7009b0ac1 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-async-fun.js +++ b/js/src/tests/test262/language/statements/do-while/decl-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/decl-async-gen.js b/js/src/tests/test262/language/statements/do-while/decl-async-gen.js index 5dab5c514907..799bf4cb460a 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-async-gen.js +++ b/js/src/tests/test262/language/statements/do-while/decl-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/decl-cls.js b/js/src/tests/test262/language/statements/do-while/decl-cls.js index 314cc3afd32a..9c9495aca6a3 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-cls.js +++ b/js/src/tests/test262/language/statements/do-while/decl-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-do-while-statement es6id: 13.7.2 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/decl-const.js b/js/src/tests/test262/language/statements/do-while/decl-const.js index c4a381d34cd3..6d7f17851457 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-const.js +++ b/js/src/tests/test262/language/statements/do-while/decl-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-do-while-statement es6id: 13.7.2 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/decl-fun.js b/js/src/tests/test262/language/statements/do-while/decl-fun.js index 13a5a84c3c49..7bd485e4c006 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-fun.js +++ b/js/src/tests/test262/language/statements/do-while/decl-fun.js @@ -6,7 +6,7 @@ description: Function declaration not allowed in statement position esid: sec-do-while-statement es6id: 13.7.2 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/decl-gen.js b/js/src/tests/test262/language/statements/do-while/decl-gen.js index 0997dee2752c..b60f6a412f60 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-gen.js +++ b/js/src/tests/test262/language/statements/do-while/decl-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-do-while-statement es6id: 13.7.2 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/decl-let.js b/js/src/tests/test262/language/statements/do-while/decl-let.js index 7e52c6441c6f..53829853e29d 100644 --- a/js/src/tests/test262/language/statements/do-while/decl-let.js +++ b/js/src/tests/test262/language/statements/do-while/decl-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-do-while-statement es6id: 13.7.2 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/labelled-fn-stmt.js b/js/src/tests/test262/language/statements/do-while/labelled-fn-stmt.js index 840f065076c3..26642fa0b311 100644 --- a/js/src/tests/test262/language/statements/do-while/labelled-fn-stmt.js +++ b/js/src/tests/test262/language/statements/do-while/labelled-fn-stmt.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/do-while/let-array-with-newline.js b/js/src/tests/test262/language/statements/do-while/let-array-with-newline.js index 4c450b67820a..bf2e10bbeb65 100644 --- a/js/src/tests/test262/language/statements/do-while/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/do-while/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/do-while/tco-body-strict.js b/js/src/tests/test262/language/statements/do-while/tco-body-strict.js index b9a6fb005341..9db9f3abd93a 100644 --- a/js/src/tests/test262/language/statements/do-while/tco-body-strict.js +++ b/js/src/tests/test262/language/statements/do-while/tco-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/empty/S12.3_A1.js b/js/src/tests/test262/language/statements/empty/S12.3_A1.js index e2f75468f40a..793c4a9551d2 100644 --- a/js/src/tests/test262/language/statements/empty/S12.3_A1.js +++ b/js/src/tests/test262/language/statements/empty/S12.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production EmptyStatement ; is evaluated as follows Return (normal, empty, empty) es5id: 12.3_A1 diff --git a/js/src/tests/test262/language/statements/expression/S12.4_A1.js b/js/src/tests/test262/language/statements/expression/S12.4_A1.js index 27521a028a06..1dab60c616bc 100644 --- a/js/src/tests/test262/language/statements/expression/S12.4_A1.js +++ b/js/src/tests/test262/language/statements/expression/S12.4_A1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | An ExpressionStatement can not start with the function keyword because that might make it ambiguous with a FunctionDeclaration es5id: 12.4_A1 description: Checking if execution of "function(){}()" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js b/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js index 96932867a60f..d0281a7bcb95 100644 --- a/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js +++ b/js/src/tests/test262/language/statements/expression/S12.4_A2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production ExpressionStatement : [lookahead \notin {{, function}] Expression; is evaluated as follows: 1. Evaluate Expression. 2. Call GetValue(Result(1)). diff --git a/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js b/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js index 6c71487d0d17..c9af82ee63b4 100644 --- a/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js +++ b/js/src/tests/test262/language/statements/expression/S12.4_A2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production ExpressionStatement : [lookahead \notin {{, function}] Expression; is evaluated as follows: 1. Evaluate Expression. 2. Call GetValue(Result(1)). diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-yield-ident-invalid-strict.js index c4a198656582..6c47e77f0f46 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-init-yield-ident-invalid-strict.js @@ -9,7 +9,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, onlyStrict, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-invalid.js index 1bf6df953912..080bd7fd64e1 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-invalid.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-yield-ident-invalid-strict.js index 9ba435d125aa..7516975c4f46 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-array-yield-ident-invalid-strict.js @@ -9,7 +9,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, onlyStrict, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-invalid.js index c93eb67180a2..751e7c42a4e7 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-invalid.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-yield-ident-invalid-strict.js index 73d474caf2a8..d6485eed8b8b 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-nested-obj-yield-ident-invalid-strict.js @@ -9,7 +9,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, onlyStrict, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-simple-strict-strict.js index c0cd309ec5ad..c45282efe3be 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-simple-strict-strict.js @@ -9,7 +9,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, onlyStrict, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-yield-invalid-strict.js b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-yield-invalid-strict.js index 32a48e1a504b..cbb34ff800f9 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-yield-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-decl-dstr-array-elem-target-yield-invalid-strict.js @@ -9,7 +9,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, onlyStrict, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-ary.js index 9f66a63e3f05..fc4299271617 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-id.js index e3681fe8bf8b..d36f403d69fc 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-obj.js index 7953cc7c5b54..ee08c1127a0d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-ary.js index 916a3b61d93d..0957c68ddce7 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-id.js index 33c7edf1d029..4c074fa28f66 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-obj.js index d3f250258841..021b60c756a2 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-ary.js index 613e7e1edad6..7982f10461ca 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-id.js index b40425d4f148..b95e1239f24f 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-obj.js index ee58a3d02154..235bc7d6f769 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-ary.js index 6fb5c3a18b9e..1403cd6eddb0 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-id.js index 14d36003c275..296f54614c00 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-obj.js index 888b5faac90a..88c9da074447 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-ary.js index 4e9ae6585145..50b5607534eb 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-id.js index e2c540f866f7..529748498acf 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-obj.js index 7b1b92d195cb..39e8ece5dfb0 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-ary.js index 7e85eec41759..f7f78ed05b22 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-id.js index ea32c262c922..37de2b62dc72 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-obj.js index ca1c37c8660b..c0276792ac9b 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-ary.js index dfe0f1d31112..519ddbe81c77 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-id.js index 4881409a8e15..5b40c4aa0b41 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-obj.js index 195740996c9c..2f5b1eff52f6 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-ary.js index 3a75bfc40c03..5c00ffe353ea 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-id.js index c298580daedc..63af6b30f7d2 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-obj.js index f7f166329e9a..cddf60fb3a8f 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-ary.js index 2992bb3db9e0..9084d6dd789d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-id.js index 8d235591705f..a47b9e1ddeef 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-obj.js index 06b4afe99ebb..68ed231dd77d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-ary.js index 680339d66fec..2e4318646409 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-id.js index f5a668838996..f860bb766f1a 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-obj.js index c0f511ce2f2b..721643fe075d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-ary.js index 2ab5a34a04ad..c3d19e56de2b 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-id.js index a90533484c83..6c14cb724421 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-obj.js index 5e22d2a7d7fc..cb6256556200 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-ary.js index 6670320f7328..65b525911e71 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-id.js index 956d8a813d94..1395dfb8c644 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-obj.js index 0955739382fa..c2de72c2d7cc 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-ary.js index 3eb7a0e9c3f3..75746dfc7545 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-id.js index 71db38e34b9d..cd6c383913d2 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-obj.js index 28a06e80f909..1b4b3dcf0e53 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-ary.js index e9bbfd4440b8..c76afa55c9c9 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-id.js index 32b2ab6c456d..8d707951ee91 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-obj.js index 04965beea987..491df41de73c 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-ary.js index ac8bfb2d4e8a..8151552d67c2 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-id.js index e691fb5b2848..d11d2ebde6b0 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-obj.js index adc57ae872f3..e275622e7966 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-ary.js index c7b4e7a3e18e..037cf27cc0ed 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-id.js index e37c98eed1cb..72e369cd0721 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-obj.js index 4f8b7ebf1060..255c19b9c0f0 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-ary.js index 6238d2f84d54..b78d5c9e5c07 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-id.js index 6ebcc94fc03b..7d18fdae8c4b 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-obj.js index 3c8755e4222d..5f244e74a07e 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-ary.js index b4be93320379..2994a1cb69f3 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-id.js index 1bbd0bd31782..f2c502c0a4c6 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-obj.js index 20d5154add9d..18058c9a68a8 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-ary.js index 65f4f440a046..5868a6d142a4 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-id.js index c12ec08ffc34..9e76396b8e12 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-obj.js index ee25484cd1b8..cfe707e71bb9 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-ary.js index c62c41dc6e6d..20fbfb9e5e24 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-id.js index ed1efbadec94..5d84a029bb45 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-obj.js index 848aa4ce230f..b4acfcf7547d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-ary.js index 406b946f0a39..661f4b9a21c8 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-id.js index e9a4ace7aa99..5d3fb9800cb0 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-obj.js index ad96cafd1109..7f2d4e7e3c49 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-ary.js index 777404acec65..c1f1cf6a0a97 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-id.js index f5f5f4658995..d37530ce5eae 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-obj.js index 89260c6a236f..7cddfdaf93ed 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-ary.js index 0c126ef326e4..4876807f4195 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-id.js index 9cf3fc2cc8d4..84657d81199e 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-obj.js index da3e4dfbbb18..188a94e3510d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-init-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-ary.js index 360ee78a660d..f14ab7b3c1b0 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-ary.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-id.js index afbdf33bd446..30b65e24f626 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-id.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-obj.js index 7da86ebd967e..6a98fc3e3c3e 100644 --- a/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-rest-not-final-obj.js @@ -8,7 +8,7 @@ esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation features: [destructuring-binding, async-iteration] flags: [generated, async] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-await-of/escaped-of.js b/js/src/tests/test262/language/statements/for-await-of/escaped-of.js index 891f3060239a..8f7514bb7487 100644 --- a/js/src/tests/test262/language/statements/for-await-of/escaped-of.js +++ b/js/src/tests/test262/language/statements/for-await-of/escaped-of.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `of` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/for-await-of/let-array-with-newline.js b/js/src/tests/test262/language/statements/for-await-of/let-array-with-newline.js index 6e2b94ca43ae..324bd5d2032d 100644 --- a/js/src/tests/test262/language/statements/for-await-of/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/for-await-of/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] features: [async-iteration] diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A15.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A15.js index 2af115823418..bbb6a63e21f9 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A15.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A15.js @@ -7,7 +7,7 @@ info: Block within a "for-in" Expression is not allowed es5id: 12.6.4_A15 description: Using block within "for-in" Expression negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.1.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.1.js index 7a5af7f68a45..1bc8f8c9164e 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.1.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A3.1 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.js index 1643cb16c728..bd30fdc7f208 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A3 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.1.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.1.js index 65cbff291595..af1a873d11ca 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.1.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A4.1 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.js index 0fd0dbec8ed2..ad135b1ee959 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A4 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.1.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.1.js index b9d19a2b0f38..7ff01dd26048 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.1.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A5.1 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.js index c22a3cedc6f6..3bc8d5dc31bd 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A5 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.1.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.1.js index a26971e4d856..4b7142c560a6 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.1.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A6.1 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.js index fbc33937f9ae..a1678b62fbca 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationNoIn in Expression) Statement" es5id: 12.6.4_A6 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T1.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T1.js index 16e1311ff994..0ca9a945a88b 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T1.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Properties of the object being enumerated may be deleted during enumeration es5id: 12.6.4_A7_T1 diff --git a/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T2.js b/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T2.js index 1dabb0239e69..93fa2897efb1 100644 --- a/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T2.js +++ b/js/src/tests/test262/language/statements/for-in/S12.6.4_A7_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Properties of the object being enumerated may be deleted during enumeration es5id: 12.6.4_A7_T2 diff --git a/js/src/tests/test262/language/statements/for-in/cptn-decl-abrupt-empty.js b/js/src/tests/test262/language/statements/for-in/cptn-decl-abrupt-empty.js index 46a9ca61b7eb..1b8b4ae24b0a 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-decl-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-decl-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration is cancelled -info: > +info: | IterationStatement : for ( var ForBinding in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-decl-itr.js b/js/src/tests/test262/language/statements/for-in/cptn-decl-itr.js index 9e96558f9c82..c598e39f15ac 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-decl-itr.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-decl-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration occurs -info: > +info: | IterationStatement : for ( var ForBinding in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-decl-skip-itr.js b/js/src/tests/test262/language/statements/for-in/cptn-decl-skip-itr.js index 1f7119d72d8a..7ee1ac90c2d9 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-decl-skip-itr.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-decl-skip-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration is skipped -info: > +info: | IterationStatement : for ( var ForBinding in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-decl-zero-itr.js b/js/src/tests/test262/language/statements/for-in/cptn-decl-zero-itr.js index 699bee039da2..f4cb2efc4a9c 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-decl-zero-itr.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-decl-zero-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and no iteration occurs -info: > +info: | IterationStatement : for ( var ForBinding in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-expr-abrupt-empty.js b/js/src/tests/test262/language/statements/for-in/cptn-expr-abrupt-empty.js index 53836b99f351..1e186b2b4c60 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-expr-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-expr-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration is cancelled -info: > +info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-expr-itr.js b/js/src/tests/test262/language/statements/for-in/cptn-expr-itr.js index 70a308719689..9e4242dc0359 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-expr-itr.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-expr-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration occurs -info: > +info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-expr-skip-itr.js b/js/src/tests/test262/language/statements/for-in/cptn-expr-skip-itr.js index d389d8743483..f473542dec68 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-expr-skip-itr.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-expr-skip-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration is skipped -info: > +info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/cptn-expr-zero-itr.js b/js/src/tests/test262/language/statements/for-in/cptn-expr-zero-itr.js index 2a475f4f3dda..a68f14494fa0 100644 --- a/js/src/tests/test262/language/statements/for-in/cptn-expr-zero-itr.js +++ b/js/src/tests/test262/language/statements/for-in/cptn-expr-zero-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and no iteration occurs -info: > +info: | IterationStatement : for ( LeftHandSideExpression in Expression ) Statement 1. Let keyResult be ForIn/OfHeadEvaluation( « », Expression, enumerate). diff --git a/js/src/tests/test262/language/statements/for-in/decl-async-fun.js b/js/src/tests/test262/language/statements/for-in/decl-async-fun.js index c25084a0fb99..5f955e6727ae 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-async-fun.js +++ b/js/src/tests/test262/language/statements/for-in/decl-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/decl-async-gen.js b/js/src/tests/test262/language/statements/for-in/decl-async-gen.js index e49a2284adb6..77ebb3471a3e 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-async-gen.js +++ b/js/src/tests/test262/language/statements/for-in/decl-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/decl-cls.js b/js/src/tests/test262/language/statements/for-in/decl-cls.js index 211cf00fda01..9014be95b7e6 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-cls.js +++ b/js/src/tests/test262/language/statements/for-in/decl-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/decl-const.js b/js/src/tests/test262/language/statements/for-in/decl-const.js index b495bfaf619e..f89f7d5c6a71 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-const.js +++ b/js/src/tests/test262/language/statements/for-in/decl-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/decl-fun.js b/js/src/tests/test262/language/statements/for-in/decl-fun.js index ef6f3e7e1dcb..aed62b7c0d2a 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-fun.js +++ b/js/src/tests/test262/language/statements/for-in/decl-fun.js @@ -6,7 +6,7 @@ description: Function declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/decl-gen.js b/js/src/tests/test262/language/statements/for-in/decl-gen.js index f901967fe94b..c645be6b6da2 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-gen.js +++ b/js/src/tests/test262/language/statements/for-in/decl-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/decl-let.js b/js/src/tests/test262/language/statements/for-in/decl-let.js index 233364494194..295ab23a3282 100644 --- a/js/src/tests/test262/language/statements/for-in/decl-let.js +++ b/js/src/tests/test262/language/statements/for-in/decl-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-init-yield-ident-invalid-strict.js index 8906e8bd8fd1..5b121790ed79 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-invalid.js index c3c9c634e388..6278748ad067 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-yield-ident-invalid-strict.js index 32ba07aed160..b3810eae951d 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-invalid.js index 5eece771cbf9..775be8fc7a30 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js index 0a2e93eb7bb0..ffee7147af50 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-simple-strict-strict.js index 237f4b8577ed..3f01e9d5d5bd 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-yield-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-yield-invalid-strict.js index c09316604b28..27ebf6e6515e 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-yield-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-elem-target-yield-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-element.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-element.js index 7375df88f3a0..a150d496a118 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-element.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-element.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-elision.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-elision.js index 9ce8277e0d71..2f26b74f0ba6 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-elision.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-elision.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-rest.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-rest.js index da6ff6ac9b7b..f5dcc566030c 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-rest.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-before-rest.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-elision-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-elision-invalid.js index 4946bfb4d1c3..526702f80c1e 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-elision-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-elision-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-init.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-init.js index 83c37da85155..c8f15397eeb6 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-init.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-init.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-invalid.js index 06d5a54b98eb..97f301cb3d19 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-yield-ident-invalid-strict.js index 1807162e97e4..5cc2b19f5501 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-invalid.js index 6c55791bd8fa..4491082d3a80 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js index 66dfa0137266..94b9c9b9670c 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-yield-ident-invalid-strict.js index 32b0540f85ff..4c7ee874015f 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-array-rest-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-array-rest-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-expr.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-expr.js index 9c000d0e1885..192adae17393 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-expr.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-expr.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [generators, destructuring-binding] flags: [generated, noStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-ident-invalid-strict.js index 21391cb1aa78..4d2d6c0466f9 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-identifier-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-simple-strict-strict.js index 3727416ad18d..1388e473a05d 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-yield-ident-invalid-strict.js index d84dfcbe4ac4..b6eda3028e2f 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-simple-strict-strict.js index bf37e6f653a8..39f139eea074 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-id-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-id-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js index cf89af53755d..787a9584101f 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js index df5097133337..f79f2d209dc1 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-invalid.js index 07303e97f325..890c70f62c24 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js index 067ecee36417..86ae7c4a3d7b 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-invalid.js index 551cc622fa47..6937242ca73f 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js index 59f76fac01b7..c48f8b1ae582 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/dstr-obj-rest-not-last-element-invalid.js b/js/src/tests/test262/language/statements/for-in/dstr-obj-rest-not-last-element-invalid.js index 470a101b5649..67787da4c8cf 100644 --- a/js/src/tests/test262/language/statements/for-in/dstr-obj-rest-not-last-element-invalid.js +++ b/js/src/tests/test262/language/statements/for-in/dstr-obj-rest-not-last-element-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [object-rest, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-in/head-const-bound-names-dup.js b/js/src/tests/test262/language/statements/for-in/head-const-bound-names-dup.js index 57dd962f49ce..025c571b1a9f 100644 --- a/js/src/tests/test262/language/statements/for-in/head-const-bound-names-dup.js +++ b/js/src/tests/test262/language/statements/for-in/head-const-bound-names-dup.js @@ -4,7 +4,7 @@ /*--- description: The head's declaration may not contain duplicate entries negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains any diff --git a/js/src/tests/test262/language/statements/for-in/head-const-bound-names-in-stmt.js b/js/src/tests/test262/language/statements/for-in/head-const-bound-names-in-stmt.js index 87486ecfdffe..bde27a534079 100644 --- a/js/src/tests/test262/language/statements/for-in/head-const-bound-names-in-stmt.js +++ b/js/src/tests/test262/language/statements/for-in/head-const-bound-names-in-stmt.js @@ -4,7 +4,7 @@ /*--- description: The body may not re-declare variables declared in the head negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration diff --git a/js/src/tests/test262/language/statements/for-in/head-const-bound-names-let.js b/js/src/tests/test262/language/statements/for-in/head-const-bound-names-let.js index f7ecf046ce21..eb00c3f3230d 100644 --- a/js/src/tests/test262/language/statements/for-in/head-const-bound-names-let.js +++ b/js/src/tests/test262/language/statements/for-in/head-const-bound-names-let.js @@ -4,7 +4,7 @@ /*--- description: The declaration may not contain a binding for `let` negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". diff --git a/js/src/tests/test262/language/statements/for-in/head-decl-expr.js b/js/src/tests/test262/language/statements/for-in/head-decl-expr.js index 5c9954b0569c..7208b10a5a96 100644 --- a/js/src/tests/test262/language/statements/for-in/head-decl-expr.js +++ b/js/src/tests/test262/language/statements/for-in/head-decl-expr.js @@ -3,7 +3,7 @@ /*--- description: Expression is allowed in head -info: > +info: | IterationStatement : for ( ForDeclaration in Expression ) Statement 1. Let keyResult be the result of performing diff --git a/js/src/tests/test262/language/statements/for-in/head-expr-expr.js b/js/src/tests/test262/language/statements/for-in/head-expr-expr.js index 0be43b0720e2..9ad88f183676 100644 --- a/js/src/tests/test262/language/statements/for-in/head-expr-expr.js +++ b/js/src/tests/test262/language/statements/for-in/head-expr-expr.js @@ -3,7 +3,7 @@ /*--- description: Expression is allowed in head -info: > +info: | IterationStatement : for ( ForDeclaration in Expression ) Statement 1. Let keyResult be the result of performing diff --git a/js/src/tests/test262/language/statements/for-in/head-let-bound-names-dup.js b/js/src/tests/test262/language/statements/for-in/head-let-bound-names-dup.js index 6a25c5de15eb..43deec62edfe 100644 --- a/js/src/tests/test262/language/statements/for-in/head-let-bound-names-dup.js +++ b/js/src/tests/test262/language/statements/for-in/head-let-bound-names-dup.js @@ -4,7 +4,7 @@ /*--- description: The head's declaration may not contain duplicate entries negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains any diff --git a/js/src/tests/test262/language/statements/for-in/head-let-bound-names-in-stmt.js b/js/src/tests/test262/language/statements/for-in/head-let-bound-names-in-stmt.js index bd87467076b0..739209bfd2f0 100644 --- a/js/src/tests/test262/language/statements/for-in/head-let-bound-names-in-stmt.js +++ b/js/src/tests/test262/language/statements/for-in/head-let-bound-names-in-stmt.js @@ -4,7 +4,7 @@ /*--- description: The body may not re-declare variables declared in the head negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration diff --git a/js/src/tests/test262/language/statements/for-in/head-let-bound-names-let.js b/js/src/tests/test262/language/statements/for-in/head-let-bound-names-let.js index b6f2b26826c7..bb894c3d28da 100644 --- a/js/src/tests/test262/language/statements/for-in/head-let-bound-names-let.js +++ b/js/src/tests/test262/language/statements/for-in/head-let-bound-names-let.js @@ -4,7 +4,7 @@ /*--- description: The declaration may not contain a binding for `let` negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". diff --git a/js/src/tests/test262/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js b/js/src/tests/test262/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js index eeb201f79c19..8e1c8f052c6c 100644 --- a/js/src/tests/test262/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js +++ b/js/src/tests/test262/language/statements/for-in/head-lhs-cover-non-asnmt-trgt.js @@ -4,7 +4,7 @@ /*--- description: Head's LeftHandSideExpression must be a simple assignment target -info: > +info: | It is a Syntax Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. @@ -16,7 +16,7 @@ info: > esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js b/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js index ee3e2b9acf25..7a7646aa9422 100644 --- a/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js +++ b/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-ary.js @@ -4,7 +4,7 @@ /*--- description: Invalid destructuring assignment pattern (array literal) -info: > +info: | It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using @@ -12,7 +12,7 @@ info: > esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js b/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js index a4c49d119426..c23196f7cc08 100644 --- a/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js +++ b/js/src/tests/test262/language/statements/for-in/head-lhs-invalid-asnmt-ptrn-obj.js @@ -4,7 +4,7 @@ /*--- description: Invalid destructuring assignment pattern (object literal) -info: > +info: | It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using @@ -12,7 +12,7 @@ info: > esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/head-lhs-non-asnmt-trgt.js b/js/src/tests/test262/language/statements/for-in/head-lhs-non-asnmt-trgt.js index 2c149a417022..90475d5733cb 100644 --- a/js/src/tests/test262/language/statements/for-in/head-lhs-non-asnmt-trgt.js +++ b/js/src/tests/test262/language/statements/for-in/head-lhs-non-asnmt-trgt.js @@ -4,13 +4,13 @@ /*--- description: Head's LeftHandSideExpression must be a simple assignment target -info: > +info: | It is a Syntax Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-in/head-var-expr.js b/js/src/tests/test262/language/statements/for-in/head-var-expr.js index 3f5e808d6908..b7ff66f987c3 100644 --- a/js/src/tests/test262/language/statements/for-in/head-var-expr.js +++ b/js/src/tests/test262/language/statements/for-in/head-var-expr.js @@ -3,7 +3,7 @@ /*--- description: Expression is allowed in head -info: > +info: | IterationStatement : for ( ForDeclaration in Expression ) Statement 1. Let keyResult be the result of performing diff --git a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-const.js b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-const.js index 384fe14a4373..2669318addd2 100644 --- a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-const.js +++ b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-const.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-let.js b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-let.js index 182461f45f04..3e3473cf457c 100644 --- a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-let.js +++ b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-let.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-lhs.js b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-lhs.js index 614df1dbc7a0..f88d84490b4e 100644 --- a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-lhs.js +++ b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-lhs.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-var.js b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-var.js index 79501f80f270..5c57fa0880ec 100644 --- a/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-var.js +++ b/js/src/tests/test262/language/statements/for-in/labelled-fn-stmt-var.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-in/let-array-with-newline.js b/js/src/tests/test262/language/statements/for-in/let-array-with-newline.js index 8ac2da5df587..417bdde316a4 100644 --- a/js/src/tests/test262/language/statements/for-in/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/for-in/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/arguments-mapped-aliasing.js b/js/src/tests/test262/language/statements/for-of/arguments-mapped-aliasing.js index 771997da2c3a..5464686c0b40 100644 --- a/js/src/tests/test262/language/statements/for-of/arguments-mapped-aliasing.js +++ b/js/src/tests/test262/language/statements/for-of/arguments-mapped-aliasing.js @@ -4,7 +4,7 @@ es6id: 13.6.4 description: > Mapped arguments object mutation via alias during traversal using for..of -info: > +info: | "Mapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to the formal parameters should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/arguments-mapped-mutation.js b/js/src/tests/test262/language/statements/for-of/arguments-mapped-mutation.js index fccf08094fb0..283033dc0195 100644 --- a/js/src/tests/test262/language/statements/for-of/arguments-mapped-mutation.js +++ b/js/src/tests/test262/language/statements/for-of/arguments-mapped-mutation.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Mapped arguments object mutation during traversal using for..of -info: > +info: | "Mapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/arguments-mapped.js b/js/src/tests/test262/language/statements/for-of/arguments-mapped.js index 9e22228b3835..236677f921e7 100644 --- a/js/src/tests/test262/language/statements/for-of/arguments-mapped.js +++ b/js/src/tests/test262/language/statements/for-of/arguments-mapped.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Mapped arguments object traversal using for..of -info: > +info: | "Mapped" arguments objects should be able to be traversed using a `for..of` loop. flags: [noStrict] diff --git a/js/src/tests/test262/language/statements/for-of/arguments-unmapped-aliasing.js b/js/src/tests/test262/language/statements/for-of/arguments-unmapped-aliasing.js index 439d14a1e410..bb4aefac27cc 100644 --- a/js/src/tests/test262/language/statements/for-of/arguments-unmapped-aliasing.js +++ b/js/src/tests/test262/language/statements/for-of/arguments-unmapped-aliasing.js @@ -4,7 +4,7 @@ es6id: 13.6.4 description: > Unmapped arguments object mutation via alias during traversal using for..of -info: > +info: | "Unmapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to the formal parameters should not be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/arguments-unmapped-mutation.js b/js/src/tests/test262/language/statements/for-of/arguments-unmapped-mutation.js index f4a42b3ce843..a3feb3ea63fa 100644 --- a/js/src/tests/test262/language/statements/for-of/arguments-unmapped-mutation.js +++ b/js/src/tests/test262/language/statements/for-of/arguments-unmapped-mutation.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Unmapped arguments object mutation during traversal using for..of -info: > +info: | "Unmapped" arguments objects should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/arguments-unmapped.js b/js/src/tests/test262/language/statements/for-of/arguments-unmapped.js index 1a60d354db4c..e1a68abad303 100644 --- a/js/src/tests/test262/language/statements/for-of/arguments-unmapped.js +++ b/js/src/tests/test262/language/statements/for-of/arguments-unmapped.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Unmapped arguments object traversal using for..of -info: > +info: | "Umapped" arguments objects should be able to be traversed using a `for..of` loop. flags: [noStrict] diff --git a/js/src/tests/test262/language/statements/for-of/array-contract-expand.js b/js/src/tests/test262/language/statements/for-of/array-contract-expand.js index e35516e33156..1a4c55e5a540 100644 --- a/js/src/tests/test262/language/statements/for-of/array-contract-expand.js +++ b/js/src/tests/test262/language/statements/for-of/array-contract-expand.js @@ -4,7 +4,7 @@ /*--- description: > Array entry removal and re-insertion during traversal using for..of -info: > +info: | Entries removed from an Array instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/array-contract.js b/js/src/tests/test262/language/statements/for-of/array-contract.js index 128fa39a1bfb..e8e7a5fc568b 100644 --- a/js/src/tests/test262/language/statements/for-of/array-contract.js +++ b/js/src/tests/test262/language/statements/for-of/array-contract.js @@ -3,7 +3,7 @@ /*--- description: Array entry removal during traversal using for..of -info: > +info: | Entries removed from an Array instance during traversal should not be visited. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/array-expand-contract.js b/js/src/tests/test262/language/statements/for-of/array-expand-contract.js index 88a407de6f51..d4ae45a8ebae 100644 --- a/js/src/tests/test262/language/statements/for-of/array-expand-contract.js +++ b/js/src/tests/test262/language/statements/for-of/array-expand-contract.js @@ -4,7 +4,7 @@ /*--- description: > Array entry insertion and removal items during traversal using for..of -info: > +info: | New entries inserted into an Array instance during traversal should not be visited if they are removed prior to visitation. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/array-expand.js b/js/src/tests/test262/language/statements/for-of/array-expand.js index b3b8494a4dda..2a80716fca9f 100644 --- a/js/src/tests/test262/language/statements/for-of/array-expand.js +++ b/js/src/tests/test262/language/statements/for-of/array-expand.js @@ -3,7 +3,7 @@ /*--- description: Array entry insertion during traversal using for..of -info: > +info: | New entries inserted into an Array instance during traversal should be visited. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/array-key-get-error.js b/js/src/tests/test262/language/statements/for-of/array-key-get-error.js index 4e6a2954fe8a..aef1e6a3cd85 100644 --- a/js/src/tests/test262/language/statements/for-of/array-key-get-error.js +++ b/js/src/tests/test262/language/statements/for-of/array-key-get-error.js @@ -3,7 +3,7 @@ /*--- description: Error in Array entry access during traversal using for..of -info: > +info: | If retrieving an element from the array produces an error, that error should be forwarded to the run time. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/cptn-decl-abrupt-empty.js b/js/src/tests/test262/language/statements/for-of/cptn-decl-abrupt-empty.js index 1ca532a659ac..766dade1096b 100644 --- a/js/src/tests/test262/language/statements/for-of/cptn-decl-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/for-of/cptn-decl-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration is cancelled -info: > +info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », diff --git a/js/src/tests/test262/language/statements/for-of/cptn-decl-itr.js b/js/src/tests/test262/language/statements/for-of/cptn-decl-itr.js index 40bf2afece87..4b856e30e96a 100644 --- a/js/src/tests/test262/language/statements/for-of/cptn-decl-itr.js +++ b/js/src/tests/test262/language/statements/for-of/cptn-decl-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and iteration occurs -info: > +info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », diff --git a/js/src/tests/test262/language/statements/for-of/cptn-decl-no-itr.js b/js/src/tests/test262/language/statements/for-of/cptn-decl-no-itr.js index b26d0df30cd1..ce739a4baf75 100644 --- a/js/src/tests/test262/language/statements/for-of/cptn-decl-no-itr.js +++ b/js/src/tests/test262/language/statements/for-of/cptn-decl-no-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has a declaration and no iteration occurs -info: > +info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement 1. Let keyResult be the result of performing ForIn/OfHeadEvaluation( « », diff --git a/js/src/tests/test262/language/statements/for-of/cptn-expr-abrupt-empty.js b/js/src/tests/test262/language/statements/for-of/cptn-expr-abrupt-empty.js index 65fc2c5796a7..edbded582444 100644 --- a/js/src/tests/test262/language/statements/for-of/cptn-expr-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/for-of/cptn-expr-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration is cancelled -info: > +info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement diff --git a/js/src/tests/test262/language/statements/for-of/cptn-expr-itr.js b/js/src/tests/test262/language/statements/for-of/cptn-expr-itr.js index 02a41a84e033..be34657871b7 100644 --- a/js/src/tests/test262/language/statements/for-of/cptn-expr-itr.js +++ b/js/src/tests/test262/language/statements/for-of/cptn-expr-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and iteration occurs -info: > +info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement diff --git a/js/src/tests/test262/language/statements/for-of/cptn-expr-no-itr.js b/js/src/tests/test262/language/statements/for-of/cptn-expr-no-itr.js index 2cc1004b6f64..09e01617ae47 100644 --- a/js/src/tests/test262/language/statements/for-of/cptn-expr-no-itr.js +++ b/js/src/tests/test262/language/statements/for-of/cptn-expr-no-itr.js @@ -4,7 +4,7 @@ es6id: 13.7.5.11 description: > Completion value when head has no declaration and no iteration occurs -info: > +info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement diff --git a/js/src/tests/test262/language/statements/for-of/decl-async-fun.js b/js/src/tests/test262/language/statements/for-of/decl-async-fun.js index 49c2ab4a6828..2eaa57635f04 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-async-fun.js +++ b/js/src/tests/test262/language/statements/for-of/decl-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/decl-async-gen.js b/js/src/tests/test262/language/statements/for-of/decl-async-gen.js index 267704b92989..5e9d395129c5 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-async-gen.js +++ b/js/src/tests/test262/language/statements/for-of/decl-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/decl-cls.js b/js/src/tests/test262/language/statements/for-of/decl-cls.js index 5cfb113a7bf6..016d53308b23 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-cls.js +++ b/js/src/tests/test262/language/statements/for-of/decl-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/decl-const.js b/js/src/tests/test262/language/statements/for-of/decl-const.js index 0049a282cce1..87e5b7ce9c73 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-const.js +++ b/js/src/tests/test262/language/statements/for-of/decl-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/decl-fun.js b/js/src/tests/test262/language/statements/for-of/decl-fun.js index 4234325908ed..03f7601e3808 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-fun.js +++ b/js/src/tests/test262/language/statements/for-of/decl-fun.js @@ -6,7 +6,7 @@ description: Function declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/decl-gen.js b/js/src/tests/test262/language/statements/for-of/decl-gen.js index 4e6e433eb5ee..14e67fa59d01 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-gen.js +++ b/js/src/tests/test262/language/statements/for-of/decl-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/decl-let.js b/js/src/tests/test262/language/statements/for-of/decl-let.js index a10a566c13cb..d28cff07783d 100644 --- a/js/src/tests/test262/language/statements/for-of/decl-let.js +++ b/js/src/tests/test262/language/statements/for-of/decl-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-for-in-and-for-of-statements es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-init-yield-ident-invalid-strict.js index 4e50e598146c..154b3ddb334a 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-invalid.js index 35d0a12e6f17..a65ad85b2a1d 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-yield-ident-invalid-strict.js index 9f4deb99c9ea..dc8a35bcd8da 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-invalid.js index 7a01957016a2..95595ee9459b 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js index 4facc29327eb..9d36b08f8777 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-simple-strict-strict.js index 2fd5b2370a7f..8d4925174118 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-yield-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-yield-invalid-strict.js index 804cc136a251..c2bcbaa4120a 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-yield-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-elem-target-yield-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-element.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-element.js index b1b75c50e3a5..8ee211dc07be 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-element.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-element.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-elision.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-elision.js index bf5059a166cb..948becf08e65 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-elision.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-elision.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-rest.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-rest.js index aa75cc271dc6..c558e9100651 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-rest.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-before-rest.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-elision-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-elision-invalid.js index 3fc369d78bfd..b6b6e5d71e2c 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-elision-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-elision-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-init.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-init.js index 033a973e36a7..32f80d670c39 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-init.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-init.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-invalid.js index e6915488d232..c4eb7499225f 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-yield-ident-invalid-strict.js index 3f082d6c2059..d4140eea4df7 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-invalid.js index 885b8b68f9df..3746d97e4dd6 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js index dceedce66fee..f53b80225491 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-yield-ident-invalid-strict.js index aa053c6c74a8..4336a41a4bdf 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-array-rest-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-array-rest-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-ary.js index 6f9edb57ca6e..b2d73fda3b21 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-id.js index 5ca689039758..36a2fbc4778a 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-obj.js index 913624cc854e..41eb51dd74e6 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-ary.js index 723981f8d67b..bb04808bc5e4 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-id.js index 2aa6b10bdaea..6e1820cf34a9 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-obj.js index f4be52c3190c..028767591259 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-const-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-ary.js index 2c6f33f45edd..d1abc445e35a 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-id.js index 6cb5ba02d31d..929d84698866 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-obj.js index a87a357a92e2..c893b8a67b71 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-ary.js index 988c63acbce3..9fa546e90221 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-id.js index a9e9f02a08ac..470f3a052899 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-obj.js index 232a46a3adf1..0e9534af9662 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-let-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-expr.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-expr.js index c7b97e284599..bf4bcf7af1c3 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-expr.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-expr.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [generators, destructuring-binding] flags: [generated, noStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-ident-invalid-strict.js index 32f87d322897..695763208075 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-identifier-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-simple-strict-strict.js index c315fa03fc6d..98b5770c05f4 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-yield-ident-invalid-strict.js index 70f10702ce09..2ad190fb5e1a 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-simple-strict-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-simple-strict-strict.js index 27e8133ff6ee..746caa6ed19e 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-id-simple-strict-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-id-simple-strict-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js index 5b5d641a64e6..b711f5b367c4 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-init-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js index b7fcb4b0b7a5..5f2593f56b73 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-elem-target-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-invalid.js index 2e1159c38b63..17645de101c2 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js index 69e40c92b301..ccd30ef0c650 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-array-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-invalid.js index ca008eec22f0..1e4a4e750049 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js index 83fb7c93adf9..aefeeecf972d 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-prop-nested-obj-yield-ident-invalid-strict.js @@ -10,7 +10,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-obj-rest-not-last-element-invalid.js b/js/src/tests/test262/language/statements/for-of/dstr-obj-rest-not-last-element-invalid.js index ab827a2f46d6..ad9327655f2e 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-obj-rest-not-last-element-invalid.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-obj-rest-not-last-element-invalid.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [object-rest, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-ary.js index aec801215807..0336091d5470 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-id.js index f1e4d97dd6a8..f1fd48fefe7a 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-obj.js index 4fe7e27161d1..4368a7db1639 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-ary.js index a926bf6c1746..fbafc1ffaac6 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-id.js index 7e50989dc32e..8ced7f2874dd 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-obj.js index bf1e5f221e16..a1cc592b685f 100644 --- a/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for-of/dstr-var-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.5.11 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for-of/escaped-of.js b/js/src/tests/test262/language/statements/for-of/escaped-of.js index 087584b3bdd2..118f1b9dc37d 100644 --- a/js/src/tests/test262/language/statements/for-of/escaped-of.js +++ b/js/src/tests/test262/language/statements/for-of/escaped-of.js @@ -6,7 +6,7 @@ esid: sec-grammar-notation description: > The `of` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These @@ -15,7 +15,7 @@ info: > from the Basic Latin range, as opposed to any similar-looking code points from other Unicode ranges. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/float32array-mutate.js b/js/src/tests/test262/language/statements/for-of/float32array-mutate.js index 6ce31990f6fd..08de44b6fac0 100644 --- a/js/src/tests/test262/language/statements/for-of/float32array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/float32array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Float32Array mutation during traversal using for..of -info: > +info: | Float32Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/float32array.js b/js/src/tests/test262/language/statements/for-of/float32array.js index 57546f0174c5..71555e9ecd11 100644 --- a/js/src/tests/test262/language/statements/for-of/float32array.js +++ b/js/src/tests/test262/language/statements/for-of/float32array.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Float32Array traversal using for..of -info: > +info: | Float32Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] diff --git a/js/src/tests/test262/language/statements/for-of/float64array-mutate.js b/js/src/tests/test262/language/statements/for-of/float64array-mutate.js index 09010e8d40be..2b88e4687d73 100644 --- a/js/src/tests/test262/language/statements/for-of/float64array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/float64array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Float64Array mutation during traversal using for..of -info: > +info: | Float64Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/float64array.js b/js/src/tests/test262/language/statements/for-of/float64array.js index 23c1a850f6cb..82c4115661cc 100644 --- a/js/src/tests/test262/language/statements/for-of/float64array.js +++ b/js/src/tests/test262/language/statements/for-of/float64array.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Float64Array traversal using for..of -info: > +info: | Float64Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] diff --git a/js/src/tests/test262/language/statements/for-of/generator-close-via-continue.js b/js/src/tests/test262/language/statements/for-of/generator-close-via-continue.js new file mode 100644 index 000000000000..9c6786aaf6ea --- /dev/null +++ b/js/src/tests/test262/language/statements/for-of/generator-close-via-continue.js @@ -0,0 +1,67 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset +description: > + Generators should be closed via their `return` method when iteration is + interrupted via a `continue` statement. +info: | + 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation ( lhs, stmt, iteratorRecord, iterationKind, lhsKind, labelSet ) + ... + 5. Repeat, + ... + i. Let result be the result of evaluating stmt. + ... + k. If LoopContinues(result, labelSet) is false, then + i. If iterationKind is enumerate, then + ... + ii. Else, + 1. Assert: iterationKind is iterate. + 2. Return ? IteratorClose(iteratorRecord, UpdateEmpty(result, V)). + ... + +features: [generators] +---*/ + +var startedCount = 0; +var finallyCount = 0; +var iterationCount = 0; +function* values() { + startedCount += 1; + try { + yield; + $ERROR('This code is unreachable (within `try` block)'); + } finally { + finallyCount += 1; + } + $ERROR('This code is unreachable (following `try` statement)'); +} +var iterable = values(); + +assert.sameValue( + startedCount, 0, 'Generator is initialized in suspended state' +); + +L: do { + for (var x of iterable) { + assert.sameValue( + startedCount, 1, 'Generator executes prior to first iteration' + ); + assert.sameValue( + finallyCount, 0, 'Generator is paused during first iteration' + ); + iterationCount += 1; + continue L; + } +} while (false); + +assert.sameValue( + startedCount, 1, 'Generator does not restart following interruption' +); +assert.sameValue(iterationCount, 1, 'A single iteration occurs'); +assert.sameValue( + finallyCount, 1, 'Generator is closed after `continue` statement' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/for-of/head-const-bound-names-dup.js b/js/src/tests/test262/language/statements/for-of/head-const-bound-names-dup.js index c34c2d318dce..89927e49158a 100644 --- a/js/src/tests/test262/language/statements/for-of/head-const-bound-names-dup.js +++ b/js/src/tests/test262/language/statements/for-of/head-const-bound-names-dup.js @@ -4,7 +4,7 @@ /*--- description: The head's declaration may not contain duplicate entries negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains any diff --git a/js/src/tests/test262/language/statements/for-of/head-const-bound-names-in-stmt.js b/js/src/tests/test262/language/statements/for-of/head-const-bound-names-in-stmt.js index 6d299f5b2b0e..f28ddb096f91 100644 --- a/js/src/tests/test262/language/statements/for-of/head-const-bound-names-in-stmt.js +++ b/js/src/tests/test262/language/statements/for-of/head-const-bound-names-in-stmt.js @@ -4,7 +4,7 @@ /*--- description: The body may not re-declare variables declared in the head negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration diff --git a/js/src/tests/test262/language/statements/for-of/head-const-bound-names-let.js b/js/src/tests/test262/language/statements/for-of/head-const-bound-names-let.js index 72139f2ae144..70d15e8d1843 100644 --- a/js/src/tests/test262/language/statements/for-of/head-const-bound-names-let.js +++ b/js/src/tests/test262/language/statements/for-of/head-const-bound-names-let.js @@ -4,7 +4,7 @@ /*--- description: The declaration may not contain a binding for `let` negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". diff --git a/js/src/tests/test262/language/statements/for-of/head-decl-no-expr.js b/js/src/tests/test262/language/statements/for-of/head-decl-no-expr.js index 6004d963e43f..8eeb4c0afd06 100644 --- a/js/src/tests/test262/language/statements/for-of/head-decl-no-expr.js +++ b/js/src/tests/test262/language/statements/for-of/head-decl-no-expr.js @@ -4,12 +4,12 @@ /*--- description: Expression not allowed in head's AssignmentExpression position -info: > +info: | IterationStatement : for ( ForDeclaration of AssignmentExpression ) Statement es6id: 13.7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-expr-no-expr.js b/js/src/tests/test262/language/statements/for-of/head-expr-no-expr.js index 1e46baaefd83..67c9440fa96a 100644 --- a/js/src/tests/test262/language/statements/for-of/head-expr-no-expr.js +++ b/js/src/tests/test262/language/statements/for-of/head-expr-no-expr.js @@ -4,12 +4,12 @@ /*--- description: Expression not allowed in head's AssignmentExpression position -info: > +info: | IterationStatement : for ( LeftHandSideExpression of AssignmentExpression ) Statement es6id: 13.7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-let-bound-names-dup.js b/js/src/tests/test262/language/statements/for-of/head-let-bound-names-dup.js index 9a8bea6a9642..29075091de91 100644 --- a/js/src/tests/test262/language/statements/for-of/head-let-bound-names-dup.js +++ b/js/src/tests/test262/language/statements/for-of/head-let-bound-names-dup.js @@ -4,7 +4,7 @@ /*--- description: The head's declaration may not contain duplicate entries negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains any diff --git a/js/src/tests/test262/language/statements/for-of/head-let-bound-names-in-stmt.js b/js/src/tests/test262/language/statements/for-of/head-let-bound-names-in-stmt.js index a720793a7b00..088de1ed7781 100644 --- a/js/src/tests/test262/language/statements/for-of/head-let-bound-names-in-stmt.js +++ b/js/src/tests/test262/language/statements/for-of/head-let-bound-names-in-stmt.js @@ -4,7 +4,7 @@ /*--- description: The body may not re-declare variables declared in the head negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if any element of the BoundNames of ForDeclaration diff --git a/js/src/tests/test262/language/statements/for-of/head-let-bound-names-let.js b/js/src/tests/test262/language/statements/for-of/head-let-bound-names-let.js index 9d1efe8ac7e6..a7868b9becf0 100644 --- a/js/src/tests/test262/language/statements/for-of/head-let-bound-names-let.js +++ b/js/src/tests/test262/language/statements/for-of/head-let-bound-names-let.js @@ -4,7 +4,7 @@ /*--- description: The declaration may not contain a binding for `let` negative: - phase: early + phase: parse type: SyntaxError info: | It is a Syntax Error if the BoundNames of ForDeclaration contains "let". diff --git a/js/src/tests/test262/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js b/js/src/tests/test262/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js index d148553b7a0c..9a29721813d2 100644 --- a/js/src/tests/test262/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js +++ b/js/src/tests/test262/language/statements/for-of/head-lhs-cover-non-asnmt-trgt.js @@ -4,7 +4,7 @@ /*--- description: Head's LeftHandSideExpression must be a simple assignment target -info: > +info: | It is a Syntax Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. @@ -16,7 +16,7 @@ info: > esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js b/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js index db6b379df735..55640f43ae2b 100644 --- a/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js +++ b/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-ary.js @@ -4,7 +4,7 @@ /*--- description: Invalid destructuring assignment pattern (array literal) -info: > +info: | It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using @@ -12,7 +12,7 @@ info: > esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js b/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js index 09cf6833e314..bc9d8fe0fc37 100644 --- a/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js +++ b/js/src/tests/test262/language/statements/for-of/head-lhs-invalid-asnmt-ptrn-obj.js @@ -4,7 +4,7 @@ /*--- description: Invalid destructuring assignment pattern (object literal) -info: > +info: | It is a Syntax Error if LeftHandSideExpression is either an ObjectLiteral or an ArrayLiteral and if the lexical token sequence matched by LeftHandSideExpression cannot be parsed with no tokens left over using @@ -12,7 +12,7 @@ info: > esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-lhs-let.js b/js/src/tests/test262/language/statements/for-of/head-lhs-let.js index 9bf21e722e62..6f9a57bbafe0 100644 --- a/js/src/tests/test262/language/statements/for-of/head-lhs-let.js +++ b/js/src/tests/test262/language/statements/for-of/head-lhs-let.js @@ -17,7 +17,7 @@ info: | for ( ForDeclaration[?Yield] of AssignmentExpression[+In, ?Yield] ) Statement[?Yield, ?Return] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-lhs-non-asnmt-trgt.js b/js/src/tests/test262/language/statements/for-of/head-lhs-non-asnmt-trgt.js index 3ec26cb5f237..3362fb274190 100644 --- a/js/src/tests/test262/language/statements/for-of/head-lhs-non-asnmt-trgt.js +++ b/js/src/tests/test262/language/statements/for-of/head-lhs-non-asnmt-trgt.js @@ -4,13 +4,13 @@ /*--- description: Head's LeftHandSideExpression must be a simple assignment target -info: > +info: | It is a Syntax Error if IsValidSimpleAssignmentTarget of LeftHandSideExpression is false. esid: sec-for-in-and-for-of-statements-static-semantics-early-errors es6id: 13.7.5 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/head-var-no-expr.js b/js/src/tests/test262/language/statements/for-of/head-var-no-expr.js index c5dca0a70b55..e86eab2db5db 100644 --- a/js/src/tests/test262/language/statements/for-of/head-var-no-expr.js +++ b/js/src/tests/test262/language/statements/for-of/head-var-no-expr.js @@ -4,12 +4,12 @@ /*--- description: Expression not allowed in head's AssignmentExpression position -info: > +info: | IterationStatement : for ( var ForBinding of AssignmentExpression ) Statement es6id: 13.7 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/int16array-mutate.js b/js/src/tests/test262/language/statements/for-of/int16array-mutate.js index 17936bc72c15..fe86a968574b 100644 --- a/js/src/tests/test262/language/statements/for-of/int16array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/int16array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Int16Array mutation during traversal using for..of -info: > +info: | Int16Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/int32array-mutate.js b/js/src/tests/test262/language/statements/for-of/int32array-mutate.js index 88feb6dcf23d..f19f70e27ab9 100644 --- a/js/src/tests/test262/language/statements/for-of/int32array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/int32array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Int32Array mutation during traversal using for..of -info: > +info: | Int32Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/int8array-mutate.js b/js/src/tests/test262/language/statements/for-of/int8array-mutate.js index 54e9b25da81b..96a79760f0bb 100644 --- a/js/src/tests/test262/language/statements/for-of/int8array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/int8array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Int8Array mutation during traversal using for..of -info: > +info: | Int8Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/iterator-close-via-continue.js b/js/src/tests/test262/language/statements/for-of/iterator-close-via-continue.js new file mode 100644 index 000000000000..f2ffaedcd07d --- /dev/null +++ b/js/src/tests/test262/language/statements/for-of/iterator-close-via-continue.js @@ -0,0 +1,66 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset +description: > + Iterators should be closed via their `return` method when iteration is + interrupted via a `continue` statement. +info: | + 13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation ( lhs, stmt, iteratorRecord, iterationKind, lhsKind, labelSet ) + ... + 5. Repeat, + ... + i. Let result be the result of evaluating stmt. + ... + k. If LoopContinues(result, labelSet) is false, then + i. If iterationKind is enumerate, then + ... + ii. Else, + 1. Assert: iterationKind is iterate. + 2. Return ? IteratorClose(iteratorRecord, UpdateEmpty(result, V)). + ... + +features: [Symbol.iterator] +---*/ + +var startedCount = 0; +var returnCount = 0; +var iterationCount = 0; +var iterable = {}; + +iterable[Symbol.iterator] = function() { + return { + next: function() { + startedCount += 1; + return { done: false, value: null }; + }, + return: function() { + returnCount += 1; + return {}; + } + }; +}; + +L: do { + for (var x of iterable) { + assert.sameValue( + startedCount, 1, 'Value is retrieved' + ); + assert.sameValue( + returnCount, 0, 'Iterator is not closed' + ); + iterationCount += 1; + continue L; + } +} while (false); + +assert.sameValue( + startedCount, 1, 'Iterator does not restart following interruption' +); +assert.sameValue(iterationCount, 1, 'A single iteration occurs'); +assert.sameValue( + returnCount, 1, 'Iterator is closed after `continue` statement' +); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-const.js b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-const.js index 7aa9178d1e76..446329d2cd12 100644 --- a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-const.js +++ b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-const.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-let.js b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-let.js index ff47d8dd6ff8..184111706f6d 100644 --- a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-let.js +++ b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-let.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-lhs.js b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-lhs.js index d0f9c6341b95..1a1d4496d6a5 100644 --- a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-lhs.js +++ b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-lhs.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-var.js b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-var.js index b212a5a2f455..898d59129eda 100644 --- a/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-var.js +++ b/js/src/tests/test262/language/statements/for-of/labelled-fn-stmt-var.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for-of/let-array-with-newline.js b/js/src/tests/test262/language/statements/for-of/let-array-with-newline.js index 74157b31faca..ab9fa3d32ae2 100644 --- a/js/src/tests/test262/language/statements/for-of/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/for-of/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/for-of/map-contract-expand.js b/js/src/tests/test262/language/statements/for-of/map-contract-expand.js index 4f3b97adaa26..c9cc3ed190d0 100644 --- a/js/src/tests/test262/language/statements/for-of/map-contract-expand.js +++ b/js/src/tests/test262/language/statements/for-of/map-contract-expand.js @@ -3,7 +3,7 @@ /*--- description: Map entry removal and re-insertion during traversal using for..of -info: > +info: | Entries removed from a Map instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/map-expand-contract.js b/js/src/tests/test262/language/statements/for-of/map-expand-contract.js index ef5f83079db9..cd1c2ed6dcb5 100644 --- a/js/src/tests/test262/language/statements/for-of/map-expand-contract.js +++ b/js/src/tests/test262/language/statements/for-of/map-expand-contract.js @@ -3,7 +3,7 @@ /*--- description: Map entry insertion during traversal using for..of -info: > +info: | New entries inserted into a Map instance during traversal should not be visited if they are removed prior to visitation. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/map-expand.js b/js/src/tests/test262/language/statements/for-of/map-expand.js index 3f413f680cd2..044dd0cf2d5f 100644 --- a/js/src/tests/test262/language/statements/for-of/map-expand.js +++ b/js/src/tests/test262/language/statements/for-of/map-expand.js @@ -3,7 +3,7 @@ /*--- description: Map entry insertion during traversal using for..of -info: > +info: | New entries inserted into a Map instance during traversal should be visited. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/map.js b/js/src/tests/test262/language/statements/for-of/map.js index 9d6d96f0273c..c7a936192ca2 100644 --- a/js/src/tests/test262/language/statements/for-of/map.js +++ b/js/src/tests/test262/language/statements/for-of/map.js @@ -3,7 +3,7 @@ /*--- description: Map traversal using for..of -info: > +info: | Map instances should be able to be traversed using a `for...of` loop. es6id: 13.6.4 features: [Map] diff --git a/js/src/tests/test262/language/statements/for-of/set-contract-expand.js b/js/src/tests/test262/language/statements/for-of/set-contract-expand.js index 955dd97f79af..4a397815e9d8 100644 --- a/js/src/tests/test262/language/statements/for-of/set-contract-expand.js +++ b/js/src/tests/test262/language/statements/for-of/set-contract-expand.js @@ -3,7 +3,7 @@ /*--- description: Set entry removal and re-insertion during traversal using for..of -info: > +info: | Entries removed from a Set instance during traversal should be visited if they are re-inserted prior to iterator exhaustion. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/set-expand-contract.js b/js/src/tests/test262/language/statements/for-of/set-expand-contract.js index 15c1e0462e27..29264dde6fd1 100644 --- a/js/src/tests/test262/language/statements/for-of/set-expand-contract.js +++ b/js/src/tests/test262/language/statements/for-of/set-expand-contract.js @@ -3,7 +3,7 @@ /*--- description: Set entry insertion and removal during traversal using for..of -info: > +info: | New entries inserted into a Set instance during traversal should not be visited if they are removed prior to visitation. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/set-expand.js b/js/src/tests/test262/language/statements/for-of/set-expand.js index dc005f66ca80..56aca39e95ff 100644 --- a/js/src/tests/test262/language/statements/for-of/set-expand.js +++ b/js/src/tests/test262/language/statements/for-of/set-expand.js @@ -3,7 +3,7 @@ /*--- description: Set entry insertaion during traversal using for..of -info: > +info: | New entries inserted into a Set instance during traversal should be visited. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/string-astral-truncated.js b/js/src/tests/test262/language/statements/for-of/string-astral-truncated.js index a9f21a4cacdb..97f580b52ab6 100644 --- a/js/src/tests/test262/language/statements/for-of/string-astral-truncated.js +++ b/js/src/tests/test262/language/statements/for-of/string-astral-truncated.js @@ -3,7 +3,7 @@ /*--- description: String traversal using for..of (incomplete surrogate pairs) -info: > +info: | String literals should be able to be traversed using a `for...of` loop. The loop body should execute once for each incomplete surrogate pair. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/string-astral.js b/js/src/tests/test262/language/statements/for-of/string-astral.js index e7b6a72255ce..f203124fb7bc 100644 --- a/js/src/tests/test262/language/statements/for-of/string-astral.js +++ b/js/src/tests/test262/language/statements/for-of/string-astral.js @@ -3,7 +3,7 @@ /*--- description: String traversal using for..of (astral symbols) -info: > +info: | String literals should be able to be traversed using a `for...of` loop. The loop body should execute once for each astral symbol. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/string-bmp.js b/js/src/tests/test262/language/statements/for-of/string-bmp.js index 3817de095a9a..1f5d4334b645 100644 --- a/js/src/tests/test262/language/statements/for-of/string-bmp.js +++ b/js/src/tests/test262/language/statements/for-of/string-bmp.js @@ -3,7 +3,7 @@ /*--- description: String traversal using for..of -info: > +info: | String literals should be able to be traversed using a `for...of` loop. The loop body should execute once for every BMP character. es6id: 13.6.4 diff --git a/js/src/tests/test262/language/statements/for-of/uint16array-mutate.js b/js/src/tests/test262/language/statements/for-of/uint16array-mutate.js index dce5c7e39701..1ad2c4363598 100644 --- a/js/src/tests/test262/language/statements/for-of/uint16array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/uint16array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Uint16Array mutation during traversal using for..of -info: > +info: | Uint16Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/uint16array.js b/js/src/tests/test262/language/statements/for-of/uint16array.js index 047ea618793a..1bd129216f29 100644 --- a/js/src/tests/test262/language/statements/for-of/uint16array.js +++ b/js/src/tests/test262/language/statements/for-of/uint16array.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Uint16Array traversal using for..of -info: > +info: | Uint16Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] diff --git a/js/src/tests/test262/language/statements/for-of/uint32array-mutate.js b/js/src/tests/test262/language/statements/for-of/uint32array-mutate.js index 12a3fd9ef3da..d1330b81241c 100644 --- a/js/src/tests/test262/language/statements/for-of/uint32array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/uint32array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Uint32Array mutation during traversal using for..of -info: > +info: | Uint32Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/uint32array.js b/js/src/tests/test262/language/statements/for-of/uint32array.js index 4729df8003d1..0f39d498a080 100644 --- a/js/src/tests/test262/language/statements/for-of/uint32array.js +++ b/js/src/tests/test262/language/statements/for-of/uint32array.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Uint32Array traversal using for..of -info: > +info: | Uint32Array instances should be able to be traversed using a `for..of` loop. features: [TypedArray] diff --git a/js/src/tests/test262/language/statements/for-of/uint8array-mutate.js b/js/src/tests/test262/language/statements/for-of/uint8array-mutate.js index b440c1ed4d07..6bd78fcd7c4b 100644 --- a/js/src/tests/test262/language/statements/for-of/uint8array-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/uint8array-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Uint8Array mutation during traversal using for..of -info: > +info: | Uint8Array instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for-of/uint8clampedarray-mutate.js b/js/src/tests/test262/language/statements/for-of/uint8clampedarray-mutate.js index b265edc5073b..63623ac6f391 100644 --- a/js/src/tests/test262/language/statements/for-of/uint8clampedarray-mutate.js +++ b/js/src/tests/test262/language/statements/for-of/uint8clampedarray-mutate.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.4 description: Uint8ClampedArray mutation during traversal using for..of -info: > +info: | Uint8ClampedArray instances should be able to be traversed using a `for..of` loop, and dynamic changes to their contents should be reflected in the iterated values. diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-1.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-1.js index f7f53c35ce5a..c337a1302dd0 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-1.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-10.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-10.js index 3f65bf9669b2..a02e76edef53 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-10.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-11.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-11.js index 9a07726b310b..07e91cfd7d0e 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-11.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-11.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-12.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-12.js index 94b53275c964..fdaf1f751dec 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-12.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-12.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-13.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-13.js index df0218e96f85..ae34a2917d94 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-13.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-13.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-14.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-14.js index 42a4f13957a1..1b455c1ac00f 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-14.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-14.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-15.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-15.js index a87b320ca1a2..26060a95d842 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-15.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-15.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-16.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-16.js index 29b5ec5d7b8e..1b3125a69158 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-16.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-16.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-17.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-17.js index 887d68770212..4fd130f7c8c7 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-17.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-17.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-18.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-18.js index 06f9651f7438..1d2676a07f04 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-18.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-18.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-19.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-19.js index 41e609c3732d..6681abc773a8 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-19.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-19.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-2.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-2.js index f7db5ad6b8e7..1ae1af7d08b0 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-2.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-20.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-20.js index 7b97943ff0b9..7b5c8cbf4686 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-20.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-20.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-21.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-21.js index 32ef907400da..01cfc0da722e 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-21.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-21.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-3.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-3.js index 2fe3a4de1edf..8d00480e0dc2 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-3.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-4.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-4.js index 4c33c53dcb94..c9e9a84750fe 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-4.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-5.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-5.js index 7f133a23223a..55a88c038785 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-5.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-6.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-6.js index d5c0f5f53b31..78e7059eb15e 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-6.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-7.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-7.js index 3ac3648e6559..c7e9bd29d993 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-7.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-8.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-8.js index 5a9771cd77d0..678b5382887b 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-8.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-9.js b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-9.js index 7578372cf320..2fc3a7b5e881 100644 --- a/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-9.js +++ b/js/src/tests/test262/language/statements/for/12.6.3_2-3-a-ii-9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 12.6.3; The production IterationStatement : for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A1.js index 03064e26d2d1..00aca3796b43 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The "for {;;}" for Statement with empty expressions is allowed and leads to performing an infinite loop es5id: 12.6.3_A1 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T1.js index 0534cb547785..a584f894d1f4 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled "var-loop" breaks diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T2.js index 7b2973e09b54..0bc06fb2489f 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled "var-loop" breaks diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T3.js index 6c8153db71a8..7090f0144852 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A11.1_T3.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled "var-loop" breaks es5id: 12.6.3_A11.1_T3 description: Trying to continue non-existent label negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A11_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A11_T1.js index a665d72d529e..f0b2a83b906f 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A11_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A11_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled loop breaks diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A11_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A11_T2.js index c03a22d888e8..11caa722e4eb 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A11_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A11_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled loop breaks diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A11_T3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A11_T3.js index fe9a3ac0ee19..581362cb5eeb 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A11_T3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A11_T3.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "continue" and (Evaluate Statement).target is in the current label set, iteration of labeled loop breaks es5id: 12.6.3_A11_T3 description: Trying to continue non-existent label negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T1.js index 12dfa2820815..5666cdbf5283 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a "var-loop" diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T2.js index 6eb17c2d6c6a..397995321342 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a "var-loop" diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T3.js index 8d40ec122714..1998b0b3b564 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A12.1_T3.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a "var-loop" es5id: 12.6.3_A12.1_T3 description: Trying to break non-existent label negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A12_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A12_T1.js index e76934de30b6..45d259e35543 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A12_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a loop diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A12_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A12_T2.js index 44c7a7f29c42..9fb59f5c0bdd 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A12_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a loop diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A12_T3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A12_T3.js index d2a48bb2441b..14a2a66e90d8 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A12_T3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A12_T3.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If (Evaluate Statement).type is "break" and (Evaluate Statement).target is in the current label set, (normal, (Evaluate Statement), empty) is returned while evaluating a loop es5id: 12.6.3_A12_T3 description: Trying to break non-existent label negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A13.js b/js/src/tests/test262/language/statements/for/S12.6.3_A13.js index 55b898330358..148e2de981c9 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A13.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A13.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | VariableDeclaration in "var VariableDeclarationListNoIn" of for IterationStatement is allowed es5id: 12.6.3_A13 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A14.js b/js/src/tests/test262/language/statements/for/S12.6.3_A14.js index ab694efde126..d53fc6bfc9f3 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A14.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A14.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationListNoIn; Expression; Expression) Statement" es5id: 12.6.3_A14 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A15.js b/js/src/tests/test262/language/statements/for/S12.6.3_A15.js index 3344b3cce031..119c55a40aa8 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A15.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A15.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production IterationStatement: "for (var VariableDeclarationListNoIn; Expression; Expression) Statement" es5id: 12.6.3_A15 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A2.1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A2.1.js index 2dbe472352fc..b46dbf7b5b2d 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A2.1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A2.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating "for (ExpressionNoIn ; ; Expression) Statement", Statement is evaulated first es5id: 12.6.3_A2.1 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A2.2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A2.2.js index ae98d1023ba3..0a3d3cc798a9 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A2.2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A2.2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating "for (ExpressionNoIn;;) Statement", Statement is evaulated first es5id: 12.6.3_A2.2 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A2.js index e959cc053d75..7f159e29747b 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating "for (ExpressionNoIn; Expression; Expression) Statement", ExpressionNoIn is evaulated first es5id: 12.6.3_A2 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A3.js index a664e014947f..7ed761a12575 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement", ExpressionNoIn is evaulated first, FirstExpressoin is evaluated second diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A4.1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A4.1.js index 36b281c7e1ed..aac28ef0217d 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A4.1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A4.1.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "in"-expression is not allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A4.1 description: Checking if execution of "for (var a in arr;1;){}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A4_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A4_T1.js index 0b65b12b2bfb..88d81322a0dc 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A4_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A4_T1.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "in"-expression is not allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A4_T1 description: Checking if execution of "for (a in arr;1;){}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A4_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A4_T2.js index b2b5274824f7..e3761f6e5f36 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A4_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A4_T2.js @@ -3,14 +3,14 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "in"-expression is not allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement es5id: 12.6.3_A4_T2 description: Checking if execution of "for (1 in arr;1;){}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A5.js b/js/src/tests/test262/language/statements/for/S12.6.3_A5.js index f44926084674..a5d045961e1b 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A5.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "in"-expression wrapped into "eval" statement is allowed as a ExpressionNoIn in "for (ExpressionNoIn; FirstExpression; SecondExpression) Statement" IterationStatement diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A6.js b/js/src/tests/test262/language/statements/for/S12.6.3_A6.js index c44aaf156303..2bcfef1abec4 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A6.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating "for ( ; ; Expression) Statement", Statement is evaluated first and then Expression is evaluated es5id: 12.6.3_A6 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T1.js index aa940a03308e..274ec6d4cb32 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T1.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only three expressions and two semicolons in "for(with var)" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7.1_T1 @@ -11,7 +11,7 @@ description: > Checking if execution of "for(var index=0; index<10; index++; index--)" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T2.js index 3c7bf7be064b..fe7d4ce9e5fd 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A7.1_T2.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only three expressions and two semicolons in "for(with var)" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7.1_T2 @@ -11,7 +11,7 @@ description: > Checking if execution of "for(var index=0; index<10; index+=4; index++; index--)" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A7_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A7_T1.js index a9b5238797ce..ca5c99ce1cf6 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A7_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A7_T1.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only three expressions and two semicolons in "for" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7_T1 @@ -11,7 +11,7 @@ description: > Checking if execution of "for(index=0; index<10; index++; index--)" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A7_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A7_T2.js index c5d169686859..af7ecefda2a8 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A7_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A7_T2.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Only three expressions and two semicolons in "for" braces are allowed. Appearing of for (ExpressionNoIn_opt ; Expression_opt ; Expression_opt; Expression_opt; Expression_opt;) statement leads to SyntaxError es5id: 12.6.3_A7_T2 @@ -11,7 +11,7 @@ description: > Checking if execution of "for(index=0; index<10; index+=4; index++; index--)" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T1.js index 9e5d87135707..5232a52fec1c 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T1.js @@ -9,7 +9,7 @@ description: > Checking if execution of "for(var index=0; index<100; {index++; index*2;}) { arr.add(""+index);}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T2.js index 958da8e8e03c..60c46cbe206c 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T2.js @@ -9,7 +9,7 @@ description: > Checking if execution of "for(var index=0; {index++;index<100;}; index*2;) { arr.add(""+index);}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T3.js index be655dc688e7..259cd76a0c22 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A8.1_T3.js @@ -9,7 +9,7 @@ description: > Checking if execution of "for({var index=0; index+=1;} index++<=10; index*2;) { arr.add(""+index);}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A8_T1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A8_T1.js index 35c8548435c1..23b6c6cc5f0e 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A8_T1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A8_T1.js @@ -9,7 +9,7 @@ description: > Checking if execution of "for(index=0; index<100; {index++; index*2;}) { arr.add(""+index);}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A8_T2.js b/js/src/tests/test262/language/statements/for/S12.6.3_A8_T2.js index 5ed2544f9be1..1534caf98a92 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A8_T2.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A8_T2.js @@ -9,7 +9,7 @@ description: > Checking if execution of "for(index=0; {index++;index<100;}; index*2;) { arr.add(""+index);}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A8_T3.js b/js/src/tests/test262/language/statements/for/S12.6.3_A8_T3.js index 831dd445a918..bcf074e179f0 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A8_T3.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A8_T3.js @@ -9,7 +9,7 @@ description: > Checking if execution of "for({index=0; index+=1;} index++<=10; index*2;) { arr.add(""+index);}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A9.1.js b/js/src/tests/test262/language/statements/for/S12.6.3_A9.1.js index 7c0a9e4d689d..2adaba370312 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A9.1.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A9.1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of evaluating "for( ExpNoIn;Exp;Exp)" loop is returning (normal, evalValue, empty) es5id: 12.6.3_A9.1 diff --git a/js/src/tests/test262/language/statements/for/S12.6.3_A9.js b/js/src/tests/test262/language/statements/for/S12.6.3_A9.js index b9e38723f607..602c6eef3cd5 100644 --- a/js/src/tests/test262/language/statements/for/S12.6.3_A9.js +++ b/js/src/tests/test262/language/statements/for/S12.6.3_A9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The result of evaluating "for(var ExpNoIn;Exp;Exp)" loop is returning (normal, evalValue, empty) es5id: 12.6.3_A9 diff --git a/js/src/tests/test262/language/statements/for/cptn-decl-expr-iter.js b/js/src/tests/test262/language/statements/for/cptn-decl-expr-iter.js index 0320e3d4e209..978590168713 100644 --- a/js/src/tests/test262/language/statements/for/cptn-decl-expr-iter.js +++ b/js/src/tests/test262/language/statements/for/cptn-decl-expr-iter.js @@ -4,7 +4,7 @@ es6id: 13.7.4.7 description: > Completion value when head has a declaration and a "test" expression and iteration occurs -info: > +info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/cptn-decl-expr-no-iter.js b/js/src/tests/test262/language/statements/for/cptn-decl-expr-no-iter.js index 4de7b2b66543..e0d0603f942a 100644 --- a/js/src/tests/test262/language/statements/for/cptn-decl-expr-no-iter.js +++ b/js/src/tests/test262/language/statements/for/cptn-decl-expr-no-iter.js @@ -4,7 +4,7 @@ es6id: 13.7.4.7 description: > Completion value when head has a declaration and a "test" expression and no iteration occurs -info: > +info: | IterationStatement : for ( var VariableDeclarationList ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/cptn-expr-expr-iter.js b/js/src/tests/test262/language/statements/for/cptn-expr-expr-iter.js index a232164df4da..471aa47a9e1a 100644 --- a/js/src/tests/test262/language/statements/for/cptn-expr-expr-iter.js +++ b/js/src/tests/test262/language/statements/for/cptn-expr-expr-iter.js @@ -5,7 +5,7 @@ es6id: 13.7.4.7 description: > Completion value when head has no declaration and a "test" expression and iteration occurs -info: > +info: | IterationStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/cptn-expr-expr-no-iter.js b/js/src/tests/test262/language/statements/for/cptn-expr-expr-no-iter.js index d0f648713373..9397a63d5f12 100644 --- a/js/src/tests/test262/language/statements/for/cptn-expr-expr-no-iter.js +++ b/js/src/tests/test262/language/statements/for/cptn-expr-expr-no-iter.js @@ -4,7 +4,7 @@ es6id: 13.7.4.7 description: > Completion value when head has no declaration and a "test" expression and no iteration occurs -info: > +info: | IterationStatement : for ( Expressionopt ; Expressionopt ; Expressionopt ) Statement diff --git a/js/src/tests/test262/language/statements/for/decl-async-fun.js b/js/src/tests/test262/language/statements/for/decl-async-fun.js index ce46a0ee0ac3..662b3b8a038e 100644 --- a/js/src/tests/test262/language/statements/for/decl-async-fun.js +++ b/js/src/tests/test262/language/statements/for/decl-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/for/decl-async-gen.js b/js/src/tests/test262/language/statements/for/decl-async-gen.js index fa4761af0ad4..cfeb5c8d2915 100644 --- a/js/src/tests/test262/language/statements/for/decl-async-gen.js +++ b/js/src/tests/test262/language/statements/for/decl-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/for/decl-cls.js b/js/src/tests/test262/language/statements/for/decl-cls.js index 9cdf12b9cd35..e564ced9c5f8 100644 --- a/js/src/tests/test262/language/statements/for/decl-cls.js +++ b/js/src/tests/test262/language/statements/for/decl-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/decl-const.js b/js/src/tests/test262/language/statements/for/decl-const.js index 47545df48edb..8f68d9fe07a2 100644 --- a/js/src/tests/test262/language/statements/for/decl-const.js +++ b/js/src/tests/test262/language/statements/for/decl-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/decl-fun.js b/js/src/tests/test262/language/statements/for/decl-fun.js index ee8637e03389..86df553f30a6 100644 --- a/js/src/tests/test262/language/statements/for/decl-fun.js +++ b/js/src/tests/test262/language/statements/for/decl-fun.js @@ -6,7 +6,7 @@ description: Function declaration not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/decl-gen.js b/js/src/tests/test262/language/statements/for/decl-gen.js index 0cc35d191ddc..8c8983de9a3a 100644 --- a/js/src/tests/test262/language/statements/for/decl-gen.js +++ b/js/src/tests/test262/language/statements/for/decl-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/for/decl-let.js b/js/src/tests/test262/language/statements/for/decl-let.js index c57a597ea58c..3aa576e6e40d 100644 --- a/js/src/tests/test262/language/statements/for/decl-let.js +++ b/js/src/tests/test262/language/statements/for/decl-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-for-statement es6id: 13.7.4 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-ary.js index 88b2030b0da2..f374fe4d1b8a 100644 --- a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-id.js index 7b09541bbb87..7bf052c7bedb 100644 --- a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-obj.js index a95c27897939..c2a71eb457ae 100644 --- a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-ary.js index 56de9affbdd3..4b7db68414b3 100644 --- a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-id.js index 8e6fb2f33ae1..2a951a86c16f 100644 --- a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-obj.js index 72d385d6784f..1f27143a39ae 100644 --- a/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for/dstr-const-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-ary.js index e1d397ab0072..f4692e1097a4 100644 --- a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-id.js index 7a4fb45cca23..f7e8af9657a0 100644 --- a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-obj.js index 38217e4dd380..b46a52b28961 100644 --- a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-ary.js index 3daebcfd6f76..ada76c5d8477 100644 --- a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-id.js index a7727df66f49..d0a35fe3ca01 100644 --- a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-obj.js index 250a80b7909d..003158a2e48f 100644 --- a/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for/dstr-let-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-ary.js index 76720a74ad1e..ad0f858d13fb 100644 --- a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-id.js index 25472655aecf..9cfbe47ea9b0 100644 --- a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-obj.js index bee6eef87c92..4e39e56f94bc 100644 --- a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-ary.js index 620e57faf981..5fdb04fe5359 100644 --- a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-id.js index a2c8d96e6633..c2ca15000d4d 100644 --- a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-obj.js index 9883428beb2f..6dfb75819071 100644 --- a/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/for/dstr-var-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.7.4.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | IterationStatement : diff --git a/js/src/tests/test262/language/statements/for/head-const-bound-names-in-stmt.js b/js/src/tests/test262/language/statements/for/head-const-bound-names-in-stmt.js index a944c506e89d..11620f4b99ac 100644 --- a/js/src/tests/test262/language/statements/for/head-const-bound-names-in-stmt.js +++ b/js/src/tests/test262/language/statements/for/head-const-bound-names-in-stmt.js @@ -10,7 +10,7 @@ info: | It is a Syntax Error if any element of the BoundNames of LexicalDeclaration also occurs in the VarDeclaredNames of Statement. negative: - phase: early + phase: parse type: SyntaxError esid: sec-for-statement es6id: 13.7.4 diff --git a/js/src/tests/test262/language/statements/for/head-let-bound-names-in-stmt.js b/js/src/tests/test262/language/statements/for/head-let-bound-names-in-stmt.js index 71762014ba97..45f3da170082 100644 --- a/js/src/tests/test262/language/statements/for/head-let-bound-names-in-stmt.js +++ b/js/src/tests/test262/language/statements/for/head-let-bound-names-in-stmt.js @@ -10,7 +10,7 @@ info: | It is a Syntax Error if any element of the BoundNames of LexicalDeclaration also occurs in the VarDeclaredNames of Statement. negative: - phase: early + phase: parse type: SyntaxError esid: sec-for-statement es6id: 13.7.4 diff --git a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-const.js b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-const.js index eaaa083a3af5..65e594cfd918 100644 --- a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-const.js +++ b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-const.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-expr.js b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-expr.js index 90574c3c961f..834da7753ccf 100644 --- a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-expr.js +++ b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-expr.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-let.js b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-let.js index abe9fec5fb01..2c0b203add1c 100644 --- a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-let.js +++ b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-let.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-var.js b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-var.js index d180b323eb46..a051ce051dd9 100644 --- a/js/src/tests/test262/language/statements/for/labelled-fn-stmt-var.js +++ b/js/src/tests/test262/language/statements/for/labelled-fn-stmt-var.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/for/let-array-with-newline.js b/js/src/tests/test262/language/statements/for/let-array-with-newline.js index cd7ae03b4837..6599c77fd82d 100644 --- a/js/src/tests/test262/language/statements/for/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/for/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/for/tco-const-body-strict.js b/js/src/tests/test262/language/statements/for/tco-const-body-strict.js index 0997088775e6..4600b9829305 100644 --- a/js/src/tests/test262/language/statements/for/tco-const-body-strict.js +++ b/js/src/tests/test262/language/statements/for/tco-const-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/for/tco-let-body-strict.js b/js/src/tests/test262/language/statements/for/tco-let-body-strict.js index a9228229b4e7..5db4fa9c7ac0 100644 --- a/js/src/tests/test262/language/statements/for/tco-let-body-strict.js +++ b/js/src/tests/test262/language/statements/for/tco-let-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/for/tco-lhs-body-strict.js b/js/src/tests/test262/language/statements/for/tco-lhs-body-strict.js index 369ee97f5e4c..5254f7a3de08 100644 --- a/js/src/tests/test262/language/statements/for/tco-lhs-body-strict.js +++ b/js/src/tests/test262/language/statements/for/tco-lhs-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/for/tco-var-body-strict.js b/js/src/tests/test262/language/statements/for/tco-var-body-strict.js index 68abdf494ac7..8ef5ef467958 100644 --- a/js/src/tests/test262/language/statements/for/tco-var-body-strict.js +++ b/js/src/tests/test262/language/statements/for/tco-var-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/function/13.0-10-s.js b/js/src/tests/test262/language/statements/function/13.0-10-s.js index a301d7597ce0..90bfaea90ee7 100644 --- a/js/src/tests/test262/language/statements/function/13.0-10-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-10-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-10-s diff --git a/js/src/tests/test262/language/statements/function/13.0-11-s.js b/js/src/tests/test262/language/statements/function/13.0-11-s.js index 2dcbf384dbcd..b7becf38204e 100644 --- a/js/src/tests/test262/language/statements/function/13.0-11-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-11-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-11-s diff --git a/js/src/tests/test262/language/statements/function/13.0-12-s-strict.js b/js/src/tests/test262/language/statements/function/13.0-12-s-strict.js index 9dfc2ccf8466..689b521ee865 100644 --- a/js/src/tests/test262/language/statements/function/13.0-12-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.0-12-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-12-s diff --git a/js/src/tests/test262/language/statements/function/13.0-13-s.js b/js/src/tests/test262/language/statements/function/13.0-13-s.js index e7ea1f4da881..373cc10b3c5b 100644 --- a/js/src/tests/test262/language/statements/function/13.0-13-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-13-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-13-s diff --git a/js/src/tests/test262/language/statements/function/13.0-14-s.js b/js/src/tests/test262/language/statements/function/13.0-14-s.js index 1f7bc4e971e3..f9451634a7fa 100644 --- a/js/src/tests/test262/language/statements/function/13.0-14-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-14-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-14-s diff --git a/js/src/tests/test262/language/statements/function/13.0-15-s.js b/js/src/tests/test262/language/statements/function/13.0-15-s.js index fa2d72f966b3..d05e197a7136 100644 --- a/js/src/tests/test262/language/statements/function/13.0-15-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-15-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-15-s diff --git a/js/src/tests/test262/language/statements/function/13.0-16-s.js b/js/src/tests/test262/language/statements/function/13.0-16-s.js index 969895616467..3d6c287da4e4 100644 --- a/js/src/tests/test262/language/statements/function/13.0-16-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-16-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-16-s diff --git a/js/src/tests/test262/language/statements/function/13.0-17-s.js b/js/src/tests/test262/language/statements/function/13.0-17-s.js index 19623e7f05fd..8049390a5a5a 100644 --- a/js/src/tests/test262/language/statements/function/13.0-17-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-17-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-17-s diff --git a/js/src/tests/test262/language/statements/function/13.0-7-s.js b/js/src/tests/test262/language/statements/function/13.0-7-s.js index e0f803c7d1e9..88175ea2a123 100644 --- a/js/src/tests/test262/language/statements/function/13.0-7-s.js +++ b/js/src/tests/test262/language/statements/function/13.0-7-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-7-s diff --git a/js/src/tests/test262/language/statements/function/13.0-8-s-strict.js b/js/src/tests/test262/language/statements/function/13.0-8-s-strict.js index 5347663cf7e6..1fad80b14d58 100644 --- a/js/src/tests/test262/language/statements/function/13.0-8-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.0-8-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-8-s diff --git a/js/src/tests/test262/language/statements/function/13.0-9-s-strict.js b/js/src/tests/test262/language/statements/function/13.0-9-s-strict.js index 6349f89bcaae..c66bff568c5b 100644 --- a/js/src/tests/test262/language/statements/function/13.0-9-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.0-9-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13; The production FunctionBody : SourceElementsopt is evaluated as follows: es5id: 13.0-9-s diff --git a/js/src/tests/test262/language/statements/function/13.0_4-5gs-strict.js b/js/src/tests/test262/language/statements/function/13.0_4-5gs-strict.js index 36c3075c1131..71364f9b2341 100644 --- a/js/src/tests/test262/language/statements/function/13.0_4-5gs-strict.js +++ b/js/src/tests/test262/language/statements/function/13.0_4-5gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/function/13.1-1-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-1-s-strict.js index 31012b96977f..d1fb856d20b7 100644 --- a/js/src/tests/test262/language/statements/function/13.1-1-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-1-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-10-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-10-s-strict.js index 5415987d47da..03abff934d45 100644 --- a/js/src/tests/test262/language/statements/function/13.1-10-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-10-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-13gs-strict.js b/js/src/tests/test262/language/statements/function/13.1-13gs-strict.js index b49213144dff..6f526673e63a 100644 --- a/js/src/tests/test262/language/statements/function/13.1-13gs-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-13gs-strict.js @@ -9,7 +9,7 @@ description: > StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/function/13.1-15-s.js b/js/src/tests/test262/language/statements/function/13.1-15-s.js index 4670f165dc50..5d956fdc2c63 100644 --- a/js/src/tests/test262/language/statements/function/13.1-15-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-15-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-16-s.js b/js/src/tests/test262/language/statements/function/13.1-16-s.js index 96e0170b834b..f089f8eb51f3 100644 --- a/js/src/tests/test262/language/statements/function/13.1-16-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-16-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-17-s.js b/js/src/tests/test262/language/statements/function/13.1-17-s.js index e71138e67833..2bdfac4ae1f0 100644 --- a/js/src/tests/test262/language/statements/function/13.1-17-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-17-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-18-s.js b/js/src/tests/test262/language/statements/function/13.1-18-s.js index b38eca6812b7..998038b4e840 100644 --- a/js/src/tests/test262/language/statements/function/13.1-18-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-18-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-19-s.js b/js/src/tests/test262/language/statements/function/13.1-19-s.js index 2334c736c0ca..bdac2fef4df6 100644 --- a/js/src/tests/test262/language/statements/function/13.1-19-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-19-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-1gs-strict.js b/js/src/tests/test262/language/statements/function/13.1-1gs-strict.js index 343f2be18c0f..2eec1d27bbbb 100644 --- a/js/src/tests/test262/language/statements/function/13.1-1gs-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-1gs-strict.js @@ -10,7 +10,7 @@ description: > appears within a FormalParameterList of a strict mode FunctionDeclaration negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/function/13.1-2-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-2-s-strict.js index c381a7ca4d1d..d7869bec7fb9 100644 --- a/js/src/tests/test262/language/statements/function/13.1-2-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-2-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-20-s.js b/js/src/tests/test262/language/statements/function/13.1-20-s.js index ded5490c4fab..8896ac8a2357 100644 --- a/js/src/tests/test262/language/statements/function/13.1-20-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-20-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-21-s.js b/js/src/tests/test262/language/statements/function/13.1-21-s.js index 651a3960c7d2..2c28c9b494f5 100644 --- a/js/src/tests/test262/language/statements/function/13.1-21-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-21-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-22-s.js b/js/src/tests/test262/language/statements/function/13.1-22-s.js index 267be4303bbb..33798b6bac2b 100644 --- a/js/src/tests/test262/language/statements/function/13.1-22-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-22-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-23-s.js b/js/src/tests/test262/language/statements/function/13.1-23-s.js index 9ecde949aa54..9cb04206cccc 100644 --- a/js/src/tests/test262/language/statements/function/13.1-23-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-23-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-24-s.js b/js/src/tests/test262/language/statements/function/13.1-24-s.js index 4d76b2767461..f810a9fca74a 100644 --- a/js/src/tests/test262/language/statements/function/13.1-24-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-24-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-25-s.js b/js/src/tests/test262/language/statements/function/13.1-25-s.js index 30f805179f43..a3cb43648226 100644 --- a/js/src/tests/test262/language/statements/function/13.1-25-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-25-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-26-s.js b/js/src/tests/test262/language/statements/function/13.1-26-s.js index fb4df826320d..81559b2150aa 100644 --- a/js/src/tests/test262/language/statements/function/13.1-26-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-26-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-27-s.js b/js/src/tests/test262/language/statements/function/13.1-27-s.js index 1cc7cc049c2c..9662c3f55025 100644 --- a/js/src/tests/test262/language/statements/function/13.1-27-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-27-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-28-s.js b/js/src/tests/test262/language/statements/function/13.1-28-s.js index 43b5aa49682d..385306ac4b0c 100644 --- a/js/src/tests/test262/language/statements/function/13.1-28-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-28-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-29-s.js b/js/src/tests/test262/language/statements/function/13.1-29-s.js index 8a688dc3a22c..809c463902a0 100644 --- a/js/src/tests/test262/language/statements/function/13.1-29-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-29-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-3-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-3-s-strict.js index 724da0530238..6df3e59375d8 100644 --- a/js/src/tests/test262/language/statements/function/13.1-3-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-3-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-30-s.js b/js/src/tests/test262/language/statements/function/13.1-30-s.js index 111c19f9f9ae..5d0ebf4ca32d 100644 --- a/js/src/tests/test262/language/statements/function/13.1-30-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-30-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-31-s.js b/js/src/tests/test262/language/statements/function/13.1-31-s.js index c7688f45b91e..8fdecb495ade 100644 --- a/js/src/tests/test262/language/statements/function/13.1-31-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-31-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-32-s.js b/js/src/tests/test262/language/statements/function/13.1-32-s.js index 4e641c6333e5..db290b1e569c 100644 --- a/js/src/tests/test262/language/statements/function/13.1-32-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-32-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-33-s.js b/js/src/tests/test262/language/statements/function/13.1-33-s.js index 641bd810bceb..a99e51d68c04 100644 --- a/js/src/tests/test262/language/statements/function/13.1-33-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-33-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-34-s.js b/js/src/tests/test262/language/statements/function/13.1-34-s.js index 8179a5c0c99f..db8af4a133e7 100644 --- a/js/src/tests/test262/language/statements/function/13.1-34-s.js +++ b/js/src/tests/test262/language/statements/function/13.1-34-s.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-4-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-4-s-strict.js index 5ad849d0eb51..df8c40f7bff5 100644 --- a/js/src/tests/test262/language/statements/function/13.1-4-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-4-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if the Identifier "eval" or the Identifier "arguments" occurs within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-4gs-strict.js b/js/src/tests/test262/language/statements/function/13.1-4gs-strict.js index e0f973cf6a63..8cda1ba8d7ea 100644 --- a/js/src/tests/test262/language/statements/function/13.1-4gs-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-4gs-strict.js @@ -10,7 +10,7 @@ description: > appears within a FormalParameterList of a strict mode FunctionExpression negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/function/13.1-5-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-5-s-strict.js index 33c18dfc2e1b..7234a1621ca7 100644 --- a/js/src/tests/test262/language/statements/function/13.1-5-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-5-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-5gs-strict.js b/js/src/tests/test262/language/statements/function/13.1-5gs-strict.js index f4e3f14a2bed..fcc60d92db22 100644 --- a/js/src/tests/test262/language/statements/function/13.1-5gs-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-5gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is thrown if a FunctionDeclaration has two identical parameters negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/function/13.1-6-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-6-s-strict.js index d5fc3d9e331e..d4fe87fd2ce9 100644 --- a/js/src/tests/test262/language/statements/function/13.1-6-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-6-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-7-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-7-s-strict.js index 0ff85104ad8a..95476e3ce531 100644 --- a/js/src/tests/test262/language/statements/function/13.1-7-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-7-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-8-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-8-s-strict.js index ba492341d73e..2c1e7a6377fb 100644 --- a/js/src/tests/test262/language/statements/function/13.1-8-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-8-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/13.1-8gs-strict.js b/js/src/tests/test262/language/statements/function/13.1-8gs-strict.js index 4718df225192..620cc7e66c2d 100644 --- a/js/src/tests/test262/language/statements/function/13.1-8gs-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-8gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is thrown if a FunctionExpression has two identical parameters negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/function/13.1-9-s-strict.js b/js/src/tests/test262/language/statements/function/13.1-9-s-strict.js index 51e7be444ebd..913c9e1b1217 100644 --- a/js/src/tests/test262/language/statements/function/13.1-9-s-strict.js +++ b/js/src/tests/test262/language/statements/function/13.1-9-s-strict.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Refer 13.1; It is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode FunctionDeclaration or FunctionExpression. diff --git a/js/src/tests/test262/language/statements/function/S10.1.1_A1_T1.js b/js/src/tests/test262/language/statements/function/S10.1.1_A1_T1.js index 9a2bc8d7f453..7a42598bb880 100644 --- a/js/src/tests/test262/language/statements/function/S10.1.1_A1_T1.js +++ b/js/src/tests/test262/language/statements/function/S10.1.1_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Program functions are defined in source text by a FunctionDeclaration or created dynamically either by using a FunctionExpression or by using the built-in Function object as a constructor es5id: 10.1.1_A1_T1 diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T1.js b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T1.js index a9a7e1945ea6..b2eb765370db 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T2.js b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T2.js index 9de12551c9c6..fe30a6f8d08f 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T3.js b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T3.js index 429a2b2d6633..57b908728fc8 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T3.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T4.js b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T4.js index a71ef5c4daed..9f3225ba3972 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A7_T4.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A7_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is returned then Result.value is returned too diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A8_T1.js b/js/src/tests/test262/language/statements/function/S13.2.1_A8_T1.js index 400cbbd77b24..bee335e39f7b 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A8_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A8_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is thrown then Result.value is thrown too diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A8_T2.js b/js/src/tests/test262/language/statements/function/S13.2.1_A8_T2.js index b7458b7ef7a5..c15b32a5e361 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A8_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A8_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object F is called, the following steps are taken: 2. Evaluate F's FunctionBody; if Result.type is thrown then Result.value is thrown too diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T1.js b/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T1.js index 412520b27925..95a47757c188 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "normal", then "undefined" is returned es5id: 13.2.1_A9.1_T1 diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T2.js b/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T2.js index 59b4156a339e..78ab6bf6921f 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A9.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "normal", then "undefined" is returned es5id: 13.2.1_A9.1_T2 diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A9_T1.js b/js/src/tests/test262/language/statements/function/S13.2.1_A9_T1.js index e26e1ac88498..4d00c90129ec 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A9_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A9_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "return" its value is not defined, then "undefined" is returned es5id: 13.2.1_A9_T1 diff --git a/js/src/tests/test262/language/statements/function/S13.2.1_A9_T2.js b/js/src/tests/test262/language/statements/function/S13.2.1_A9_T2.js index 40250972da51..3fef202b2d60 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.1_A9_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.1_A9_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Call]] property for a Function object is called, the body is evaluated and if evaluation result has type "return" its value is not defined, then "undefined" is returned es5id: 13.2.1_A9_T2 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A10.js b/js/src/tests/test262/language/statements/function/S13.2.2_A10.js index 76bc6c2d5420..d59304182f9a 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A10.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Calling a function as a constructor is possible as long as this.any_Function is declared es5id: 13.2.2_A10 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A11.js b/js/src/tests/test262/language/statements/function/S13.2.2_A11.js index f337b850593d..ea5aac813d43 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A11.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A11.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Calling a function as a constructor is possible as long as this.any_Function is declared and called es5id: 13.2.2_A11 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A12.js b/js/src/tests/test262/language/statements/function/S13.2.2_A12.js index 94b3f107c875..4c102fc2f83e 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A12.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A12.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Calling a function as a constructor is possible as long as this.any_Function is declared and called es5id: 13.2.2_A12 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A13.js b/js/src/tests/test262/language/statements/function/S13.2.2_A13.js index 7f4db8542cc6..aa65576f7239 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A13.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A13.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called es5id: 13.2.2_A13 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A14.js b/js/src/tests/test262/language/statements/function/S13.2.2_A14.js index 8cd13e46a334..540607298073 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A14.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A14.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called es5id: 13.2.2_A14 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T1.js index a5ff49ce24d1..979f116d6c6f 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T1 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T2.js index 9f7fc5a2b914..160384664c02 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T2 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T3.js b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T3.js index edf45d20c9d8..3b516c55ec5c 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T3.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T3 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T4.js b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T4.js index e3623e33241c..780bd1b1bfcd 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A15_T4.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A15_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called, and the object created in the function is returned, the object (declared with "this" within a function) will be strong and healthy es5id: 13.2.2_A15_T4 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A18_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A18_T1.js index e9d2f87eeb44..7365ea988890 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A18_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A18_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using arguments object within a "with" Expression that is nested in a function is admitted es5id: 13.2.2_A18_T1 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A18_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A18_T2.js index 5bb35751cd94..2c94ed996263 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A18_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A18_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using arguments object within a "with" Expression that is nested in a function is admitted es5id: 13.2.2_A18_T2 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A1_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A1_T1.js index fa47b76f1f17..235adbd5c03d 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A1_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property es5id: 13.2.2_A1_T1 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A1_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A1_T2.js index a1a3c1d457b6..0ead3256f666 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A1_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property es5id: 13.2.2_A1_T2 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A2.js index d1124266aff1..16239c6a320d 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property, but [[call]] property must fail with TypeError error es5id: 13.2.2_A2 diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A3_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A3_T1.js index d072b9a55ec4..912985a157ca 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A3_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. It gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A3_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A3_T2.js index cf4d2f7601f0..7bc98b5486f8 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A3_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. It gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A4_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A4_T1.js index 9b3ff9c78a79..5c1d076feabe 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A4_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A4_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A4_T2.js index bd33557383e1..661c70aced6e 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A4_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A5_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A5_T1.js index a7e87a391033..b5e22b5fe46a 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A5_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A5_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A5_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A5_T2.js index b80b8d7491c4..82d65420de49 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A5_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A6_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A6_T1.js index a29c91af7987..5684e7ef9aaa 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A6_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A6_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A6_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A6_T2.js index 825a9a483642..c83ffc7011a5 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A6_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A6_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A7_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A7_T1.js index 887a6d235fdf..947195ab5df3 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A7_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A7_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A7_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A7_T2.js index a979505aae03..a55e89fdd934 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A7_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A7_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A8_T1.js b/js/src/tests/test262/language/statements/function/S13.2.2_A8_T1.js index 22adbcf2e7b1..b72bf3d43d88 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A8_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A8_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A8_T2.js b/js/src/tests/test262/language/statements/function/S13.2.2_A8_T2.js index a68fe63d27ed..71e7acd9bcaa 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A8_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A8_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A8_T3.js b/js/src/tests/test262/language/statements/function/S13.2.2_A8_T3.js index 0676251f64b0..4dc307409c48 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A8_T3.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A8_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the [[Construct]] property for a Function object F is called: A new native ECMAScript object is created. Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument diff --git a/js/src/tests/test262/language/statements/function/S13.2.2_A9.js b/js/src/tests/test262/language/statements/function/S13.2.2_A9.js index b84bef26a689..2eb3d45f964c 100644 --- a/js/src/tests/test262/language/statements/function/S13.2.2_A9.js +++ b/js/src/tests/test262/language/statements/function/S13.2.2_A9.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Calling a function as a constructor is inadmissible as long as this.any_Function is called before it is declared es5id: 13.2.2_A9 diff --git a/js/src/tests/test262/language/statements/function/S13.2_A3.js b/js/src/tests/test262/language/statements/function/S13.2_A3.js index ba0484a48bdf..fdfceb2ee61d 100644 --- a/js/src/tests/test262/language/statements/function/S13.2_A3.js +++ b/js/src/tests/test262/language/statements/function/S13.2_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When Function object(F) is constructed the length property of F is set to the number of formal properties specified in FormalParameterList es5id: 13.2_A3 diff --git a/js/src/tests/test262/language/statements/function/S13.2_A4_T1.js b/js/src/tests/test262/language/statements/function/S13.2_A4_T1.js index 831d639f0c35..3f3e5bcc9736 100644 --- a/js/src/tests/test262/language/statements/function/S13.2_A4_T1.js +++ b/js/src/tests/test262/language/statements/function/S13.2_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When Function object(F) is constructed the following steps from 9 to 11 take place 9.Create a new object as would be constructed by the expression new Object(). 10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }. diff --git a/js/src/tests/test262/language/statements/function/S13.2_A4_T2.js b/js/src/tests/test262/language/statements/function/S13.2_A4_T2.js index c7aa38a4cf7e..26646563c88a 100644 --- a/js/src/tests/test262/language/statements/function/S13.2_A4_T2.js +++ b/js/src/tests/test262/language/statements/function/S13.2_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When Function object(F) is constructed the following steps from 9 to 11 take place 9.Create a new object as would be constructed by the expression new Object(). 10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }. diff --git a/js/src/tests/test262/language/statements/function/S13.2_A5.js b/js/src/tests/test262/language/statements/function/S13.2_A5.js index fd299dd54225..a2579a079011 100644 --- a/js/src/tests/test262/language/statements/function/S13.2_A5.js +++ b/js/src/tests/test262/language/statements/function/S13.2_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When Function object(F) is constructed the [[Prototype]] property of F is set to the original Function prototype object as specified in 15.3.3.1 es5id: 13.2_A5 diff --git a/js/src/tests/test262/language/statements/function/S13_A1.js b/js/src/tests/test262/language/statements/function/S13_A1.js index bf9b4155137d..a7c43d25219e 100644 --- a/js/src/tests/test262/language/statements/function/S13_A1.js +++ b/js/src/tests/test262/language/statements/function/S13_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "x=function y(){}" statement does not store a reference to the new function in the varaible y(Identifier) es5id: 13_A1 diff --git a/js/src/tests/test262/language/statements/function/S13_A11_T1.js b/js/src/tests/test262/language/statements/function/S13_A11_T1.js index 86d497771391..3abbea9e4b04 100644 --- a/js/src/tests/test262/language/statements/function/S13_A11_T1.js +++ b/js/src/tests/test262/language/statements/function/S13_A11_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T1 diff --git a/js/src/tests/test262/language/statements/function/S13_A11_T2.js b/js/src/tests/test262/language/statements/function/S13_A11_T2.js index 86d5b8acd841..72d8e5990f87 100644 --- a/js/src/tests/test262/language/statements/function/S13_A11_T2.js +++ b/js/src/tests/test262/language/statements/function/S13_A11_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T2 diff --git a/js/src/tests/test262/language/statements/function/S13_A11_T3.js b/js/src/tests/test262/language/statements/function/S13_A11_T3.js index 50a5c4c625f7..4bed650c45ef 100644 --- a/js/src/tests/test262/language/statements/function/S13_A11_T3.js +++ b/js/src/tests/test262/language/statements/function/S13_A11_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T3 diff --git a/js/src/tests/test262/language/statements/function/S13_A11_T4.js b/js/src/tests/test262/language/statements/function/S13_A11_T4.js index d3e19a111521..d428e3bdefa2 100644 --- a/js/src/tests/test262/language/statements/function/S13_A11_T4.js +++ b/js/src/tests/test262/language/statements/function/S13_A11_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Since arguments property has attribute { DontDelete }, only its elements can be deleted es5id: 13_A11_T4 diff --git a/js/src/tests/test262/language/statements/function/S13_A17_T1.js b/js/src/tests/test262/language/statements/function/S13_A17_T1.js index 4449fa119924..92aab90d929e 100644 --- a/js/src/tests/test262/language/statements/function/S13_A17_T1.js +++ b/js/src/tests/test262/language/statements/function/S13_A17_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Function call cannot appear in the program before the FunctionExpression appears es5id: 13_A17_T1 diff --git a/js/src/tests/test262/language/statements/function/S13_A17_T2.js b/js/src/tests/test262/language/statements/function/S13_A17_T2.js index 52c1cae3ab1e..84f241b67ffe 100644 --- a/js/src/tests/test262/language/statements/function/S13_A17_T2.js +++ b/js/src/tests/test262/language/statements/function/S13_A17_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Function call cannot appear in the program before the FunctionExpression appears es5id: 13_A17_T2 diff --git a/js/src/tests/test262/language/statements/function/S13_A3_T1.js b/js/src/tests/test262/language/statements/function/S13_A3_T1.js index 96c6d32e10e2..b6c277106658 100644 --- a/js/src/tests/test262/language/statements/function/S13_A3_T1.js +++ b/js/src/tests/test262/language/statements/function/S13_A3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively diff --git a/js/src/tests/test262/language/statements/function/S13_A3_T2.js b/js/src/tests/test262/language/statements/function/S13_A3_T2.js index 1f79759f59f0..dc3778f2c6d0 100644 --- a/js/src/tests/test262/language/statements/function/S13_A3_T2.js +++ b/js/src/tests/test262/language/statements/function/S13_A3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively diff --git a/js/src/tests/test262/language/statements/function/S13_A3_T3.js b/js/src/tests/test262/language/statements/function/S13_A3_T3.js index fafc6ea8d10a..249f4d056fd3 100644 --- a/js/src/tests/test262/language/statements/function/S13_A3_T3.js +++ b/js/src/tests/test262/language/statements/function/S13_A3_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively diff --git a/js/src/tests/test262/language/statements/function/S13_A4_T1.js b/js/src/tests/test262/language/statements/function/S13_A4_T1.js index 765b7746cc9e..51a238315d4b 100644 --- a/js/src/tests/test262/language/statements/function/S13_A4_T1.js +++ b/js/src/tests/test262/language/statements/function/S13_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations diff --git a/js/src/tests/test262/language/statements/function/S13_A4_T2.js b/js/src/tests/test262/language/statements/function/S13_A4_T2.js index 1e4d19ee81fc..6bc27139bf37 100644 --- a/js/src/tests/test262/language/statements/function/S13_A4_T2.js +++ b/js/src/tests/test262/language/statements/function/S13_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations diff --git a/js/src/tests/test262/language/statements/function/S13_A4_T3.js b/js/src/tests/test262/language/statements/function/S13_A4_T3.js index 36925022e91b..0881baad58f4 100644 --- a/js/src/tests/test262/language/statements/function/S13_A4_T3.js +++ b/js/src/tests/test262/language/statements/function/S13_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations diff --git a/js/src/tests/test262/language/statements/function/S13_A4_T4.js b/js/src/tests/test262/language/statements/function/S13_A4_T4.js index 3af62de86235..8adba9eb12b7 100644 --- a/js/src/tests/test262/language/statements/function/S13_A4_T4.js +++ b/js/src/tests/test262/language/statements/function/S13_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production FunctionDeclaration: "function Identifier ( FormalParameterList_opt ) { FunctionBody }" is processed by function declarations diff --git a/js/src/tests/test262/language/statements/function/S13_A6_T1.js b/js/src/tests/test262/language/statements/function/S13_A6_T1.js index 70183c8c264f..5b308876a390 100644 --- a/js/src/tests/test262/language/statements/function/S13_A6_T1.js +++ b/js/src/tests/test262/language/statements/function/S13_A6_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier es5id: 13_A6_T1 diff --git a/js/src/tests/test262/language/statements/function/S13_A6_T2.js b/js/src/tests/test262/language/statements/function/S13_A6_T2.js index 7b19fcdde6e2..c870131a6146 100644 --- a/js/src/tests/test262/language/statements/function/S13_A6_T2.js +++ b/js/src/tests/test262/language/statements/function/S13_A6_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier es5id: 13_A6_T2 diff --git a/js/src/tests/test262/language/statements/function/S13_A7_T3.js b/js/src/tests/test262/language/statements/function/S13_A7_T3.js index 79e6018ee3fb..2ee2be49f73b 100644 --- a/js/src/tests/test262/language/statements/function/S13_A7_T3.js +++ b/js/src/tests/test262/language/statements/function/S13_A7_T3.js @@ -7,7 +7,7 @@ info: The FunctionBody must be SourceElements es5id: 13_A7_T3 description: Checking if execution of "function __func(){\A\B\C}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/function/S14_A3.js b/js/src/tests/test262/language/statements/function/S14_A3.js index a473018160f1..037f8b2175e5 100644 --- a/js/src/tests/test262/language/statements/function/S14_A3.js +++ b/js/src/tests/test262/language/statements/function/S14_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Global FunctionDeclaration cannot be defined within the body of another FunctionDeclaration es5id: 14_A3 diff --git a/js/src/tests/test262/language/statements/function/S14_A5_T1.js b/js/src/tests/test262/language/statements/function/S14_A5_T1.js index b9f8d66ae915..ed3fbfc63f3f 100644 --- a/js/src/tests/test262/language/statements/function/S14_A5_T1.js +++ b/js/src/tests/test262/language/statements/function/S14_A5_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The Identifer within a FunctionDeclaration can be written in both letters and unicode es5id: 14_A5_T1 diff --git a/js/src/tests/test262/language/statements/function/S14_A5_T2.js b/js/src/tests/test262/language/statements/function/S14_A5_T2.js index b2d1514a5b4b..1bdc1ed4abd7 100644 --- a/js/src/tests/test262/language/statements/function/S14_A5_T2.js +++ b/js/src/tests/test262/language/statements/function/S14_A5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The Identifer within a FunctionDeclaration can be written in both letters and unicode es5id: 14_A5_T2 diff --git a/js/src/tests/test262/language/statements/function/cptn-decl.js b/js/src/tests/test262/language/statements/function/cptn-decl.js index b648e2a43735..7e0c9a90cdd2 100644 --- a/js/src/tests/test262/language/statements/function/cptn-decl.js +++ b/js/src/tests/test262/language/statements/function/cptn-decl.js @@ -3,7 +3,7 @@ /*--- esid: sec-function-definitions-runtime-semantics-evaluation description: Function declaration completion value is empty. -info: > +info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } 1. Return NormalCompletion(empty). diff --git a/js/src/tests/test262/language/statements/function/dflt-params-duplicates.js b/js/src/tests/test262/language/statements/function/dflt-params-duplicates.js index 356b42ebf508..31429be5e221 100644 --- a/js/src/tests/test262/language/statements/function/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/function/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dflt-params-rest.js b/js/src/tests/test262/language/statements/function/dflt-params-rest.js index a1cfba335bb8..55529ebcaf63 100644 --- a/js/src/tests/test262/language/statements/function/dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/function/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject features: [default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-ary.js index 9921b9ba9b93..ab622ea45bd3 100644 --- a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-id.js index 9a8e78613514..f0822ec7c8a2 100644 --- a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-obj.js index 13a57fe77d43..3d21c6f99ca0 100644 --- a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-ary.js index f5661f4cd2bc..d86affa43a66 100644 --- a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-id.js index a3d633f10b20..3b54b7ab921d 100644 --- a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-obj.js index e8c5bc0a93ea..55d051a3ed3e 100644 --- a/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/function/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-ary.js index 411639a5fd13..a47807d72e66 100644 --- a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-id.js index 4c3fa0a1df0b..bbb375258a4e 100644 --- a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-obj.js index 1341095cfe7b..0d8632302437 100644 --- a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js index aecdf3d32f8d..2589f0ad4494 100644 --- a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-id.js index 1b1e000fe45b..2167c77894a4 100644 --- a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js index a8e8c48e1614..2ff6d0d85d0d 100644 --- a/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/function/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.1.19 features: [destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/early-body-super-call.js b/js/src/tests/test262/language/statements/function/early-body-super-call.js index f63e65759bf1..4970e791ffe1 100644 --- a/js/src/tests/test262/language/statements/function/early-body-super-call.js +++ b/js/src/tests/test262/language/statements/function/early-body-super-call.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Body may not contain a "super" call -info: > +info: | It is a Syntax Error if FunctionBody Contains SuperCall is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/function/early-body-super-prop.js b/js/src/tests/test262/language/statements/function/early-body-super-prop.js index 0dd08714f584..0f2e1fe899e3 100644 --- a/js/src/tests/test262/language/statements/function/early-body-super-prop.js +++ b/js/src/tests/test262/language/statements/function/early-body-super-prop.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Body may not contain a "super" property reference -info: > +info: | It is a Syntax Error if FunctionBody Contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/function/early-params-super-call.js b/js/src/tests/test262/language/statements/function/early-params-super-call.js index f6a6f5d77b47..890a1144d2a1 100644 --- a/js/src/tests/test262/language/statements/function/early-params-super-call.js +++ b/js/src/tests/test262/language/statements/function/early-params-super-call.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Parameters may not contain a "super" call -info: > +info: | It is a Syntax Error if FormalParameters Contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/function/early-params-super-prop.js b/js/src/tests/test262/language/statements/function/early-params-super-prop.js index a0ca159d9473..60dd72df2904 100644 --- a/js/src/tests/test262/language/statements/function/early-params-super-prop.js +++ b/js/src/tests/test262/language/statements/function/early-params-super-prop.js @@ -5,10 +5,10 @@ esid: sec-function-definitions-static-semantics-early-errors es6id: 14.1.2 description: Parameters may not contain a "super" property reference -info: > +info: | It is a Syntax Error if FunctionBody Contains SuperProperty is true. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/function/name.js b/js/src/tests/test262/language/statements/function/name.js index 9ff783caaba3..93338dfdd968 100644 --- a/js/src/tests/test262/language/statements/function/name.js +++ b/js/src/tests/test262/language/statements/function/name.js @@ -4,7 +4,7 @@ /*--- es6id: 14.1.19 description: Assignment of function `name` attribute -info: > +info: | FunctionDeclaration : function BindingIdentifier ( FormalParameters ) { FunctionBody } diff --git a/js/src/tests/test262/language/statements/function/param-dflt-yield-strict-strict.js b/js/src/tests/test262/language/statements/function/param-dflt-yield-strict-strict.js index fdeb30ecf629..72ee3ffe7d48 100644 --- a/js/src/tests/test262/language/statements/function/param-dflt-yield-strict-strict.js +++ b/js/src/tests/test262/language/statements/function/param-dflt-yield-strict-strict.js @@ -14,7 +14,7 @@ info: | features: [generators, default-parameters] flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/function/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/function/rest-params-trailing-comma-early-error.js index 3cace70d43c3..4a7e3662b7aa 100644 --- a/js/src/tests/test262/language/statements/function/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/function/rest-params-trailing-comma-early-error.js @@ -7,7 +7,7 @@ description: It's a syntax error if a FunctionRestParameter is followed by a tra esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | FunctionDeclaration : diff --git a/js/src/tests/test262/language/statements/function/use-strict-with-non-simple-param.js b/js/src/tests/test262/language/statements/function/use-strict-with-non-simple-param.js index ae3386667292..b6744ca210bd 100644 --- a/js/src/tests/test262/language/statements/function/use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/statements/function/use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a function contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/generators/cptn-decl.js b/js/src/tests/test262/language/statements/generators/cptn-decl.js index 1bad7abb6dfd..8b370933a913 100644 --- a/js/src/tests/test262/language/statements/generators/cptn-decl.js +++ b/js/src/tests/test262/language/statements/generators/cptn-decl.js @@ -3,7 +3,7 @@ /*--- esid: sec-statement-semantics-runtime-semantics-evaluation description: Generator declaration completion value is empty. -info: > +info: | GeneratorDeclaration[Yield, Await, Default]: function * BindingIdentifier[?Yield, ?Await] ( FormalParameters[+Yield, ~Await] ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/declaration.js b/js/src/tests/test262/language/statements/generators/declaration.js index 7cb4bda3628d..8dba06f36aa5 100644 --- a/js/src/tests/test262/language/statements/generators/declaration.js +++ b/js/src/tests/test262/language/statements/generators/declaration.js @@ -2,7 +2,7 @@ // See LICENSE for details. /*--- -info: > +info: | Generator can be declared with GeneratorDeclaration syntax es6id: 14.4 author: Sam Mikes diff --git a/js/src/tests/test262/language/statements/generators/dflt-params-duplicates.js b/js/src/tests/test262/language/statements/generators/dflt-params-duplicates.js index f10321f661ae..40ab10ddbc5d 100644 --- a/js/src/tests/test262/language/statements/generators/dflt-params-duplicates.js +++ b/js/src/tests/test262/language/statements/generators/dflt-params-duplicates.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionob features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dflt-params-rest.js b/js/src/tests/test262/language/statements/generators/dflt-params-rest.js index 9f1ee394c94f..f5bb4b61b968 100644 --- a/js/src/tests/test262/language/statements/generators/dflt-params-rest.js +++ b/js/src/tests/test262/language/statements/generators/dflt-params-rest.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionob features: [default-parameters, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js index a31d7ad23565..37dda9bc9c5e 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-id.js index fdfb6a6c2d0c..cd736a54ec76 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js index f1cd4fecad09..e5f81c2f1c85 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js index fb3ec3c06cd7..3fb2806046b0 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js index d3f837f62369..ca79cec6a07f 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js index c474f6220f7d..e50f62fdd825 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/generators/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js index 8fa265525491..f7c5471cf6ed 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js index a4b1f4261767..4566316d4e0d 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js index 55f061e8b077..6a49f83275e5 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js index 43d97b0d8b35..4b7e07e198d8 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js index 7f08a6408ea0..47a4e716613a 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js index 22d5bcab858c..cf4f68c78773 100644 --- a/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/generators/dstr-dflt-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 14.4.12 features: [generators, destructuring-binding, default-parameters] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/name.js b/js/src/tests/test262/language/statements/generators/name.js index 67f519186a27..4818f0f109f7 100644 --- a/js/src/tests/test262/language/statements/generators/name.js +++ b/js/src/tests/test262/language/statements/generators/name.js @@ -4,7 +4,7 @@ /*--- description: Assignment of function `name` attribute es6id: 14.4.12 -info: > +info: | GeneratorDeclaration : function * BindingIdentifier ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/param-dflt-yield.js b/js/src/tests/test262/language/statements/generators/param-dflt-yield.js index b4bc2a80b984..20d50fbd2942 100644 --- a/js/src/tests/test262/language/statements/generators/param-dflt-yield.js +++ b/js/src/tests/test262/language/statements/generators/param-dflt-yield.js @@ -16,7 +16,7 @@ info: | evaluated before the resulting generator object is in a resumable state. features: [generators, default-parameters] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/generators/rest-params-trailing-comma-early-error.js b/js/src/tests/test262/language/statements/generators/rest-params-trailing-comma-early-error.js index 68537d6e7d54..95794945d7ef 100644 --- a/js/src/tests/test262/language/statements/generators/rest-params-trailing-comma-early-error.js +++ b/js/src/tests/test262/language/statements/generators/rest-params-trailing-comma-early-error.js @@ -8,7 +8,7 @@ esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionob features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | GeneratorDeclaration : function * ( FormalParameters ) { GeneratorBody } diff --git a/js/src/tests/test262/language/statements/generators/use-strict-with-non-simple-param.js b/js/src/tests/test262/language/statements/generators/use-strict-with-non-simple-param.js index e70fc71aa116..bea122ae4d36 100644 --- a/js/src/tests/test262/language/statements/generators/use-strict-with-non-simple-param.js +++ b/js/src/tests/test262/language/statements/generators/use-strict-with-non-simple-param.js @@ -6,12 +6,12 @@ esid: sec-generator-function-definitions-static-semantics-early-errors description: > A SyntaxError is thrown if a generator contains a non-simple parameter list and a UseStrict directive. -info: > +info: | Static Semantics: Early Errors It is a Syntax Error if ContainsUseStrict of GeneratorBody is true and IsSimpleParameterList of FormalParameters is false. negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier-escaped.js b/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier-escaped.js index e7daeac0d636..00d3856cbcb6 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier.js b/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier.js index 3e45c46054d9..9b0c1709f61a 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-binding-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference-escaped.js b/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference-escaped.js index 937d42cb304e..3e210f821ed9 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference-escaped.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference.js b/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference.js index fb4a5ccb5a62..a3d6e8eeb510 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-identifier-reference.js @@ -8,7 +8,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-as-label-identifier-escaped.js b/js/src/tests/test262/language/statements/generators/yield-as-label-identifier-escaped.js index 3187fce584bf..0a02e7f6ae02 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-label-identifier-escaped.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-label-identifier-escaped.js @@ -8,7 +8,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-as-label-identifier.js b/js/src/tests/test262/language/statements/generators/yield-as-label-identifier.js index ffedb39c2be5..05c38868ef01 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-label-identifier.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-label-identifier.js @@ -8,7 +8,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-as-logical-or-expression.js b/js/src/tests/test262/language/statements/generators/yield-as-logical-or-expression.js index 87325cb3a169..27e86aa146bf 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-logical-or-expression.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-logical-or-expression.js @@ -7,7 +7,7 @@ description: > `yield` expressions are not LogicalOrExpressions. es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/generators/yield-as-parameter.js b/js/src/tests/test262/language/statements/generators/yield-as-parameter.js index 59e20b805288..65c26c77353b 100644 --- a/js/src/tests/test262/language/statements/generators/yield-as-parameter.js +++ b/js/src/tests/test262/language/statements/generators/yield-as-parameter.js @@ -8,7 +8,7 @@ description: > not be used as the binding identifier of a parameter. es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/generators/yield-identifier-spread-strict-strict.js b/js/src/tests/test262/language/statements/generators/yield-identifier-spread-strict-strict.js index 8f11f5c5779f..93424bc26a62 100644 --- a/js/src/tests/test262/language/statements/generators/yield-identifier-spread-strict-strict.js +++ b/js/src/tests/test262/language/statements/generators/yield-identifier-spread-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorDeclaration features: [object-spread, generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-identifier-strict-strict.js b/js/src/tests/test262/language/statements/generators/yield-identifier-strict-strict.js index 30b35e1bc29e..21f6da9ab443 100644 --- a/js/src/tests/test262/language/statements/generators/yield-identifier-strict-strict.js +++ b/js/src/tests/test262/language/statements/generators/yield-identifier-strict-strict.js @@ -9,7 +9,7 @@ esid: prod-GeneratorDeclaration features: [generators] flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | 14.4 Generator Function Definitions diff --git a/js/src/tests/test262/language/statements/generators/yield-star-after-newline.js b/js/src/tests/test262/language/statements/generators/yield-star-after-newline.js index dc6ece9a522c..1d6f250d912d 100644 --- a/js/src/tests/test262/language/statements/generators/yield-star-after-newline.js +++ b/js/src/tests/test262/language/statements/generators/yield-star-after-newline.js @@ -7,7 +7,7 @@ description: > A newline may not precede the `*` token in a `yield` expression. es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/generators/yield-weak-binding.js b/js/src/tests/test262/language/statements/generators/yield-weak-binding.js index f7764747c29e..22a5d0bde690 100644 --- a/js/src/tests/test262/language/statements/generators/yield-weak-binding.js +++ b/js/src/tests/test262/language/statements/generators/yield-weak-binding.js @@ -7,7 +7,7 @@ description: > `yield` expressions bind weakly es6id: 14.4 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/if/S12.5_A1.1_T1.js b/js/src/tests/test262/language/statements/if/S12.5_A1.1_T1.js index c9f5ebd78f97..60b41d064cc6 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A1.1_T1.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A1.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | 0, null, undefined, false, empty string, NaN in expression is evaluated to false es5id: 12.5_A1.1_T1 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A1.1_T2.js b/js/src/tests/test262/language/statements/if/S12.5_A1.1_T2.js index ce01bc91737d..6bf3ca04690d 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A1.1_T2.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A1.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | 0, null, undefined, false, empty string, NaN in expression is evaluated to false es5id: 12.5_A1.1_T2 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A1.2_T1.js b/js/src/tests/test262/language/statements/if/S12.5_A1.2_T1.js index 736d1d987681..4d70ef53de1b 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A1.2_T1.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A1.2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | 1, true, non-empty string and others in expression is evaluated to true when using operator "new" es5id: 12.5_A1.2_T1 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A1.2_T2.js b/js/src/tests/test262/language/statements/if/S12.5_A1.2_T2.js index 2e6326a50e4a..8499f47a437a 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A1.2_T2.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A1.2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | 1, true, non-empty string and others in expression is evaluated to true when using operator "new" es5id: 12.5_A1.2_T2 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A11.js b/js/src/tests/test262/language/statements/if/S12.5_A11.js index 3fea941be399..4414f1c70e2c 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A11.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A11.js @@ -7,7 +7,7 @@ info: "{} within the \"if\" expression is not allowed" es5id: 12.5_A11 description: Checking if execution of "if({1})" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/S12.5_A3.js b/js/src/tests/test262/language/statements/if/S12.5_A3.js index 1be0d346cb82..5c5b12b6cc91 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A3.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the production "IfStatement: if ( Expression ) Statement else Statement" is evaluated, Expression is evaluated first es5id: 12.5_A3 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A4.js b/js/src/tests/test262/language/statements/if/S12.5_A4.js index 168119502170..af52fdba6360 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A4.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When the production "IfStatement: if ( Expression ) Statement else Statement" is evaluated, Statement(s) is(are) evaluated second es5id: 12.5_A4 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A5.js b/js/src/tests/test262/language/statements/if/S12.5_A5.js index ad51a7360795..0f984e16a0de 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A5.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | FunctionDeclaration inside the "if" Expression is evaluated as true and function will not be declarated es5id: 12.5_A5 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A6_T1.js b/js/src/tests/test262/language/statements/if/S12.5_A6_T1.js index f126eed52ab1..ad8d8245bf06 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A6_T1.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A6_T1.js @@ -7,7 +7,7 @@ info: In the If statement expression must be enclosed in braces es5id: 12.5_A6_T1 description: Checking if execution of "if true" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/S12.5_A6_T2.js b/js/src/tests/test262/language/statements/if/S12.5_A6_T2.js index 05ec84aeb552..c048183e117c 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A6_T2.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A6_T2.js @@ -7,7 +7,7 @@ info: In the If statement expression must be enclosed in braces es5id: 12.5_A6_T2 description: Checking if execution of "if false" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/S12.5_A7.js b/js/src/tests/test262/language/statements/if/S12.5_A7.js index cd0ef8c61a15..5ca352d62b42 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A7.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | In the "if" statement empty statement is allowed and is evaluated to "undefined" es5id: 12.5_A7 diff --git a/js/src/tests/test262/language/statements/if/S12.5_A8.js b/js/src/tests/test262/language/statements/if/S12.5_A8.js index 4449e8c5ddf8..e907e0490a2b 100644 --- a/js/src/tests/test262/language/statements/if/S12.5_A8.js +++ b/js/src/tests/test262/language/statements/if/S12.5_A8.js @@ -7,7 +7,7 @@ info: In the "if" Statement empty expression is not allowed es5id: 12.5_A8 description: Checking if execution of "if()" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/cptn-else-false-abrupt-empty.js b/js/src/tests/test262/language/statements/if/cptn-else-false-abrupt-empty.js index f00759bdb916..be9317eff1b0 100644 --- a/js/src/tests/test262/language/statements/if/cptn-else-false-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/if/cptn-else-false-abrupt-empty.js @@ -5,7 +5,7 @@ esid: sec-if-statement-runtime-semantics-evaluation description: > Completion value when expression is false with an `else` clause and body returns an empty abrupt completion -info: > +info: | IfStatement : if ( Expression ) Statement else Statement 3. If exprValue is true, then diff --git a/js/src/tests/test262/language/statements/if/cptn-else-false-nrml.js b/js/src/tests/test262/language/statements/if/cptn-else-false-nrml.js index 637d52de01b6..cb3158066638 100644 --- a/js/src/tests/test262/language/statements/if/cptn-else-false-nrml.js +++ b/js/src/tests/test262/language/statements/if/cptn-else-false-nrml.js @@ -5,7 +5,7 @@ es6id: 13.6.7 description: > Completion value when expression is false with an `else` clause and body returns a normal completion -info: > +info: | IfStatement : if ( Expression ) Statement else Statement 4. If exprValue is true, then diff --git a/js/src/tests/test262/language/statements/if/cptn-else-true-abrupt-empty.js b/js/src/tests/test262/language/statements/if/cptn-else-true-abrupt-empty.js index b156367205bb..b0c1678425be 100644 --- a/js/src/tests/test262/language/statements/if/cptn-else-true-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/if/cptn-else-true-abrupt-empty.js @@ -5,7 +5,7 @@ esid: sec-if-statement-runtime-semantics-evaluation description: > Completion value when expression is true with an `else` clause and body returns an abrupt completion -info: > +info: | IfStatement : if ( Expression ) Statement else Statement 3. If exprValue is true, then diff --git a/js/src/tests/test262/language/statements/if/cptn-else-true-nrml.js b/js/src/tests/test262/language/statements/if/cptn-else-true-nrml.js index 1d83a3bc1611..cf262e6a5ba2 100644 --- a/js/src/tests/test262/language/statements/if/cptn-else-true-nrml.js +++ b/js/src/tests/test262/language/statements/if/cptn-else-true-nrml.js @@ -5,7 +5,7 @@ es6id: 13.6.7 description: > Completion value when expression is true with an `else` clause and body returns a normal completion -info: > +info: | IfStatement : if ( Expression ) Statement else Statement 4. If exprValue is true, then diff --git a/js/src/tests/test262/language/statements/if/cptn-no-else-false.js b/js/src/tests/test262/language/statements/if/cptn-no-else-false.js index c08c72445869..3eff2032f3d8 100644 --- a/js/src/tests/test262/language/statements/if/cptn-no-else-false.js +++ b/js/src/tests/test262/language/statements/if/cptn-no-else-false.js @@ -3,7 +3,7 @@ /*--- es6id: 13.6.7 description: Completion value when expression is false without an `else` clause -info: > +info: | IfStatement : if ( Expression ) Statement [...] diff --git a/js/src/tests/test262/language/statements/if/cptn-no-else-true-abrupt-empty.js b/js/src/tests/test262/language/statements/if/cptn-no-else-true-abrupt-empty.js index 94b3ca95238a..819497a06308 100644 --- a/js/src/tests/test262/language/statements/if/cptn-no-else-true-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/if/cptn-no-else-true-abrupt-empty.js @@ -5,7 +5,7 @@ esid: sec-if-statement-runtime-semantics-evaluation description: > Completion value when expression is true without an `else` clause and body returns an empty abrupt completion -info: > +info: | IfStatement : if ( Expression ) Statement 3. If exprValue is false, then diff --git a/js/src/tests/test262/language/statements/if/cptn-no-else-true-nrml.js b/js/src/tests/test262/language/statements/if/cptn-no-else-true-nrml.js index 0054aa183793..6b5f2ad1aef8 100644 --- a/js/src/tests/test262/language/statements/if/cptn-no-else-true-nrml.js +++ b/js/src/tests/test262/language/statements/if/cptn-no-else-true-nrml.js @@ -5,7 +5,7 @@ es6id: 13.6.7 description: > Completion value when expression is true without an `else` clause and body returns a normal completion. -info: > +info: | IfStatement : if ( Expression ) Statement [...] diff --git a/js/src/tests/test262/language/statements/if/if-async-fun-else-async-fun.js b/js/src/tests/test262/language/statements/if/if-async-fun-else-async-fun.js index c44da6a681ad..df0ac4be2858 100644 --- a/js/src/tests/test262/language/statements/if/if-async-fun-else-async-fun.js +++ b/js/src/tests/test262/language/statements/if/if-async-fun-else-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-async-fun-else-stmt.js b/js/src/tests/test262/language/statements/if/if-async-fun-else-stmt.js index bc00849d8994..2b44542ac5d2 100644 --- a/js/src/tests/test262/language/statements/if/if-async-fun-else-stmt.js +++ b/js/src/tests/test262/language/statements/if/if-async-fun-else-stmt.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-async-fun-no-else.js b/js/src/tests/test262/language/statements/if/if-async-fun-no-else.js index 821c894f5a8b..b75a68a59735 100644 --- a/js/src/tests/test262/language/statements/if/if-async-fun-no-else.js +++ b/js/src/tests/test262/language/statements/if/if-async-fun-no-else.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-async-gen-else-async-gen.js b/js/src/tests/test262/language/statements/if/if-async-gen-else-async-gen.js index 3f1e4204bb6f..c6e8cc600ed4 100644 --- a/js/src/tests/test262/language/statements/if/if-async-gen-else-async-gen.js +++ b/js/src/tests/test262/language/statements/if/if-async-gen-else-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-async-gen-else-stmt.js b/js/src/tests/test262/language/statements/if/if-async-gen-else-stmt.js index d537d98943dd..01b779b46024 100644 --- a/js/src/tests/test262/language/statements/if/if-async-gen-else-stmt.js +++ b/js/src/tests/test262/language/statements/if/if-async-gen-else-stmt.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-async-gen-no-else.js b/js/src/tests/test262/language/statements/if/if-async-gen-no-else.js index 953a68a9f225..4d24d11f5ae6 100644 --- a/js/src/tests/test262/language/statements/if/if-async-gen-no-else.js +++ b/js/src/tests/test262/language/statements/if/if-async-gen-no-else.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-cls-else-cls.js b/js/src/tests/test262/language/statements/if/if-cls-else-cls.js index b63f4f63ea7c..da5a9180b2cb 100644 --- a/js/src/tests/test262/language/statements/if/if-cls-else-cls.js +++ b/js/src/tests/test262/language/statements/if/if-cls-else-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-cls-else-stmt.js b/js/src/tests/test262/language/statements/if/if-cls-else-stmt.js index 168d8dfeb6f5..53261f4dce82 100644 --- a/js/src/tests/test262/language/statements/if/if-cls-else-stmt.js +++ b/js/src/tests/test262/language/statements/if/if-cls-else-stmt.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-cls-no-else.js b/js/src/tests/test262/language/statements/if/if-cls-no-else.js index 2d66f98569d3..c50825fe9abd 100644 --- a/js/src/tests/test262/language/statements/if/if-cls-no-else.js +++ b/js/src/tests/test262/language/statements/if/if-cls-no-else.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-const-else-const.js b/js/src/tests/test262/language/statements/if/if-const-else-const.js index a876f72efa58..44b679701d48 100644 --- a/js/src/tests/test262/language/statements/if/if-const-else-const.js +++ b/js/src/tests/test262/language/statements/if/if-const-else-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-const-else-stmt.js b/js/src/tests/test262/language/statements/if/if-const-else-stmt.js index 83c96bbb853e..4f6c345e8268 100644 --- a/js/src/tests/test262/language/statements/if/if-const-else-stmt.js +++ b/js/src/tests/test262/language/statements/if/if-const-else-stmt.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-const-no-else.js b/js/src/tests/test262/language/statements/if/if-const-no-else.js index 9ad0d07cc8e5..bc9494d401bf 100644 --- a/js/src/tests/test262/language/statements/if/if-const-no-else.js +++ b/js/src/tests/test262/language/statements/if/if-const-no-else.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-decl-else-decl-strict-strict.js b/js/src/tests/test262/language/statements/if/if-decl-else-decl-strict-strict.js index d1a1d708cdde..957fcf164404 100644 --- a/js/src/tests/test262/language/statements/if/if-decl-else-decl-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-decl-else-decl-strict-strict.js @@ -7,9 +7,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec es6id: B.3.4 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-decl-else-stmt-strict-strict.js b/js/src/tests/test262/language/statements/if/if-decl-else-stmt-strict-strict.js index b7e6b74c4d84..f93618415809 100644 --- a/js/src/tests/test262/language/statements/if/if-decl-else-stmt-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-decl-else-stmt-strict-strict.js @@ -7,9 +7,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec es6id: B.3.4 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-decl-no-else-strict-strict.js b/js/src/tests/test262/language/statements/if/if-decl-no-else-strict-strict.js index a9e50b98dff4..eae5167d6849 100644 --- a/js/src/tests/test262/language/statements/if/if-decl-no-else-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-decl-no-else-strict-strict.js @@ -7,9 +7,9 @@ description: AnnexB extension not honored in strict mode (IfStatement without an es6id: B.3.4 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-fun-else-fun-strict-strict.js b/js/src/tests/test262/language/statements/if/if-fun-else-fun-strict-strict.js index 060bb3c71a17..a7f858bb668e 100644 --- a/js/src/tests/test262/language/statements/if/if-fun-else-fun-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-fun-else-fun-strict-strict.js @@ -8,9 +8,9 @@ esid: sec-if-statement es6id: 13.6 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-fun-else-stmt-strict-strict.js b/js/src/tests/test262/language/statements/if/if-fun-else-stmt-strict-strict.js index ad94fc0dce3e..e8d2df4b9b2a 100644 --- a/js/src/tests/test262/language/statements/if/if-fun-else-stmt-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-fun-else-stmt-strict-strict.js @@ -8,9 +8,9 @@ esid: sec-if-statement es6id: 13.6 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-fun-no-else-strict-strict.js b/js/src/tests/test262/language/statements/if/if-fun-no-else-strict-strict.js index 9b732b14f717..d2def6778797 100644 --- a/js/src/tests/test262/language/statements/if/if-fun-no-else-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-fun-no-else-strict-strict.js @@ -8,9 +8,9 @@ esid: sec-if-statement es6id: 13.6 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-gen-else-gen.js b/js/src/tests/test262/language/statements/if/if-gen-else-gen.js index c76978650dba..664a1be47331 100644 --- a/js/src/tests/test262/language/statements/if/if-gen-else-gen.js +++ b/js/src/tests/test262/language/statements/if/if-gen-else-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-gen-else-stmt.js b/js/src/tests/test262/language/statements/if/if-gen-else-stmt.js index c303b3e321a4..6d5be4127179 100644 --- a/js/src/tests/test262/language/statements/if/if-gen-else-stmt.js +++ b/js/src/tests/test262/language/statements/if/if-gen-else-stmt.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-gen-no-else.js b/js/src/tests/test262/language/statements/if/if-gen-no-else.js index e7441698e470..a981862a3425 100644 --- a/js/src/tests/test262/language/statements/if/if-gen-no-else.js +++ b/js/src/tests/test262/language/statements/if/if-gen-no-else.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-let-else-let.js b/js/src/tests/test262/language/statements/if/if-let-else-let.js index 48775d685242..363b8746f8e8 100644 --- a/js/src/tests/test262/language/statements/if/if-let-else-let.js +++ b/js/src/tests/test262/language/statements/if/if-let-else-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-let-else-stmt.js b/js/src/tests/test262/language/statements/if/if-let-else-stmt.js index 6cc2bc118e57..a17b5bc03205 100644 --- a/js/src/tests/test262/language/statements/if/if-let-else-stmt.js +++ b/js/src/tests/test262/language/statements/if/if-let-else-stmt.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-let-no-else.js b/js/src/tests/test262/language/statements/if/if-let-no-else.js index 2d66069da300..37a515c0c215 100644 --- a/js/src/tests/test262/language/statements/if/if-let-no-else.js +++ b/js/src/tests/test262/language/statements/if/if-let-no-else.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-async-fun.js b/js/src/tests/test262/language/statements/if/if-stmt-else-async-fun.js index 1f422b53c563..5f429dbb71cc 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-async-fun.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-async-gen.js b/js/src/tests/test262/language/statements/if/if-stmt-else-async-gen.js index 5852eb346da9..2ddf6ec08c93 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-async-gen.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-cls.js b/js/src/tests/test262/language/statements/if/if-stmt-else-cls.js index 39e1f39e2c80..d43322f9ee93 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-cls.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-const.js b/js/src/tests/test262/language/statements/if/if-stmt-else-const.js index c759c27fd72c..25919bb10bef 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-const.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-decl-strict-strict.js b/js/src/tests/test262/language/statements/if/if-stmt-else-decl-strict-strict.js index 7a6a2d8c3031..c4fc421e0a0b 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-decl-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-decl-strict-strict.js @@ -7,9 +7,9 @@ description: AnnexB extension not honored in strict mode (IfStatement with a dec es6id: B.3.4 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-fun-strict-strict.js b/js/src/tests/test262/language/statements/if/if-stmt-else-fun-strict-strict.js index 279137f77f9a..67550bbf1e47 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-fun-strict-strict.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-fun-strict-strict.js @@ -8,9 +8,9 @@ esid: sec-if-statement es6id: 13.6 flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError -info: > +info: | The following rules for IfStatement augment those in 13.6: IfStatement[Yield, Return]: diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-gen.js b/js/src/tests/test262/language/statements/if/if-stmt-else-gen.js index ae207977f675..d0dcdb4d219d 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-gen.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/if/if-stmt-else-let.js b/js/src/tests/test262/language/statements/if/if-stmt-else-let.js index 55beb308bc95..919182168294 100644 --- a/js/src/tests/test262/language/statements/if/if-stmt-else-let.js +++ b/js/src/tests/test262/language/statements/if/if-stmt-else-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-if-statement es6id: 13.6 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/labelled-fn-stmt-first.js b/js/src/tests/test262/language/statements/if/labelled-fn-stmt-first.js index 3216fc71b001..f7d45bca551d 100644 --- a/js/src/tests/test262/language/statements/if/labelled-fn-stmt-first.js +++ b/js/src/tests/test262/language/statements/if/labelled-fn-stmt-first.js @@ -21,7 +21,7 @@ info: | In the absence of Annex B.3.2, a SyntaxError should be produced due to the labelled function declaration itself. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/labelled-fn-stmt-lone.js b/js/src/tests/test262/language/statements/if/labelled-fn-stmt-lone.js index 91a83d84c82f..e8e79a4af7bc 100644 --- a/js/src/tests/test262/language/statements/if/labelled-fn-stmt-lone.js +++ b/js/src/tests/test262/language/statements/if/labelled-fn-stmt-lone.js @@ -21,7 +21,7 @@ info: | In the absence of Annex B.3.2, a SyntaxError should be produced due to the labelled function declaration itself. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/labelled-fn-stmt-second.js b/js/src/tests/test262/language/statements/if/labelled-fn-stmt-second.js index 20c4bd4c7777..0a687611059e 100644 --- a/js/src/tests/test262/language/statements/if/labelled-fn-stmt-second.js +++ b/js/src/tests/test262/language/statements/if/labelled-fn-stmt-second.js @@ -21,7 +21,7 @@ info: | In the absence of Annex B.3.2, a SyntaxError should be produced due to the labelled function declaration itself. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/if/let-array-with-newline.js b/js/src/tests/test262/language/statements/if/let-array-with-newline.js index a833a6b25c58..379cfd1f8c78 100644 --- a/js/src/tests/test262/language/statements/if/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/if/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/if/tco-else-body-strict.js b/js/src/tests/test262/language/statements/if/tco-else-body-strict.js index 97b9ec55c988..64883d7e392e 100644 --- a/js/src/tests/test262/language/statements/if/tco-else-body-strict.js +++ b/js/src/tests/test262/language/statements/if/tco-else-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/if/tco-if-body-strict.js b/js/src/tests/test262/language/statements/if/tco-if-body-strict.js index 1a1354323d3d..85188bdc361a 100644 --- a/js/src/tests/test262/language/statements/if/tco-if-body-strict.js +++ b/js/src/tests/test262/language/statements/if/tco-if-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/labeled/S12.12_A1_T1.js b/js/src/tests/test262/language/statements/labeled/S12.12_A1_T1.js index fbe23139b0ae..dd7adc5ac665 100644 --- a/js/src/tests/test262/language/statements/labeled/S12.12_A1_T1.js +++ b/js/src/tests/test262/language/statements/labeled/S12.12_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Labelled statements are only used in conjunction with labelled break and continue statements es5id: 12.12_A1_T1 diff --git a/js/src/tests/test262/language/statements/labeled/continue.js b/js/src/tests/test262/language/statements/labeled/continue.js index d2b2ee5ebc5d..319b00abdf31 100644 --- a/js/src/tests/test262/language/statements/labeled/continue.js +++ b/js/src/tests/test262/language/statements/labeled/continue.js @@ -15,7 +15,7 @@ info: | 3. Return ContainsUndefinedContinueTarget of LabelledItem with arguments iterationSet and newLabelSet. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-async-function.js b/js/src/tests/test262/language/statements/labeled/decl-async-function.js index e4810615a2ad..9925e7a567d7 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-async-function.js +++ b/js/src/tests/test262/language/statements/labeled/decl-async-function.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-async-generator.js b/js/src/tests/test262/language/statements/labeled/decl-async-generator.js index ed61474d5c19..3392ac3373e0 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-async-generator.js +++ b/js/src/tests/test262/language/statements/labeled/decl-async-generator.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-cls.js b/js/src/tests/test262/language/statements/labeled/decl-cls.js index 9fcf386d9d6d..6d62824770a3 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-cls.js +++ b/js/src/tests/test262/language/statements/labeled/decl-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-labelled-statements es6id: 13.13 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-const.js b/js/src/tests/test262/language/statements/labeled/decl-const.js index ed2df119b715..84f9d15c86ae 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-const.js +++ b/js/src/tests/test262/language/statements/labeled/decl-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-labelled-statements es6id: 13.13 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-fun-strict-strict.js b/js/src/tests/test262/language/statements/labeled/decl-fun-strict-strict.js index 14370619b247..0cec13eb9637 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-fun-strict-strict.js +++ b/js/src/tests/test262/language/statements/labeled/decl-fun-strict-strict.js @@ -10,7 +10,7 @@ description: > label: Statement flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-gen.js b/js/src/tests/test262/language/statements/labeled/decl-gen.js index e98036d1152a..bdbb91e54a25 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-gen.js +++ b/js/src/tests/test262/language/statements/labeled/decl-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-labelled-statements es6id: 13.13 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/decl-let.js b/js/src/tests/test262/language/statements/labeled/decl-let.js index afbc72be0212..86b486f50e77 100644 --- a/js/src/tests/test262/language/statements/labeled/decl-let.js +++ b/js/src/tests/test262/language/statements/labeled/decl-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-labelled-statements es6id: 13.13 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/let-array-with-newline.js b/js/src/tests/test262/language/statements/labeled/let-array-with-newline.js index 427025f38a8a..31b037b44d51 100644 --- a/js/src/tests/test262/language/statements/labeled/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/labeled/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/tco-strict.js b/js/src/tests/test262/language/statements/labeled/tco-strict.js index 467287acb80f..b0889704a3f6 100644 --- a/js/src/tests/test262/language/statements/labeled/tco-strict.js +++ b/js/src/tests/test262/language/statements/labeled/tco-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/labeled/value-await-module-escaped.js b/js/src/tests/test262/language/statements/labeled/value-await-module-escaped.js index 0e6f518dc722..9c188f901272 100644 --- a/js/src/tests/test262/language/statements/labeled/value-await-module-escaped.js +++ b/js/src/tests/test262/language/statements/labeled/value-await-module-escaped.js @@ -12,7 +12,7 @@ info: | It is a Syntax Error if the goal symbol of the syntactic grammar is Module and the StringValue of IdentifierName is "await". negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/value-await-module.js b/js/src/tests/test262/language/statements/labeled/value-await-module.js index 64393dcc9373..ad489574195d 100644 --- a/js/src/tests/test262/language/statements/labeled/value-await-module.js +++ b/js/src/tests/test262/language/statements/labeled/value-await-module.js @@ -11,7 +11,7 @@ info: | It is a Syntax Error if the goal symbol of the syntactic grammar is Module. negative: - phase: early + phase: parse type: SyntaxError flags: [module] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/value-yield-strict-escaped-strict.js b/js/src/tests/test262/language/statements/labeled/value-yield-strict-escaped-strict.js index dad6063b85b9..97c444a410d8 100644 --- a/js/src/tests/test262/language/statements/labeled/value-yield-strict-escaped-strict.js +++ b/js/src/tests/test262/language/statements/labeled/value-yield-strict-escaped-strict.js @@ -14,7 +14,7 @@ info: | StringValue of IdentifierName is: "implements", "interface", "let", "package", "private", "protected", "public", "static", or "yield". negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/labeled/value-yield-strict-strict.js b/js/src/tests/test262/language/statements/labeled/value-yield-strict-strict.js index 109f07d79efe..2ce901e816a0 100644 --- a/js/src/tests/test262/language/statements/labeled/value-yield-strict-strict.js +++ b/js/src/tests/test262/language/statements/labeled/value-yield-strict-strict.js @@ -9,7 +9,7 @@ as a label. es6id: 12.1.1 negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-ary.js index 3078f9c3f4b7..fb8f6344c69b 100644 --- a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-id.js index 292d04808648..ab1a38e6d6b6 100644 --- a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-obj.js index 174edd60de4c..469fb497ea60 100644 --- a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-ary.js index b8ec4a76db7f..8293c352da56 100644 --- a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-id.js index aeb75ca1489a..f66f28397c37 100644 --- a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-obj.js index 44a337b6e772..fcd20eec14dd 100644 --- a/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/let/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.3.1.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | LexicalBinding : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/let/fn-name-arrow.js b/js/src/tests/test262/language/statements/let/fn-name-arrow.js index 4ff54946d46d..d83d9fa27b21 100644 --- a/js/src/tests/test262/language/statements/let/fn-name-arrow.js +++ b/js/src/tests/test262/language/statements/let/fn-name-arrow.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (ArrowFunction) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/let/fn-name-class.js b/js/src/tests/test262/language/statements/let/fn-name-class.js index 4e1e8a406bb3..26af32389163 100644 --- a/js/src/tests/test262/language/statements/let/fn-name-class.js +++ b/js/src/tests/test262/language/statements/let/fn-name-class.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (ClassExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/let/fn-name-cover.js b/js/src/tests/test262/language/statements/let/fn-name-cover.js index f05c55326758..e99717963903 100644 --- a/js/src/tests/test262/language/statements/let/fn-name-cover.js +++ b/js/src/tests/test262/language/statements/let/fn-name-cover.js @@ -5,7 +5,7 @@ es6id: 13.3.1.4 description: > Assignment of function `name` attribute (CoverParenthesizedExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/let/fn-name-fn.js b/js/src/tests/test262/language/statements/let/fn-name-fn.js index 7d8e2741b0fd..608fe2f6b679 100644 --- a/js/src/tests/test262/language/statements/let/fn-name-fn.js +++ b/js/src/tests/test262/language/statements/let/fn-name-fn.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (FunctionExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/let/fn-name-gen.js b/js/src/tests/test262/language/statements/let/fn-name-gen.js index 1fd0f5d1b6b0..849c8526372a 100644 --- a/js/src/tests/test262/language/statements/let/fn-name-gen.js +++ b/js/src/tests/test262/language/statements/let/fn-name-gen.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.1.4 description: Assignment of function `name` attribute (GeneratorExpression) -info: > +info: | LexicalBinding : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/let/redeclaration-error-from-within-strict-mode-function.js b/js/src/tests/test262/language/statements/let/redeclaration-error-from-within-strict-mode-function.js index b16c4ae56ebb..273d1f994c75 100644 --- a/js/src/tests/test262/language/statements/let/redeclaration-error-from-within-strict-mode-function.js +++ b/js/src/tests/test262/language/statements/let/redeclaration-error-from-within-strict-mode-function.js @@ -6,7 +6,7 @@ es6id: 13.1 description: > Redeclaration error within strict mode function inside non-strict code. negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js b/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js index d4d3eb4d59f3..125c32e88ff9 100644 --- a/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-function-declaration.js @@ -7,7 +7,7 @@ description: > redeclaration within block: attempt to redeclare let binding with function declaration negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js b/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js index 649c773d30dd..72ccc4a7669c 100644 --- a/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js +++ b/js/src/tests/test262/language/statements/let/syntax/attempt-to-redeclare-let-binding-with-var.js @@ -7,7 +7,7 @@ description: > redeclaration within block: attempt to redeclare let binding with var negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/escaped-let.js b/js/src/tests/test262/language/statements/let/syntax/escaped-let.js index 2919965b3f4f..6d79f500be64 100644 --- a/js/src/tests/test262/language/statements/let/syntax/escaped-let.js +++ b/js/src/tests/test262/language/statements/let/syntax/escaped-let.js @@ -5,7 +5,7 @@ esid: sec-grammar-notation description: > The `let` contextual keyword must not contain Unicode escape sequences. -info: > +info: | Terminal symbols of the lexical, RegExp, and numeric string grammars are shown in fixed width font, both in the productions of the grammars and throughout this specification whenever the text directly refers to such a terminal symbol. These diff --git a/js/src/tests/test262/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict-strict.js b/js/src/tests/test262/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict-strict.js index 9c6f6d7e8f15..39aad130142b 100644 --- a/js/src/tests/test262/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict-strict.js +++ b/js/src/tests/test262/language/statements/let/syntax/identifier-let-allowed-as-lefthandside-expression-strict-strict.js @@ -9,7 +9,7 @@ description: > identifier "let" disallowed as lefthandside expression in strict mode flags: [onlyStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js b/js/src/tests/test262/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js index 6d0c8f0cfdce..bf9cca930a3c 100644 --- a/js/src/tests/test262/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js +++ b/js/src/tests/test262/language/statements/let/syntax/identifier-let-disallowed-as-boundname.js @@ -6,7 +6,7 @@ es6id: 13.6.4.1 description: > It is a Syntax Error if the BoundNames of ForDeclaration contains "let". negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js b/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js index 0ecdb0022d60..d37139c984ee 100644 --- a/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js +++ b/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-split-across-two-lines.js @@ -7,7 +7,7 @@ author: Jeff Walden es6id: 13.3.1.1 description: > let: |let let| split across two lines is not subject to automatic semicolon insertion. -info: > +info: | |let| followed by a name is a lexical declaration. This is so even if the name is on a new line. ASI applies *only* if an offending token not allowed by the grammar is encountered, and there's no [no LineTerminator here] @@ -24,7 +24,7 @@ info: > just chosen, per 5.3, are validated to recognize the Script as invalid. Thus the eval script can't be evaluated, and a SyntaxError is thrown. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js b/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js index c004f54f827c..e29df622d670 100644 --- a/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js +++ b/js/src/tests/test262/language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js @@ -7,7 +7,7 @@ author: Jeff Walden es6id: 13.3.1.1 description: > let: |let let| split across two lines is not subject to automatic semicolon insertion. -info: > +info: | |let| followed by a name is a lexical declaration. This is so even if the name is on a new line. ASI applies *only* if an offending token not allowed by the grammar is encountered, and there's no [no LineTerminator here] @@ -24,7 +24,7 @@ info: > just chosen, per 5.3, are validated to recognize the Script as invalid. Thus the eval script can't be evaluated, and a SyntaxError is thrown. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/let-newline-await-in-normal-function.js b/js/src/tests/test262/language/statements/let/syntax/let-newline-await-in-normal-function.js index 41717754cb6d..ebd7004528bb 100644 --- a/js/src/tests/test262/language/statements/let/syntax/let-newline-await-in-normal-function.js +++ b/js/src/tests/test262/language/statements/let/syntax/let-newline-await-in-normal-function.js @@ -7,13 +7,13 @@ author: Jeff Walden esid: sec-let-and-const-declarations description: > `let await` does not permit ASI in between, as `await` is a BindingIdentifier -info: > +info: | `await` is a perfectly cromulent binding name in any context grammatically, just prohibited by static semantics in some contexts. Therefore ASI can never apply between `let` (where a LexicalDeclaration is permitted) and `await`, so a subsequent `0` where `=` was expected is a syntax error. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-generator-function.js b/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-generator-function.js index c069ec48a5d0..92bf09e89512 100644 --- a/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-generator-function.js +++ b/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-generator-function.js @@ -7,13 +7,13 @@ author: Jeff Walden esid: sec-let-and-const-declarations description: > `let yield` does not permit ASI in between, as `yield` is a BindingIdentifier -info: > +info: | `yield` is a perfectly cromulent binding name in any context grammatically, just prohibited by static semantics in some contexts. Therefore ASI can never apply between `let` (where a LexicalDeclaration is permitted) and `yield`, so a subsequent `0` where `=` was expected is a syntax error. negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-normal-function.js b/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-normal-function.js index 75eac1c4ef77..25b5b90cefb6 100644 --- a/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-normal-function.js +++ b/js/src/tests/test262/language/statements/let/syntax/let-newline-yield-in-normal-function.js @@ -6,13 +6,13 @@ esid: sec-let-and-const-declarations description: > `let yield` does not permit ASI in between, as `yield` is a BindingIdentifier -info: > +info: | `yield` is a perfectly cromulent binding name in any context grammatically, just prohibited by static semantics in some contexts. Therefore ASI can never apply between `let` (where a LexicalDeclaration is permitted) and `yield`, so a subsequent `0` where `=` was expected is a syntax error. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js index c4ab44a38e07..9e52a71cc10c 100644 --- a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js +++ b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-do-statement-while-expression.js @@ -7,7 +7,7 @@ description: > let declarations with initialisers in statement positions: do Statement while ( Expression ) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js index 02ed2052f611..5e30f525929a 100644 --- a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-for-statement.js @@ -7,7 +7,7 @@ description: > let declarations with initialisers in statement positions: for ( ;;) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js index a1f4c1652871..82721106af18 100644 --- a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement-else-statement.js @@ -7,7 +7,7 @@ description: > let declarations with initialisers in statement positions: if ( Expression ) Statement else Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js index 8a9730315b67..f9815187a517 100644 --- a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-if-expression-statement.js @@ -7,7 +7,7 @@ description: > let declarations with initialisers in statement positions: if ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js index 7953b0f2e418..e885fae4e2d4 100644 --- a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-label-statement.js @@ -7,7 +7,7 @@ description: > let declarations with initialisers in statement positions: label: Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js index 88853ccc284c..37d784118c44 100644 --- a/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/with-initialisers-in-statement-positions-while-expression-statement.js @@ -7,7 +7,7 @@ description: > let declarations with initialisers in statement positions: while ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js index 6c92efca72a1..485ba0eb85cf 100644 --- a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js +++ b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-do-statement-while-expression.js @@ -7,7 +7,7 @@ description: > let declarations without initialisers in statement positions: do Statement while ( Expression ) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js index f95e542255a5..92712b0d5555 100644 --- a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-for-statement.js @@ -7,7 +7,7 @@ description: > let declarations without initialisers in statement positions: for ( ;;) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js index 4894f73d28d5..fa5788008483 100644 --- a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement-else-statement.js @@ -7,7 +7,7 @@ description: > let declarations without initialisers in statement positions: if ( Expression ) Statement else Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js index 7ef39a808748..170a249d12e5 100644 --- a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-if-expression-statement.js @@ -7,7 +7,7 @@ description: > let declarations without initialisers in statement positions: if ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js index ffc1ae9abf85..743bba7e3664 100644 --- a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-label-statement.js @@ -7,7 +7,7 @@ description: > let declarations without initialisers in statement positions: label: Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js index c500532d77ad..75ee2482f2ad 100644 --- a/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js +++ b/js/src/tests/test262/language/statements/let/syntax/without-initialisers-in-statement-positions-while-expression-statement.js @@ -7,7 +7,7 @@ description: > let declarations without initialisers in statement positions: while ( Expression ) Statement negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T1.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T1.js index 19808a8fc465..e9313ac1411e 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T1.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T1.js @@ -7,7 +7,7 @@ info: Appearing of "return" without a function body leads to syntax error es5id: 12.9_A1_T1 description: Checking if execution of "return" with no function fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T10.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T10.js index e2fa7aa330bc..4c07eceaab06 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T10.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T10.js @@ -7,7 +7,7 @@ info: Appearing of "return" without a function body leads to syntax error es5id: 12.9_A1_T10 description: Checking if execution of "return (0)" with no function fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T2.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T2.js index be6e286c9814..4acf8529b2bc 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T2.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T2.js @@ -7,7 +7,7 @@ info: Appearing of "return" without a function body leads to syntax error es5id: 12.9_A1_T2 description: Checking if execution of "return x" with no function fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T3.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T3.js index 2179e72d9727..7703f12cd7f4 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T3.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T3.js @@ -7,7 +7,7 @@ info: Appearing of "return" without a function body leads to syntax error es5id: 12.9_A1_T3 description: Checking if execution of "return" within "try" statement fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T4.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T4.js index c0cd20dc0958..afaa9adbf431 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T4.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T4.js @@ -7,7 +7,7 @@ info: Appearing of "return" without a function body leads to syntax error es5id: 12.9_A1_T4 description: Checking if execution of "return" with no function fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T5.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T5.js index 4b4baca32464..a5c41a3c670d 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T5.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T5.js @@ -9,7 +9,7 @@ description: > Checking if execution of "return" with no function, placed into a Block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T6.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T6.js index f2c07a94fba0..a186e4eb9c5d 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T6.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T6.js @@ -9,7 +9,7 @@ description: > Checking if execution of "return" with no function, placed into a loop, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T7.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T7.js index 3c644284cb4e..9b2e5e520542 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T7.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T7.js @@ -9,7 +9,7 @@ description: > Checking if execution of "return x" with no function, placed inside Block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T8.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T8.js index 49284a7fa7e3..eb0b08cd2c2e 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T8.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T8.js @@ -9,7 +9,7 @@ description: > Checking if execution of "return x" with no function, placed into a loop, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A1_T9.js b/js/src/tests/test262/language/statements/return/S12.9_A1_T9.js index 358c94483bdd..38acdba283fe 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A1_T9.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A1_T9.js @@ -7,7 +7,7 @@ info: Appearing of "return" without a function body leads to syntax error es5id: 12.9_A1_T9 description: Checking if execution of "return", placed into a catch Block, fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/return/S12.9_A2.js b/js/src/tests/test262/language/statements/return/S12.9_A2.js index 3afd23a456f5..432a57f1e830 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A2.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | LineTerminator between return and Identifier_opt yields return without Identifier_opt es5id: 12.9_A2 diff --git a/js/src/tests/test262/language/statements/return/S12.9_A4.js b/js/src/tests/test262/language/statements/return/S12.9_A4.js index 77c1e579c66f..8b3f09426305 100644 --- a/js/src/tests/test262/language/statements/return/S12.9_A4.js +++ b/js/src/tests/test262/language/statements/return/S12.9_A4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production ReturnStatement : return Expression; is evaluated as: i) Evaluate Expression. ii) Call GetValue(Result(2)). diff --git a/js/src/tests/test262/language/statements/return/tco-strict.js b/js/src/tests/test262/language/statements/return/tco-strict.js index 5b98d47a280f..619cfdfb7f45 100644 --- a/js/src/tests/test262/language/statements/return/tco-strict.js +++ b/js/src/tests/test262/language/statements/return/tco-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Expression within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A1_T1.js b/js/src/tests/test262/language/statements/switch/S12.11_A1_T1.js index 35ff77467f36..60dd10b38eb2 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A1_T1.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T1 diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A1_T2.js b/js/src/tests/test262/language/statements/switch/S12.11_A1_T2.js index 26f36ba36f6f..8b1348b1825e 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A1_T2.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T2 diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A1_T3.js b/js/src/tests/test262/language/statements/switch/S12.11_A1_T3.js index dda6c263b587..c830523c473f 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A1_T3.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T3 diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A1_T4.js b/js/src/tests/test262/language/statements/switch/S12.11_A1_T4.js index b99ac3fa5818..47c7d7a23a8a 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A1_T4.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A1_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | If Result.type is break and Result.target is in the current label set, return (normal, Result.value, empty) es5id: 12.11_A1_T4 diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A2_T1.js b/js/src/tests/test262/language/statements/switch/S12.11_A2_T1.js index 1aba1307930e..4ab366a8bc8f 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A2_T1.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A2_T1.js @@ -7,7 +7,7 @@ info: There can be only one DefaultClause es5id: 12.11_A2_T1 description: Duplicate DefaultClause negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A3_T1.js b/js/src/tests/test262/language/statements/switch/S12.11_A3_T1.js index df2e05ee6473..586bfe1be20e 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A3_T1.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A3_T1.js @@ -7,7 +7,7 @@ info: Syntax constructions of switch statement es5id: 12.11_A3_T1 description: Checking if execution of "switch() {}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A3_T2.js b/js/src/tests/test262/language/statements/switch/S12.11_A3_T2.js index 94ac0f2ee981..dd300eaddf90 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A3_T2.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A3_T2.js @@ -7,7 +7,7 @@ info: Syntax constructions of switch statement es5id: 12.11_A3_T2 description: Checking if execution of "switch {}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A3_T3.js b/js/src/tests/test262/language/statements/switch/S12.11_A3_T3.js index 3da1d5323f55..1d6cff5ee10e 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A3_T3.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A3_T3.js @@ -7,7 +7,7 @@ info: Syntax constructions of switch statement es5id: 12.11_A3_T3 description: Checking if execution of "switch(value)" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A3_T4.js b/js/src/tests/test262/language/statements/switch/S12.11_A3_T4.js index a862b2df3425..6c742b015bb4 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A3_T4.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A3_T4.js @@ -9,7 +9,7 @@ description: > Using "case" that has no Expresson after it. "CaseClause: case Expression : [StatementList]" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/switch/S12.11_A3_T5.js b/js/src/tests/test262/language/statements/switch/S12.11_A3_T5.js index e64ff05c90bd..da354d242b70 100644 --- a/js/src/tests/test262/language/statements/switch/S12.11_A3_T5.js +++ b/js/src/tests/test262/language/statements/switch/S12.11_A3_T5.js @@ -7,7 +7,7 @@ info: Syntax constructions of switch statement es5id: 12.11_A3_T5 description: Introducing statement not followed by "case" keyword negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/switch/cptn-a-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-a-abrupt-empty.js index 37958a9b792c..2bd948fd21f2 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-a-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-a-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-abrupt-empty.js index a75625cfb5b7..8fa4a1b125f4 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-nrml.js b/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-nrml.js index b0cecb2649c0..2bc7e5f0de7d 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-nrml.js +++ b/js/src/tests/test262/language/statements/switch/cptn-a-fall-thru-nrml.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-abrupt-empty.js index d26360591e88..b866c73b6dee 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.12.11 description: > Completion value when case block is empty -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-b-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-b-abrupt-empty.js index a9ce6a8ab9ba..7e3b0ef97bab 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-b-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-b-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-abrupt-empty.js index f887242f4f42..59d82a569bd1 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-nrml.js b/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-nrml.js index 6907bc40678b..2555aedb5423 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-nrml.js +++ b/js/src/tests/test262/language/statements/switch/cptn-b-fall-thru-nrml.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-b-final.js b/js/src/tests/test262/language/statements/switch/cptn-b-final.js index 75347a91344b..90b0419e13c0 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-b-final.js +++ b/js/src/tests/test262/language/statements/switch/cptn-b-final.js @@ -3,7 +3,7 @@ /*--- es6id: 13.12.11 description: Completion value when the final case matches -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-abrupt-empty.js index fd17afc2a82c..fc15af139837 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when the default case is exited via an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-abrupt-empty.js index acbf7b5b419e..567900f159db 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-abrupt-empty.js index 859a4575be45..c37bd4b44220 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-nrml.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-nrml.js index 5644bf2c74c5..1a342ccdc580 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-nrml.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-fall-thru-nrml.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-final.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-final.js index 9e7335577735..a1ddd7dd7e3b 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-b-final.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-b-final.js @@ -3,7 +3,7 @@ /*--- es6id: 13.12.11 description: Completion value when the final case matches -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-abrupt-empty.js index 71e4dd43a845..44d369ad2596 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion in the default case -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-nrml.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-nrml.js index c15a6d649070..42f52df835ec 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-nrml.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-fall-thru-nrml.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion in the default case -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-dflt-final.js b/js/src/tests/test262/language/statements/switch/cptn-dflt-final.js index 2a092938d898..7099e69f5929 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-dflt-final.js +++ b/js/src/tests/test262/language/statements/switch/cptn-dflt-final.js @@ -3,7 +3,7 @@ /*--- es6id: 13.12.11 description: Completion value when the default case matches and is final -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-abrupt-empty.js index 5f1ef3f645e7..cf640d6b9057 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when the matching case is exited via an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-abrupt-empty.js b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-abrupt-empty.js index f6a378113e02..4abf4d3e8adc 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-abrupt-empty.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with an empty abrupt completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-nrml.js b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-nrml.js index abefabd97b53..594945d7db81 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-nrml.js +++ b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-fall-thru-nrml.js @@ -5,7 +5,7 @@ es6id: 13.12.11 description: > Completion value when execution continues through multiple cases and ends with a normal completion -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-final.js b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-final.js index dc0b4b685326..4eb34f8caeb9 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-final.js +++ b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-match-final.js @@ -3,7 +3,7 @@ /*--- es6id: 13.12.11 description: Completion value when only the final case matches -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-no-match.js b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-no-match.js index ee2a92e64b2e..83ff4ad846ce 100644 --- a/js/src/tests/test262/language/statements/switch/cptn-no-dflt-no-match.js +++ b/js/src/tests/test262/language/statements/switch/cptn-no-dflt-no-match.js @@ -3,7 +3,7 @@ /*--- es6id: 13.12.11 description: Completion value when no cases match -info: > +info: | SwitchStatement : switch ( Expression ) CaseBlock [...] diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js index 28d3985ff4f8..64878c3db2c4 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js index f0b2269cff39..8797e0306ce3 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration, async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js index dbc9362129eb..ff6ff743ccb5 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-const-declaration.js index 871ceacee842..53ba3084ffa9 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-const-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js index c6e775ea3c0d..9e6d58fbcb0e 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js index 8c57e45707d7..f5c6fd9b28ed 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators, async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-let-declaration.js index 77221207f3ba..4effba7ea001 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-let-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js index 4f55ce977c28..b2490402a46d 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js index 63032e570ecc..95226b6a2cbb 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js index 404956a3cb35..27356d151a05 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js index d49b92b300c8..a26cd9e05ad6 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-const-declaration.js index ead46d26fa80..d962b43466a6 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-const-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js index 906a9b2ddb61..8bf45e802f7e 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js index 48025ff430bc..acac9000a38c 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators, async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-let-declaration.js index 0b2ecf801508..386c039e3315 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-let-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js index e9f6e2388e4b..e8a0177ccd26 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js index f42d3a52f62e..3e8cec9ac113 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js index 099f5b95be32..9bf961a83437 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js index 3a822d1ab472..fd45e2303670 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with ClassDeclaration (ClassDeclaration in SwitchStat esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js index 634c73b59fb5..3e59a04c91ff 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with const-LexicalDeclaration (ClassDeclaration in Sw esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js index 2019dee247dc..a9b7a34db25a 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with FunctionDeclaration (ClassDeclaration in SwitchS esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js index b26fb3c9f341..894be607a508 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js index ffed91009362..f5d769693a59 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with let-LexicalDeclaration (ClassDeclaration in Swit esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js index 5a31d47874cd..545cc426c1fe 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with VariableDeclaration (ClassDeclaration in SwitchS esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-function-declaration.js index 7759d5958a79..c22c37ea4729 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-generator-declaration.js index 79773eb29d59..29ebd2a25d56 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js index 0cf45541f1d7..f3404c39d5ed 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with ClassDeclaration (LexicalDeclaration (const) in esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-const-declaration.js index 94c44f038ab6..e8faebed3bfe 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-const-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with const-LexicalDeclaration (LexicalDeclaration (co esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-function-declaration.js index 8869993c0ad7..d1960b2aa051 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-function-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with FunctionDeclaration (LexicalDeclaration (const) esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js index be4e0b579b90..121602a0d767 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-let-declaration.js index d49b24a21349..010ecfc95f13 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-let-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with let-LexicalDeclaration (LexicalDeclaration (cons esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-var-declaration.js index 0d4757bf4451..ab19d2f4dc86 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-var-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with VariableDeclaration (LexicalDeclaration (const) esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js index c769cc7ef7cd..856cfaff2fd8 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js index 1a4c782c46cd..f5b653a8c906 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js index dca5d50901cf..6fb28379e99a 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with ClassDeclaration (FunctionDeclaration in SwitchS esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-const-declaration.js index 238499a92136..965a8a8fe883 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-const-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with const-LexicalDeclaration (FunctionDeclaration in esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration-strict.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration-strict.js index 185fd5aa029d..bc78c1cba178 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration-strict.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration-strict.js @@ -8,7 +8,7 @@ description: redeclaration with FunctionDeclaration (FunctionDeclaration in Swit esid: sec-switch-statement-static-semantics-early-errors flags: [generated, onlyStrict] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js index a6aaf69cd1ff..b69720dc0d4b 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-let-declaration.js index 34f26fc97c62..6e720c5115ce 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-let-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with let-LexicalDeclaration (FunctionDeclaration in S esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js index b3ff260e7351..50b7700ea9b4 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with VariableDeclaration (FunctionDeclaration in Swit esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js index 618f960891e2..6b6c058b5fe7 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js index af82620e3b4d..38c9575e7383 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration, generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js index 2c69938b38cb..020af3683ae4 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js index a1a8b0f6a372..a015e9cef003 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-const-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js index c8f1c2ed95b8..2cb0ce036df0 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js index 86400ac31064..ad4e321981d5 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js index 463660f73bd9..58944619591a 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-let-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js index d5779b86f38b..fbcef7d243ef 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-function-declaration.js index c592b63c6fbd..c13cf4c945d6 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-generator-declaration.js index 4f57a468d411..03cfa58aa8eb 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js index c4a78253a182..488bb895362e 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with ClassDeclaration (LexicalDeclaration (let) in Sw esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-const-declaration.js index ecd4e15299ab..5dabf0ca550a 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-const-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with const-LexicalDeclaration (LexicalDeclaration (le esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-function-declaration.js index 858f2fbec18c..126e8920d3c8 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-function-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with FunctionDeclaration (LexicalDeclaration (let) in esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js index a5255fe5e99c..e4d70cf21d58 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-let-declaration.js index ca08711def97..b9e003a51d35 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-let-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with let-LexicalDeclaration (LexicalDeclaration (let) esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-var-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-var-declaration.js index 8cf14e8c4f6b..67019878917e 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-var-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-var-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with VariableDeclaration (LexicalDeclaration (let) in esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js index bd41e04f3b4e..126e0a165f18 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-functions] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js index 1ed3c5f6d343..f291cb3adb3a 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [async-iteration] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js index 4fc1653ac63e..c6ccc2a004da 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with ClassDeclaration (VariableDeclaration in SwitchS esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-const-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-const-declaration.js index 16817e90d54d..5e8eb2ce6e48 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-const-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-const-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with const-LexicalDeclaration (VariableDeclaration in esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js index b8eff2112979..ad69c010c297 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with FunctionDeclaration (VariableDeclaration in Swit esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js index ff6a076ecf62..216093d0810e 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js @@ -8,7 +8,7 @@ esid: sec-switch-statement-static-semantics-early-errors features: [generators] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-let-declaration.js b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-let-declaration.js index b1276e048d0b..d45dea6663c3 100644 --- a/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-let-declaration.js +++ b/js/src/tests/test262/language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-let-declaration.js @@ -7,7 +7,7 @@ description: redeclaration with let-LexicalDeclaration (VariableDeclaration in S esid: sec-switch-statement-static-semantics-early-errors flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | SwitchStatement : switch ( Expression ) CaseBlock diff --git a/js/src/tests/test262/language/statements/switch/tco-case-body-dflt-strict.js b/js/src/tests/test262/language/statements/switch/tco-case-body-dflt-strict.js index 8d59be4bed19..82f955351cd5 100644 --- a/js/src/tests/test262/language/statements/switch/tco-case-body-dflt-strict.js +++ b/js/src/tests/test262/language/statements/switch/tco-case-body-dflt-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/switch/tco-case-body-strict.js b/js/src/tests/test262/language/statements/switch/tco-case-body-strict.js index 1ee9569c1bc5..f13097eae3c5 100644 --- a/js/src/tests/test262/language/statements/switch/tco-case-body-strict.js +++ b/js/src/tests/test262/language/statements/switch/tco-case-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/switch/tco-dftl-body-strict.js b/js/src/tests/test262/language/statements/switch/tco-dftl-body-strict.js index 77bd904eb522..1988f98e4b74 100644 --- a/js/src/tests/test262/language/statements/switch/tco-dftl-body-strict.js +++ b/js/src/tests/test262/language/statements/switch/tco-dftl-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T1.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T1.js index bc493187c928..46137ea8eec2 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T1.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T1 diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T2.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T2.js index 1f88fd8af88c..7b43526a1df5 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T2.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T2 diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T3.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T3.js index 81831e7e9840..1e099393b9d5 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T3.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T3 diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T4.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T4.js index e5c0e1fedefe..5739b9ac52eb 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T4.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T4 diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T5.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T5.js index 05634f6223c4..b8a3cacc3283 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T5.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T5 diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js index f01689cf5136..b1cbce6692da 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T6 diff --git a/js/src/tests/test262/language/statements/throw/S12.13_A2_T7.js b/js/src/tests/test262/language/statements/throw/S12.13_A2_T7.js index c43da4d8911c..7f34e637abd3 100644 --- a/js/src/tests/test262/language/statements/throw/S12.13_A2_T7.js +++ b/js/src/tests/test262/language/statements/throw/S12.13_A2_T7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "throw Expression" returns (throw, GetValue(Result(1)), empty), where 1 evaluates Expression es5id: 12.13_A2_T7 diff --git a/js/src/tests/test262/language/statements/try/12.14-3.js b/js/src/tests/test262/language/statements/try/12.14-3.js index 8273993c918c..3e799519cfb2 100644 --- a/js/src/tests/test262/language/statements/try/12.14-3.js +++ b/js/src/tests/test262/language/statements/try/12.14-3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | local vars must not be visible outside with block local functions must not be visible outside with block local function expresssions should not be visible outside with block diff --git a/js/src/tests/test262/language/statements/try/12.14-4.js b/js/src/tests/test262/language/statements/try/12.14-4.js index 9a7ced2a4a8b..0a01749a41f6 100644 --- a/js/src/tests/test262/language/statements/try/12.14-4.js +++ b/js/src/tests/test262/language/statements/try/12.14-4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | local vars must not be visible outside with block local functions must not be visible outside with block local function expresssions should not be visible outside with block diff --git a/js/src/tests/test262/language/statements/try/12.14-6.js b/js/src/tests/test262/language/statements/try/12.14-6.js index 5a5a19e987e4..95f4a8ed6ea2 100644 --- a/js/src/tests/test262/language/statements/try/12.14-6.js +++ b/js/src/tests/test262/language/statements/try/12.14-6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | local vars must not be visible outside with block local functions must not be visible outside with block local function expresssions should not be visible outside with block diff --git a/js/src/tests/test262/language/statements/try/12.14-7.js b/js/src/tests/test262/language/statements/try/12.14-7.js index 95665b62e782..6f444447e6e2 100644 --- a/js/src/tests/test262/language/statements/try/12.14-7.js +++ b/js/src/tests/test262/language/statements/try/12.14-7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | local vars must not be visible outside with block local functions must not be visible outside with block local function expresssions should not be visible outside with block diff --git a/js/src/tests/test262/language/statements/try/12.14-8.js b/js/src/tests/test262/language/statements/try/12.14-8.js index f38bd22d8d02..4eca6770db5e 100644 --- a/js/src/tests/test262/language/statements/try/12.14-8.js +++ b/js/src/tests/test262/language/statements/try/12.14-8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | local vars must not be visible outside with block local functions must not be visible outside with block local function expresssions should not be visible outside with block diff --git a/js/src/tests/test262/language/statements/try/S12.14_A1.js b/js/src/tests/test262/language/statements/try/S12.14_A1.js index 923adcb94d2e..095f7765f81e 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A1.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production TryStatement : try Block Catch is evaluated as follows: 2. If Result(1).type is not throw, return Result(1) es5id: 12.14_A1 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A10_T1.js b/js/src/tests/test262/language/statements/try/S12.14_A10_T1.js index a75a153294b1..4c8391dde4b7 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A10_T1.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A10_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "while" statement es5id: 12.14_A10_T1 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A10_T2.js b/js/src/tests/test262/language/statements/try/S12.14_A10_T2.js index 10f5ad765d79..f06a6ec0a20d 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A10_T2.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A10_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "while" statement es5id: 12.14_A10_T2 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A10_T3.js b/js/src/tests/test262/language/statements/try/S12.14_A10_T3.js index 1a90a12e5160..d601e70d4509 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A10_T3.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A10_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "while" statement es5id: 12.14_A10_T3 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A10_T4.js b/js/src/tests/test262/language/statements/try/S12.14_A10_T4.js index f59208f7cdc8..d83c356bf51a 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A10_T4.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A10_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "while" statement es5id: 12.14_A10_T4 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A10_T5.js b/js/src/tests/test262/language/statements/try/S12.14_A10_T5.js index 7b8bed8898fb..d205a4afd458 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A10_T5.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A10_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "while" statement es5id: 12.14_A10_T5 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A11_T1.js b/js/src/tests/test262/language/statements/try/S12.14_A11_T1.js index 6f604058850a..0f0cadd830a8 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A11_T1.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A11_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for" statement es5id: 12.14_A11_T1 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A11_T2.js b/js/src/tests/test262/language/statements/try/S12.14_A11_T2.js index f971308db1f1..38f622714ccf 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A11_T2.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A11_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for" statement es5id: 12.14_A11_T2 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A11_T3.js b/js/src/tests/test262/language/statements/try/S12.14_A11_T3.js index bb21eeeb819a..d571a7858040 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A11_T3.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A11_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for" statement es5id: 12.14_A11_T3 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A11_T4.js b/js/src/tests/test262/language/statements/try/S12.14_A11_T4.js index c3390d7a1f6e..44b3447cb1b4 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A11_T4.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A11_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for" statement es5id: 12.14_A11_T4 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A12_T1.js b/js/src/tests/test262/language/statements/try/S12.14_A12_T1.js index 9611d40a229a..9bcde53b6905 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A12_T1.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for-in" statement es5id: 12.14_A12_T1 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A12_T2.js b/js/src/tests/test262/language/statements/try/S12.14_A12_T2.js index 63f64a563fa2..485d03642a73 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A12_T2.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for-in" statement es5id: 12.14_A12_T2 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A12_T3.js b/js/src/tests/test262/language/statements/try/S12.14_A12_T3.js index 5e46f1a771f7..0f05e816fefd 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A12_T3.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A12_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for-in" statement es5id: 12.14_A12_T3 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A12_T4.js b/js/src/tests/test262/language/statements/try/S12.14_A12_T4.js index 32f30255bddc..83ce8f64f61c 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A12_T4.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A12_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "for-in" statement es5id: 12.14_A12_T4 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A14.js b/js/src/tests/test262/language/statements/try/S12.14_A14.js index 5abcbce9843a..ae9a939b3db3 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A14.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A14.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "with" statement es5id: 12.14_A14 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A15.js b/js/src/tests/test262/language/statements/try/S12.14_A15.js index 05692c5284ab..3b4666d83095 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A15.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A15.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Using "try" with "catch" or "finally" statement within/without a "switch" statement es5id: 12.14_A15 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T1.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T1.js index aefb97dcb215..c9008fca5c4f 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T1.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T1 description: Checking if pure "try" syntax construction passes negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T10.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T10.js index 1b12e5292bf6..69d7dd51d754 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T10.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T10.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T10 description: "Catch: \"catch (Identifier ) Block\"" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T11.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T11.js index f2dd8cf45a2a..88679774228d 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T11.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T11.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T11 @@ -11,7 +11,7 @@ description: > Catch and Finally are placed into the Block of "try" (whitle expected outside) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T12.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T12.js index fda32d2a9e93..bc5c57383ede 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T12.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T12.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T12 description: Embedded "try" statements followed by two "catch" statements negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T13.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T13.js index 57671e240d9f..8fbc566ee31c 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T13.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T13.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T13 @@ -11,7 +11,7 @@ description: > Catch: "catch (Identifier ) Block". Checking if execution of "22" passes at the place of Identifier of "catch" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T14.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T14.js index c16d54d6103d..6d0851b1d093 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T14.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T14.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T14 description: Checking if passing argument to "try" statement fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T15.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T15.js index 28b1db268be9..0c89e34db042 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T15.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T15.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T15 @@ -11,7 +11,7 @@ description: > Finally: "finally Block". Checking if passing argument to "try" statement fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T2.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T2.js index e5022a48d605..6e88fa4d57e2 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T2.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T2.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T2 description: Checking if execution of "catch" with no "try" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T3.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T3.js index 8a3aacd9a928..5a7a29aeb7b9 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T3.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T3.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T3 description: Checking if execution of "finally" with no "try" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T5.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T5.js index 2a050f4a6b32..7f186d9dfebc 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T5.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T5.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T5 @@ -11,7 +11,7 @@ description: > Catch: "catch (Identifier ) Block". Checking if execution of "catch" with no Block fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T6.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T6.js index a5df8f482101..8623755c725a 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T6.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T6.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T6 @@ -11,7 +11,7 @@ description: > Block: "{ StatementList }". Checking if execution of "try{ catch{}{}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T7.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T7.js index 0091329d6e10..c55076b12850 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T7.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T7.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T7 @@ -11,7 +11,7 @@ description: > Block: "{ StatementList }". Checking if execution of "try{} catch(){" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T8.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T8.js index e45ac62aa703..c250e2df2938 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T8.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T8.js @@ -3,7 +3,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T8 @@ -11,7 +11,7 @@ description: > Block: "{ StatementList }". Catch: "catch (Identifier ) Block". Checking if execution of "try{} catch(){finally{}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A16_T9.js b/js/src/tests/test262/language/statements/try/S12.14_A16_T9.js index 28702d16718a..7ae885ef7fd1 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A16_T9.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A16_T9.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | TryStatement: "try Block Catch" or "try Block Finally" or "try Block Catch Finally" es5id: 12.14_A16_T9 description: Checking if execution of "catch(){} finally{}" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/S12.14_A5.js b/js/src/tests/test262/language/statements/try/S12.14_A5.js index 2b0f48b8107c..14f5a256e125 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A5.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The production TryStatement: "try Block Finally" and the production TryStatement: "try Block Catch Finally" es5id: 12.14_A5 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A9_T1.js b/js/src/tests/test262/language/statements/try/S12.14_A9_T1.js index 71f81d83da36..46fb55175b12 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A9_T1.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A9_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "try" with "catch" or "finally" statement within/without an "do while" statement es5id: 12.14_A9_T1 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A9_T2.js b/js/src/tests/test262/language/statements/try/S12.14_A9_T2.js index 3457f5b91e04..effd74b95351 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A9_T2.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A9_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "try" with "catch" or "finally" statement within/without an "do while" statement es5id: 12.14_A9_T2 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A9_T3.js b/js/src/tests/test262/language/statements/try/S12.14_A9_T3.js index 0f94cf772548..88a99bff5f2d 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A9_T3.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A9_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "try" with "catch" or "finally" statement within/without an "do while" statement es5id: 12.14_A9_T3 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A9_T4.js b/js/src/tests/test262/language/statements/try/S12.14_A9_T4.js index 251abf5e6de4..9d353f914195 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A9_T4.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A9_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "try" with "catch" or "finally" statement within/without an "do while" statement es5id: 12.14_A9_T4 diff --git a/js/src/tests/test262/language/statements/try/S12.14_A9_T5.js b/js/src/tests/test262/language/statements/try/S12.14_A9_T5.js index 477eced30994..2859137b3e7a 100644 --- a/js/src/tests/test262/language/statements/try/S12.14_A9_T5.js +++ b/js/src/tests/test262/language/statements/try/S12.14_A9_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "try" with "catch" or "finally" statement within/without an "do while" statement es5id: 12.14_A9_T5 diff --git a/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early-strict.js b/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early-strict.js index 05c7a03b29ec..e6c19617fc65 100644 --- a/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early-strict.js +++ b/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-arguments-negative-early-strict.js @@ -8,7 +8,7 @@ esid: sec-strict-mode-of-ecmascript description: > It is a SyntaxError if a CatchParameter occurs within strict mode code and BoundNames of CatchParameter contains either eval or arguments (13.15.1). negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early-strict.js b/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early-strict.js index c6c8afde1d83..68c64471b0a8 100644 --- a/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early-strict.js +++ b/js/src/tests/test262/language/statements/try/catch-parameter-boundnames-restriction-eval-negative-early-strict.js @@ -8,7 +8,7 @@ esid: sec-strict-mode-of-ecmascript description: > It is a SyntaxError if a CatchParameter occurs within strict mode code and BoundNames of CatchParameter contains either eval or arguments (13.15.1). negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/try/cptn-catch-empty-break.js b/js/src/tests/test262/language/statements/try/cptn-catch-empty-break.js new file mode 100644 index 000000000000..6023c27da774 --- /dev/null +++ b/js/src/tests/test262/language/statements/try/cptn-catch-empty-break.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-try-statement-runtime-semantics-evaluation +description: Abrupt completion from catch block calls UpdatEmpty() +info: | + 13.15.8 Runtime Semantics: Evaluation + TryStatement : try Block Catch + ... + 2. If B.[[Type]] is throw, let C be CatchClauseEvaluation of Catch with parameter B.[[Value]]. + ... + 4. Return Completion(UpdateEmpty(C, undefined)). +---*/ + +// Ensure the completion value from the first iteration ('bad completion') is not returned. +var completion = eval("for (var i = 0; i < 2; ++i) { if (i) { try { throw null; } catch (e) { break; } } 'bad completion'; }"); +assert.sameValue(completion, undefined); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/try/cptn-catch-empty-continue.js b/js/src/tests/test262/language/statements/try/cptn-catch-empty-continue.js new file mode 100644 index 000000000000..74c60141f7a5 --- /dev/null +++ b/js/src/tests/test262/language/statements/try/cptn-catch-empty-continue.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-try-statement-runtime-semantics-evaluation +description: Abrupt completion from catch block calls UpdatEmpty() +info: | + 13.15.8 Runtime Semantics: Evaluation + TryStatement : try Block Catch + ... + 2. If B.[[Type]] is throw, let C be CatchClauseEvaluation of Catch with parameter B.[[Value]]. + ... + 4. Return Completion(UpdateEmpty(C, undefined)). +---*/ + +// Ensure the completion value from the first iteration ('bad completion') is not returned. +var completion = eval("for (var i = 0; i < 2; ++i) { if (i) { try { throw null; } catch (e) { continue; } } 'bad completion'; }"); +assert.sameValue(completion, undefined); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/try/cptn-catch-finally-empty-break.js b/js/src/tests/test262/language/statements/try/cptn-catch-finally-empty-break.js new file mode 100644 index 000000000000..b666c9435d51 --- /dev/null +++ b/js/src/tests/test262/language/statements/try/cptn-catch-finally-empty-break.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-try-statement-runtime-semantics-evaluation +description: Abrupt completion from finally block calls UpdatEmpty() +info: | + 13.15.8 Runtime Semantics: Evaluation + TryStatement : try Block Catch Finally + ... + 4. Let F be the result of evaluating Finally. + ... + 6. Return Completion(UpdateEmpty(F, undefined)). +---*/ + +// Ensure the completion value from the first iteration ('bad completion') is not returned. +var completion = eval("for (var i = 0; i < 2; ++i) { if (i) { try { throw null; } catch (e) {} finally { break; } } 'bad completion'; }"); +assert.sameValue(completion, undefined); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/try/cptn-catch-finally-empty-continue.js b/js/src/tests/test262/language/statements/try/cptn-catch-finally-empty-continue.js new file mode 100644 index 000000000000..e4b4856ee7b8 --- /dev/null +++ b/js/src/tests/test262/language/statements/try/cptn-catch-finally-empty-continue.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-try-statement-runtime-semantics-evaluation +description: Abrupt completion from finally block calls UpdatEmpty() +info: | + 13.15.8 Runtime Semantics: Evaluation + TryStatement : try Block Catch Finally + ... + 4. Let F be the result of evaluating Finally. + ... + 6. Return Completion(UpdateEmpty(F, undefined)). +---*/ + +// Ensure the completion value from the first iteration ('bad completion') is not returned. +var completion = eval("for (var i = 0; i < 2; ++i) { if (i) { try { throw null; } catch (e) {} finally { continue; } } 'bad completion'; }"); +assert.sameValue(completion, undefined); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/try/cptn-catch.js b/js/src/tests/test262/language/statements/try/cptn-catch.js index fc7790d183b1..464e8942b080 100644 --- a/js/src/tests/test262/language/statements/try/cptn-catch.js +++ b/js/src/tests/test262/language/statements/try/cptn-catch.js @@ -3,7 +3,7 @@ /*--- es6id: 13.15.8 description: Completion value from `catch` clause of a try..catch statement -info: > +info: | TryStatement : try Block Catch 1. Let B be the result of evaluating Block. diff --git a/js/src/tests/test262/language/statements/try/cptn-finally-empty-break.js b/js/src/tests/test262/language/statements/try/cptn-finally-empty-break.js new file mode 100644 index 000000000000..ce20a53a84be --- /dev/null +++ b/js/src/tests/test262/language/statements/try/cptn-finally-empty-break.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-try-statement-runtime-semantics-evaluation +description: Abrupt completion from finally block calls UpdatEmpty() +info: | + 13.15.8 Runtime Semantics: Evaluation + TryStatement : try Block Finally + ... + 2. Let F be the result of evaluating Finally. + ... + 4. Return Completion(UpdateEmpty(F, undefined)). +---*/ + +// Ensure the completion value from the first iteration ('bad completion') is not returned. +var completion = eval("for (var i = 0; i < 2; ++i) { if (i) { try {} finally { break; } } 'bad completion'; }"); +assert.sameValue(completion, undefined); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/try/cptn-finally-empty-continue.js b/js/src/tests/test262/language/statements/try/cptn-finally-empty-continue.js new file mode 100644 index 000000000000..8a1e40811699 --- /dev/null +++ b/js/src/tests/test262/language/statements/try/cptn-finally-empty-continue.js @@ -0,0 +1,20 @@ +// Copyright (C) 2017 André Bargull. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-try-statement-runtime-semantics-evaluation +description: Abrupt completion from finally block calls UpdatEmpty() +info: | + 13.15.8 Runtime Semantics: Evaluation + TryStatement : try Block Finally + ... + 2. Let F be the result of evaluating Finally. + ... + 4. Return Completion(UpdateEmpty(F, undefined)). +---*/ + +// Ensure the completion value from the first iteration ('bad completion') is not returned. +var completion = eval("for (var i = 0; i < 2; ++i) { if (i) { try {} finally { continue; } } 'bad completion'; }"); +assert.sameValue(completion, undefined); + +reportCompare(0, 0); diff --git a/js/src/tests/test262/language/statements/try/cptn-finally-from-catch.js b/js/src/tests/test262/language/statements/try/cptn-finally-from-catch.js index 3843a1aeb00d..ef997301b913 100644 --- a/js/src/tests/test262/language/statements/try/cptn-finally-from-catch.js +++ b/js/src/tests/test262/language/statements/try/cptn-finally-from-catch.js @@ -5,7 +5,7 @@ es6id: 13.15.8 description: > Completion value from `finally` clause of a try..catch..finally statement (following execution of `catch` block) -info: > +info: | TryStatement : try Block Catch Finally 1. Let B be the result of evaluating Block. diff --git a/js/src/tests/test262/language/statements/try/cptn-finally-skip-catch.js b/js/src/tests/test262/language/statements/try/cptn-finally-skip-catch.js index a2ee4af4b985..3fac6eaa32b8 100644 --- a/js/src/tests/test262/language/statements/try/cptn-finally-skip-catch.js +++ b/js/src/tests/test262/language/statements/try/cptn-finally-skip-catch.js @@ -5,7 +5,7 @@ es6id: 13.15.8 description: > Completion value from `finally` clause of a try..catch..finally statement (when `catch` block is not executed) -info: > +info: | TryStatement : try Block Catch Finally 1. Let B be the result of evaluating Block. diff --git a/js/src/tests/test262/language/statements/try/cptn-finally-wo-catch.js b/js/src/tests/test262/language/statements/try/cptn-finally-wo-catch.js index 1032cae2564d..3cf191337a63 100644 --- a/js/src/tests/test262/language/statements/try/cptn-finally-wo-catch.js +++ b/js/src/tests/test262/language/statements/try/cptn-finally-wo-catch.js @@ -3,7 +3,7 @@ /*--- es6id: 13.15.8 description: Completion value from `finally` clause of a try..finally statement -info: > +info: | TryStatement : try Block Finally 1. Let B be the result of evaluating Block. diff --git a/js/src/tests/test262/language/statements/try/cptn-try.js b/js/src/tests/test262/language/statements/try/cptn-try.js index 56498d1a1707..50b5ac482816 100644 --- a/js/src/tests/test262/language/statements/try/cptn-try.js +++ b/js/src/tests/test262/language/statements/try/cptn-try.js @@ -3,7 +3,7 @@ /*--- es6id: 13.15.8 description: Completion value from `try` clause of a try..catch statement -info: > +info: | TryStatement : try Block Catch 1. Let B be the result of evaluating Block. diff --git a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-ary.js index 0c6aa6f5090e..4b44b2e99ab4 100644 --- a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.15.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Catch : catch ( CatchParameter ) Block diff --git a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-id.js index 8cbc4755e4ba..153efb4bed2e 100644 --- a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.15.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Catch : catch ( CatchParameter ) Block diff --git a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-obj.js index 68a4c82c1063..31a0404d5b6a 100644 --- a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.15.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Catch : catch ( CatchParameter ) Block diff --git a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-ary.js index a6934097dc65..6284ac7a4074 100644 --- a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.15.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Catch : catch ( CatchParameter ) Block diff --git a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-id.js index 385bbe1a9547..b8698f663be1 100644 --- a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.15.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Catch : catch ( CatchParameter ) Block diff --git a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-obj.js index 79a4e2111b02..d4062e6f2511 100644 --- a/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/try/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.15.7 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | Catch : catch ( CatchParameter ) Block diff --git a/js/src/tests/test262/language/statements/try/early-catch-duplicates.js b/js/src/tests/test262/language/statements/try/early-catch-duplicates.js index f410ac4fed5a..fd4e2be77d20 100644 --- a/js/src/tests/test262/language/statements/try/early-catch-duplicates.js +++ b/js/src/tests/test262/language/statements/try/early-catch-duplicates.js @@ -8,7 +8,7 @@ description: > It is a Syntax Error if BoundNames of CatchParameter contains any duplicate elements. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/early-catch-lex.js b/js/src/tests/test262/language/statements/try/early-catch-lex.js index 8dc927798464..1b1de793acf3 100644 --- a/js/src/tests/test262/language/statements/try/early-catch-lex.js +++ b/js/src/tests/test262/language/statements/try/early-catch-lex.js @@ -8,7 +8,7 @@ description: > It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the LexicallyDeclaredNames of Block. negative: - phase: early + phase: parse type: SyntaxError features: [let] ---*/ diff --git a/js/src/tests/test262/language/statements/try/early-catch-var.js b/js/src/tests/test262/language/statements/try/early-catch-var.js index 3870e7fe06c1..f7345f09fa18 100644 --- a/js/src/tests/test262/language/statements/try/early-catch-var.js +++ b/js/src/tests/test262/language/statements/try/early-catch-var.js @@ -7,13 +7,13 @@ es6id: 13.15.1 description: > It is a Syntax Error if any element of the BoundNames of CatchParameter also occurs in the VarDeclaredNames of Block. -info: > +info: | Annex B extensions permit re-declarations from VariableStatement, the VariableDeclarationList of a for statement, and the ForBinding of a for-of statement. Bindings from the ForBinding of a for-in statement are restricted regardless of the application of Annex B. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/optional-catch-binding-parens.js b/js/src/tests/test262/language/statements/try/optional-catch-binding-parens.js index 8460aa0e8905..fea1df8cc645 100644 --- a/js/src/tests/test262/language/statements/try/optional-catch-binding-parens.js +++ b/js/src/tests/test262/language/statements/try/optional-catch-binding-parens.js @@ -12,7 +12,7 @@ info: | Catch[Yield, Await, Return]: catch ( CatchParameter[?Yield, ?Await] ) Block[?Yield, ?Await, ?Return] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/try/tco-catch-finally-strict.js b/js/src/tests/test262/language/statements/try/tco-catch-finally-strict.js index a07f40cdda68..3366875c072b 100644 --- a/js/src/tests/test262/language/statements/try/tco-catch-finally-strict.js +++ b/js/src/tests/test262/language/statements/try/tco-catch-finally-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/try/tco-catch-strict.js b/js/src/tests/test262/language/statements/try/tco-catch-strict.js index 319c8c18b63f..63523c0f8eee 100644 --- a/js/src/tests/test262/language/statements/try/tco-catch-strict.js +++ b/js/src/tests/test262/language/statements/try/tco-catch-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/try/tco-finally-strict.js b/js/src/tests/test262/language/statements/try/tco-finally-strict.js index b4add8f0ab3b..125d808f71b0 100644 --- a/js/src/tests/test262/language/statements/try/tco-finally-strict.js +++ b/js/src/tests/test262/language/statements/try/tco-finally-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/variable/12.2.1-1gs-strict.js b/js/src/tests/test262/language/statements/variable/12.2.1-1gs-strict.js index 4ca463ae0fda..33676662b964 100644 --- a/js/src/tests/test262/language/statements/variable/12.2.1-1gs-strict.js +++ b/js/src/tests/test262/language/statements/variable/12.2.1-1gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is thrown if a VariableDeclaration occurs within strict code and its Identifier is eval negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/variable/12.2.1-4gs-strict.js b/js/src/tests/test262/language/statements/variable/12.2.1-4gs-strict.js index 49afaccd63ee..15140803dbce 100644 --- a/js/src/tests/test262/language/statements/variable/12.2.1-4gs-strict.js +++ b/js/src/tests/test262/language/statements/variable/12.2.1-4gs-strict.js @@ -9,7 +9,7 @@ description: > Strict Mode - SyntaxError is thrown if a VariableDeclarationNoIn occurs within strict code and its Identifier is arguments negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A1.js b/js/src/tests/test262/language/statements/variable/S12.2_A1.js index d88f508dddd5..2e2708915de2 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A1.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Variables are created when the program is entered. Variables are initialised to "undefined" when created. A variable with an Initialiser is assigned the value of its AssignmentExpression when the VariableStatement is executed, not when the variable is created diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A2.js b/js/src/tests/test262/language/statements/variable/S12.2_A2.js index b4f0b9c37808..c9fb125807ad 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A2.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Variables are defined with global scope (that is, they are created as members of the global object, as described in 10.1.3) using property attributes { DontDelete} diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A5.js b/js/src/tests/test262/language/statements/variable/S12.2_A5.js index 7a8a9d2b990d..3e79ac8ac0f3 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A5.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | VariableDeclaration within Eval statement is initialized as the program reaches the eval statement es5id: 12.2_A5 diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T1.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T1.js index 4e8406624956..226257144fa6 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T1.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T1.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T1 description: Checking if execution of "var x += 1" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T2.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T2.js index 82a2ebf69d8a..6acfad905610 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T2.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T2.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T2 description: Checking if execution of "var x | true" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T3.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T3.js index dc6225922fa2..4d6f68a0257b 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T3.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T3.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T3 description: Checking if execution of "var x && 1" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T4.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T4.js index 63417b0053b8..d044ea0a4f3d 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T4.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T4.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T4 description: Checking if execution of "var x++" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T5.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T5.js index 2c8ff5328fd2..43147369ba44 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T5.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T5.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T5 description: Checking if execution of "var --x" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T6.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T6.js index 560ec3e76f39..9c1616753129 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T6.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T6.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T6 description: Checking if execution of "var x*1" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T7.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T7.js index fb7de688d557..c7c97901f663 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T7.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T7.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T7 description: Checking if execution of "var x>>1" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/S12.2_A8_T8.js b/js/src/tests/test262/language/statements/variable/S12.2_A8_T8.js index db4ce7e712e0..4486224b4588 100644 --- a/js/src/tests/test262/language/statements/variable/S12.2_A8_T8.js +++ b/js/src/tests/test262/language/statements/variable/S12.2_A8_T8.js @@ -7,7 +7,7 @@ info: Only AssignmentExpression is admitted when variable is initialized es5id: 12.2_A8_T8 description: Checking if execution of "var x in __arr" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-ary.js b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-ary.js index 41469c7a3a90..a8b27b8d17e1 100644 --- a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-ary.js +++ b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-ary.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-id.js b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-id.js index 3fc6a9ccf670..5de2231e2cf6 100644 --- a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-id.js +++ b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-id.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-obj.js b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-obj.js index b2c0f976523d..10df1db0dd24 100644 --- a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-obj.js +++ b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-init-obj.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-ary.js b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-ary.js index 506a55485b95..ab254e75af78 100644 --- a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-ary.js +++ b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-ary.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-id.js b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-id.js index f8964295019c..d50b70c5f90e 100644 --- a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-id.js +++ b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-id.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-obj.js b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-obj.js index 0293fbfd1051..f344130cccee 100644 --- a/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-obj.js +++ b/js/src/tests/test262/language/statements/variable/dstr-ary-ptrn-rest-not-final-obj.js @@ -9,7 +9,7 @@ es6id: 13.3.2.4 features: [destructuring-binding] flags: [generated] negative: - phase: early + phase: parse type: SyntaxError info: | VariableDeclaration : BindingPattern Initializer diff --git a/js/src/tests/test262/language/statements/variable/fn-name-arrow.js b/js/src/tests/test262/language/statements/variable/fn-name-arrow.js index 1b8b875c4719..871c30ececaf 100644 --- a/js/src/tests/test262/language/statements/variable/fn-name-arrow.js +++ b/js/src/tests/test262/language/statements/variable/fn-name-arrow.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.2.4 description: Assignment of function `name` attribute (ArrowFunction) -info: > +info: | VariableDeclaration : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/variable/fn-name-class.js b/js/src/tests/test262/language/statements/variable/fn-name-class.js index a776e0335cd9..5b8086b264ee 100644 --- a/js/src/tests/test262/language/statements/variable/fn-name-class.js +++ b/js/src/tests/test262/language/statements/variable/fn-name-class.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.2.4 description: Assignment of function `name` attribute (ClassExpression) -info: > +info: | VariableDeclaration : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/variable/fn-name-cover.js b/js/src/tests/test262/language/statements/variable/fn-name-cover.js index 1c15f22411d3..a7751c981ea6 100644 --- a/js/src/tests/test262/language/statements/variable/fn-name-cover.js +++ b/js/src/tests/test262/language/statements/variable/fn-name-cover.js @@ -5,7 +5,7 @@ es6id: 13.3.2.4 description: > Assignment of function `name` attribute (CoverParenthesizedExpression) -info: > +info: | VariableDeclaration : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/variable/fn-name-fn.js b/js/src/tests/test262/language/statements/variable/fn-name-fn.js index 9c4328d9f5a4..06c0f4c0dc40 100644 --- a/js/src/tests/test262/language/statements/variable/fn-name-fn.js +++ b/js/src/tests/test262/language/statements/variable/fn-name-fn.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.2.4 description: Assignment of function `name` attribute (FunctionExpression) -info: > +info: | VariableDeclaration : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/variable/fn-name-gen.js b/js/src/tests/test262/language/statements/variable/fn-name-gen.js index c07e248fd46a..dc3eba1c17ff 100644 --- a/js/src/tests/test262/language/statements/variable/fn-name-gen.js +++ b/js/src/tests/test262/language/statements/variable/fn-name-gen.js @@ -4,7 +4,7 @@ /*--- es6id: 13.3.2.4 description: Assignment of function `name` attribute (GeneratorExpression) -info: > +info: | VariableDeclaration : BindingIdentifier Initializer [...] diff --git a/js/src/tests/test262/language/statements/variable/id-arguments-strict-strict.js b/js/src/tests/test262/language/statements/variable/id-arguments-strict-strict.js new file mode 100644 index 000000000000..257263586d60 --- /dev/null +++ b/js/src/tests/test262/language/statements/variable/id-arguments-strict-strict.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es5id: 11.13.1-4-28-s +description: > + Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears + as the LeftHandSideExpression of simple assignment(=) under strict mode +negative: + phase: early + type: SyntaxError +flags: [onlyStrict] +---*/ + +throw "Test262: This statement should not be evaluated."; + +var arguments; diff --git a/js/src/tests/test262/language/statements/variable/id-eval-strict-strict.js b/js/src/tests/test262/language/statements/variable/id-eval-strict-strict.js new file mode 100644 index 000000000000..de01a0ea645a --- /dev/null +++ b/js/src/tests/test262/language/statements/variable/id-eval-strict-strict.js @@ -0,0 +1,18 @@ +// |reftest| error:SyntaxError +'use strict'; +// Copyright (c) 2012 Ecma International. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +es5id: 11.13.1-4-28-s +description: > + Strict Mode - SyntaxError is thrown if the identifier 'eval' appears as the + LeftHandSideExpression of simple assignment(=) under strict mode +negative: + phase: early + type: SyntaxError +flags: [onlyStrict] +---*/ + +throw "Test262: This statement should not be evaluated."; + +var eval; diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A1.js b/js/src/tests/test262/language/statements/while/S12.6.2_A1.js index 1bdb0e03e457..cb64818637cb 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A1.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Expression from "while" IterationStatement is evaluated first; "false", "0", "null", "undefined" and "empty" strings used as the Expression are evaluated to "false" diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A10.js b/js/src/tests/test262/language/statements/while/S12.6.2_A10.js index 27ccf46b18e4..0ca46ae2efa1 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A10.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A10.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | FunctionExpression within a "while" IterationStatement is allowed, but no function with the given name will appear in the global context es5id: 12.6.2_A10 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A15.js b/js/src/tests/test262/language/statements/while/S12.6.2_A15.js index d44934f3b045..36108faff35b 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A15.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A15.js @@ -7,7 +7,7 @@ info: Block within a "while" Expression is not allowed es5id: 12.6.2_A15 description: Expression is "{0}" negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A2.js b/js/src/tests/test262/language/statements/while/S12.6.2_A2.js index 8e1bb609ebf0..e063bd5baa18 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A2.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While evaluating The production IterationStatement: "while ( Expression ) Statement", Expression is evaluated first es5id: 12.6.2_A2 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A3.js b/js/src/tests/test262/language/statements/while/S12.6.2_A3.js index 5b2ca7741c1f..25c6aa9bc8df 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A3.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | When "while" IterationStatement is evaluated, (normal, V, empty) is returned es5id: 12.6.2_A3 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T1.js b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T1.js index a0c39aa559c0..724a98241049 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T1.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "while" Statement is allowed and performed as described in 12.8 es5id: 12.6.2_A4_T1 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T2.js b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T2.js index ba2b25c6a46b..183390999882 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T2.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "while" Statement is allowed and performed as described in 12.8 es5id: 12.6.2_A4_T2 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T3.js b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T3.js index bdbaf4f5698a..3c9cf024e12c 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T3.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "while" Statement is allowed and performed as described in 12.8 es5id: 12.6.2_A4_T3 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T4.js b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T4.js index 00b62fcca951..293d505d9f00 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T4.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "while" Statement is allowed and performed as described in 12.8 es5id: 12.6.2_A4_T4 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T5.js b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T5.js index 5c12b12a2a1c..cf4b884c266c 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A4_T5.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | "break" within a "while" Statement is allowed and performed as described in 12.8 es5id: 12.6.2_A4_T5 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A5.js b/js/src/tests/test262/language/statements/while/S12.6.2_A5.js index 041ae35a3e22..f6ffabfb9b66 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A5.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | While using "while" within an eval statement, source "break" is allowed and (normal, V, empty) is returned es5id: 12.6.2_A5 diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T1.js b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T1.js index 14611e3332fa..9d371bf8f97c 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T1.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T1.js @@ -7,7 +7,7 @@ info: Expression in "while" IterationStatement is bracketed with braces es5id: 12.6.2_A6_T1 description: Checking if execution of "while 1 break" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T2.js b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T2.js index c7fc282c8c65..4fd9676da0d2 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T2.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T2.js @@ -7,7 +7,7 @@ info: Expression in "while" IterationStatement is bracketed with braces es5id: 12.6.2_A6_T2 description: Checking if execution of "while 0 break" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T3.js b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T3.js index 01fda5c42250..57ce0a634660 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T3.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T3.js @@ -7,7 +7,7 @@ info: Expression in "while" IterationStatement is bracketed with braces es5id: 12.6.2_A6_T3 description: Checking if execution of "while true break" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T4.js b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T4.js index 9e23c3c18619..aa3e3e5564ce 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T4.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T4.js @@ -7,7 +7,7 @@ info: Expression in "while" IterationStatement is bracketed with braces es5id: 12.6.2_A6_T4 description: Checking if execution of "while false break" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T5.js b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T5.js index 96c2caa7a527..210952e45ee2 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T5.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T5.js @@ -7,7 +7,7 @@ info: Expression in "while" IterationStatement is bracketed with braces es5id: 12.6.2_A6_T5 description: Checking if execution of "while '' break" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T6.js b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T6.js index cdab12c67606..763550700b33 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A6_T6.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A6_T6.js @@ -7,7 +7,7 @@ info: Expression in "while" IterationStatement is bracketed with braces es5id: 12.6.2_A6_T6 description: Checking if execution of "while 'hood' break" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/S12.6.2_A7.js b/js/src/tests/test262/language/statements/while/S12.6.2_A7.js index eb237a047428..827e449d81a7 100644 --- a/js/src/tests/test262/language/statements/while/S12.6.2_A7.js +++ b/js/src/tests/test262/language/statements/while/S12.6.2_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The "while" Statement is evaluted according to 12.6.2 and returns (normal, V, empty) es5id: 12.6.2_A7 diff --git a/js/src/tests/test262/language/statements/while/cptn-abrupt-empty.js b/js/src/tests/test262/language/statements/while/cptn-abrupt-empty.js index d76046a5e734..3ac896306870 100644 --- a/js/src/tests/test262/language/statements/while/cptn-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/while/cptn-abrupt-empty.js @@ -4,7 +4,7 @@ es6id: 13.7.3.6 description: > Completion value when iteration completes due to an empty abrupt completion -info: > +info: | IterationStatement : while ( Expression ) Statement 1. Let V = undefined. diff --git a/js/src/tests/test262/language/statements/while/cptn-iter.js b/js/src/tests/test262/language/statements/while/cptn-iter.js index fe6ceb93de1a..37ad74646b61 100644 --- a/js/src/tests/test262/language/statements/while/cptn-iter.js +++ b/js/src/tests/test262/language/statements/while/cptn-iter.js @@ -4,7 +4,7 @@ es6id: 13.7.3.6 description: > Completion value when iteration completes due to expression value -info: > +info: | IterationStatement : while ( Expression ) Statement 1. Let V = undefined. diff --git a/js/src/tests/test262/language/statements/while/cptn-no-iter.js b/js/src/tests/test262/language/statements/while/cptn-no-iter.js index f10b5138b0e9..79ca3de7c8d1 100644 --- a/js/src/tests/test262/language/statements/while/cptn-no-iter.js +++ b/js/src/tests/test262/language/statements/while/cptn-no-iter.js @@ -4,7 +4,7 @@ es6id: 13.7.3.6 description: > Completion value when no iteration occurs -info: > +info: | IterationStatement : while ( Expression ) Statement 1. Let V = undefined. diff --git a/js/src/tests/test262/language/statements/while/decl-async-fun.js b/js/src/tests/test262/language/statements/while/decl-async-fun.js index b774a28cce1b..1e4ca345b4df 100644 --- a/js/src/tests/test262/language/statements/while/decl-async-fun.js +++ b/js/src/tests/test262/language/statements/while/decl-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] ---*/ diff --git a/js/src/tests/test262/language/statements/while/decl-async-gen.js b/js/src/tests/test262/language/statements/while/decl-async-gen.js index 83bd970dec0b..60b15e046598 100644 --- a/js/src/tests/test262/language/statements/while/decl-async-gen.js +++ b/js/src/tests/test262/language/statements/while/decl-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] ---*/ diff --git a/js/src/tests/test262/language/statements/while/decl-cls.js b/js/src/tests/test262/language/statements/while/decl-cls.js index 95109f54410f..bd1c5f45c068 100644 --- a/js/src/tests/test262/language/statements/while/decl-cls.js +++ b/js/src/tests/test262/language/statements/while/decl-cls.js @@ -6,7 +6,7 @@ description: Class declaration not allowed in statement position esid: sec-while-statement es6id: 13.7.3 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/decl-const.js b/js/src/tests/test262/language/statements/while/decl-const.js index 4da84ba00436..0f026642002a 100644 --- a/js/src/tests/test262/language/statements/while/decl-const.js +++ b/js/src/tests/test262/language/statements/while/decl-const.js @@ -6,7 +6,7 @@ description: Lexical declaration (const) not allowed in statement position esid: sec-while-statement es6id: 13.7.3 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/decl-fun.js b/js/src/tests/test262/language/statements/while/decl-fun.js index fb4c9eff7221..ac13e000838d 100644 --- a/js/src/tests/test262/language/statements/while/decl-fun.js +++ b/js/src/tests/test262/language/statements/while/decl-fun.js @@ -6,7 +6,7 @@ description: Function declaration not allowed in statement position esid: sec-while-statement es6id: 13.7.3 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/decl-gen.js b/js/src/tests/test262/language/statements/while/decl-gen.js index f59c50f66820..ea17f6121584 100644 --- a/js/src/tests/test262/language/statements/while/decl-gen.js +++ b/js/src/tests/test262/language/statements/while/decl-gen.js @@ -6,7 +6,7 @@ description: Generator declaration not allowed in statement position esid: sec-while-statement es6id: 13.7.3 negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/while/decl-let.js b/js/src/tests/test262/language/statements/while/decl-let.js index d6326532b122..0c8d63829ee8 100644 --- a/js/src/tests/test262/language/statements/while/decl-let.js +++ b/js/src/tests/test262/language/statements/while/decl-let.js @@ -6,7 +6,7 @@ description: Lexical declaration (let) not allowed in statement position esid: sec-while-statement es6id: 13.7.3 negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/while/labelled-fn-stmt.js b/js/src/tests/test262/language/statements/while/labelled-fn-stmt.js index f61ad60a5ad8..265b277484f3 100644 --- a/js/src/tests/test262/language/statements/while/labelled-fn-stmt.js +++ b/js/src/tests/test262/language/statements/while/labelled-fn-stmt.js @@ -4,11 +4,11 @@ /*--- description: It is a Syntax Error if IsLabelledFunction(Statement) is true. negative: - phase: early + phase: parse type: SyntaxError esid: sec-semantics-static-semantics-early-errors es6id: 13.7.1.1 -info: > +info: | Although Annex B describes an extension which permits labelled function declarations outside of strict mode, this early error is applied regardless of the language mode. diff --git a/js/src/tests/test262/language/statements/while/let-array-with-newline.js b/js/src/tests/test262/language/statements/while/let-array-with-newline.js index fea42b46b49c..f01cce0938b6 100644 --- a/js/src/tests/test262/language/statements/while/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/while/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/while/tco-body-strict.js b/js/src/tests/test262/language/statements/while/tco-body-strict.js index 15bceeb67034..89d01601de50 100644 --- a/js/src/tests/test262/language/statements/while/tco-body-strict.js +++ b/js/src/tests/test262/language/statements/while/tco-body-strict.js @@ -4,7 +4,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- description: Statement within statement is a candidate for tail-call optimization. -esid: static-semantics-hasproductionintailposition +esid: sec-static-semantics-hascallintailposition flags: [onlyStrict] features: [tail-call-optimization] includes: [tcoHelper.js] diff --git a/js/src/tests/test262/language/statements/with/12.10.1-11gs-strict.js b/js/src/tests/test262/language/statements/with/12.10.1-11gs-strict.js index 51493bc19be2..4a4e54548c4d 100644 --- a/js/src/tests/test262/language/statements/with/12.10.1-11gs-strict.js +++ b/js/src/tests/test262/language/statements/with/12.10.1-11gs-strict.js @@ -7,7 +7,7 @@ es5id: 12.10.1-11gs description: Strict Mode - SyntaxError is thrown when using with statement negative: - phase: early + phase: parse type: SyntaxError flags: [onlyStrict] ---*/ diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T1.js index 100d970d2803..4ef5da387428 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.10_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T2.js index 5a8805911ac9..af21ecb6862b 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.10_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T3.js index 1ecba3a9c925..de57875b1ff1 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.10_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T4.js index 8ceaecd527f2..c28daa951ad8 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.10_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T5.js index 4a0084bcc215..e89c2709e1ee 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.10_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.10_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.10_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T1.js index 85ff5b322574..a55b30becc78 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.11_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T2.js index 25b007cd6806..6622034bead1 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.11_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T3.js index 7db9b56b566b..60aad8692310 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.11_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T4.js index 3c6ffbcf5ef9..b58ba301f319 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.11_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T5.js index fe37b087c95d..6937e6192094 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.11_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.11_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.11_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T1.js index be6103680176..0ed91f549517 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.12_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T2.js index 1469cb84ba7b..0a01625dbe16 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.12_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T3.js index 0cc14e128cf4..34cb4ae2b923 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.12_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T4.js index 20b1bb57dd45..b90e0a305f95 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.12_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T5.js index 58e7a7abc54b..80975015e7b9 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.12_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.12_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.12_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.1_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.1_T1.js index 71a656bebae7..c3b723c90018 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.1_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.1_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.1_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.1_T2.js index 194a48b8a673..6bd711ec2720 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.1_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.1_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.1_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.1_T3.js index 34d2274ccc56..b8a0de0dc20d 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.1_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.1_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T1.js index 4fc6d63d4b63..cf5594906a8a 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.2_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T2.js index d7f041ffbf49..b0e0098f3424 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.2_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T3.js index 176fbad5b452..820147f21d21 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.2_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T4.js index 7ccc17274597..a623d1e574f4 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.2_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T5.js index 769a25e6d80c..f1982b50b9ab 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.2_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.2_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.2_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T1.js index 6944c6c8d24f..113eb5a88f1f 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.3_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T2.js index 8d72aae218e6..9f48a51d9feb 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.3_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T3.js index aada87775665..3b5242dd2f22 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.3_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T4.js index d062ffd64eed..d0f66520d769 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.3_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T5.js index 133e43c6ec18..0214413ee9cd 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.3_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.3_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.3_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T1.js index 719088a50b71..0d574ef0fda4 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.4_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T2.js index 317d1425f93f..475a9c4dc098 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.4_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T3.js index c99e294dd745..7ea6133f999c 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.4_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T4.js index 416786b872ea..80cbe6e11597 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.4_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T5.js index 709f2dd16523..cb248caa47d0 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.4_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.4_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T1.js index 0f49349eba3d..2b77e725acb5 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.5_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T2.js index 0826821cce07..ecde59ce12e2 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.5_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T3.js index bcbcf2926a7b..8571d074c59e 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.5_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T4.js index b4e98906d02f..d0f65b981889 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.5_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T5.js index 0a55e12994dc..331dd144c902 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.5_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.5_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.5_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.6_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.6_T1.js index 43623abdfce4..ef3d1ba9bc70 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.6_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.6_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.6_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.6_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.6_T2.js index b44a5bea162b..7080d311062a 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.6_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.6_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.6_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.6_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.6_T3.js index f7ab963c0095..d4825a61a478 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.6_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.6_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.6_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T1.js index 88d012f6bc19..63f644c95c8a 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.7_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T2.js index f7cdd360d4d5..a7011247f6ce 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.7_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T3.js index 5c6317f816d6..75d9955e97a0 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.7_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T4.js index feff6a1e012f..f13ac679ae6d 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.7_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T5.js index 847a3ac61351..3c05c7cbe561 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.7_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.7_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.7_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T1.js index cda8e6002f32..e6a2999e2ed3 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.8_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T2.js index cff0f22d04a0..47377f3a0e71 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.8_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T3.js index a03f9b1426cf..392ba66162f8 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.8_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T4.js index 285aeb6eb03c..0c74242f8363 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.8_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T5.js index e311b2e6cb33..18eb1958064d 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.8_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.8_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.8_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.9_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A1.9_T1.js index 9d6344dd5c94..d525ab7fd487 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.9_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.9_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.9_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.9_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A1.9_T2.js index 421875b578ea..746f18ebca01 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.9_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.9_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.9_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A1.9_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A1.9_T3.js index 7ec6f5e6931d..14fd9a4caafa 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A1.9_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A1.9_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The with statement adds a computed object to the front of the scope chain of the current execution context es5id: 12.10_A1.9_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T1.js index 82416a28a73a..9c6b0d4af9fa 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.10_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T2.js index 24979c306d30..e8e60fba34c3 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.10_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T3.js index b7a20f985848..71fbd7921a3b 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.10_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T4.js index 25b5a9050a2b..1f0f9d7f36ea 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.10_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T5.js index a3906fbd86f4..a16ca1afc433 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.10_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.10_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.10_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T1.js index 011b9083412d..0d69e2fa47b5 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.11_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T2.js index c87e3645c772..3da1343acda1 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.11_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T3.js index 8135f3603d72..971f7d7b3471 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.11_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T4.js index 69cdb13fae3d..7d1d05882484 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.11_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T5.js index f853c8f7372e..15af73392e5f 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.11_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.11_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.11_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T1.js index 2035460e157c..78b5b5896e79 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.12_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T2.js index 196e53379d61..2d69aedd4c25 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.12_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T3.js index ab823d57c3ac..b0b77fa2a906 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.12_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T4.js index ae31659a6ae2..ba43696b5f70 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.12_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T5.js index 3b89e5a79dea..6c98215b0689 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.12_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.12_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.12_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.1_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.1_T1.js index 94a092db3c65..fd88d69dcf23 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.1_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.1_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.1_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.1_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.1_T2.js index 8492449247d6..276ec89ebc7b 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.1_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.1_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.1_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.1_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.1_T3.js index ffc8df97d622..11e9a2fce6d7 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.1_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.1_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.1_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T1.js index 6108df9da55a..0c390e8fe189 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.2_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T2.js index 25cd37ecaa5d..7fe182ea7f09 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.2_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T3.js index ef52034e4dbe..04cab21e0803 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.2_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T4.js index 900afd67c181..929e14aded30 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.2_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T5.js index a0f9c9d5a1e2..f08136a8e96e 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.2_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.2_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.2_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T1.js index aa5f114e921d..563474109eaa 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.3_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T2.js index b2162f6e4131..c22f5a022f5a 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.3_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T3.js index afd0f5a17339..105d81c8d141 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.3_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T4.js index e110c4fc1a93..df78e4ac3bcf 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.3_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.3_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.3_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T1.js index 5a4289e15e24..cd512790959e 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.4_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T2.js index 86ce713de3cd..fc3efd6df122 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.4_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T3.js index 29851b57f829..c62c3843672d 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.4_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T4.js index 9c5c877f1fb2..3817bfe1adc4 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.4_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T5.js index b8cc1c469dd1..bbadd6737f59 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.4_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.4_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.4_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T1.js index dc1e77485d39..1d4c837405d0 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.5_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T2.js index 05bd10dc7961..880c51f4cfb3 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.5_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T3.js index d776787bf109..0a7dc90c275c 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.5_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T4.js index c585ac3f2cd7..106fcd996a8d 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.5_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T5.js index 08e33ce488f7..b8c63df704ab 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.5_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.5_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.5_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.6_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.6_T1.js index 245f119df8bc..fabe3e8a31ef 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.6_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.6_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.6_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.6_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.6_T2.js index 247497c76530..0f6459baa096 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.6_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.6_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.6_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.6_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.6_T3.js index 73b4ae85fbaf..b55c541df121 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.6_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.6_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.6_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T1.js index 72e8c14c3159..15002a462f73 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.7_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T2.js index 0e152f1e0650..d6ceb780edb4 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.7_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T3.js index cec038697b75..156808c86731 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.7_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T4.js index 1ea5f4e4528b..db8fdbda774f 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.7_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T5.js index 234eb85b0c0b..f3efc35a4ead 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.7_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.7_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.7_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T1.js index c13e6738f10d..e2e35851413b 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.8_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T2.js index 658a09e00e4a..8a14251de4da 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.8_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T3.js index 553ac6c0fd25..1a332ca4bbe4 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.8_T3 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T4.js b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T4.js index 7874911b00b0..9084b37e9ab5 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T4.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.8_T4 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T5.js b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T5.js index 5e225f1aa45a..92660055990c 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.8_T5.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.8_T5.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.8_T5 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.9_T1.js b/js/src/tests/test262/language/statements/with/S12.10_A3.9_T1.js index 0274f615c010..f7de08b5436c 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.9_T1.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.9_T1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.9_T1 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.9_T2.js b/js/src/tests/test262/language/statements/with/S12.10_A3.9_T2.js index 6bd81a1d2a50..495d4bdb7c8b 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.9_T2.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.9_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.9_T2 diff --git a/js/src/tests/test262/language/statements/with/S12.10_A3.9_T3.js b/js/src/tests/test262/language/statements/with/S12.10_A3.9_T3.js index 2dd91c1ef3e0..954fc7bd0a17 100644 --- a/js/src/tests/test262/language/statements/with/S12.10_A3.9_T3.js +++ b/js/src/tests/test262/language/statements/with/S12.10_A3.9_T3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | No matter how control leaves the embedded 'Statement', the scope chain is always restored to its former state es5id: 12.10_A3.9_T3 diff --git a/js/src/tests/test262/language/statements/with/binding-blocked-by-unscopables.js b/js/src/tests/test262/language/statements/with/binding-blocked-by-unscopables.js index e550f07d2859..977a98912dc1 100644 --- a/js/src/tests/test262/language/statements/with/binding-blocked-by-unscopables.js +++ b/js/src/tests/test262/language/statements/with/binding-blocked-by-unscopables.js @@ -5,7 +5,7 @@ es6id: 8.1.1.2.1 description: > True-coercing `Symbol.unscopables` properties block access to object environment record -info: > +info: | [...] 6. If the withEnvironment flag of envRec is false, return true. 7. Let unscopables be Get(bindings, @@unscopables). diff --git a/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-falsey-prop.js b/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-falsey-prop.js index a7a256245445..b50112e5e696 100644 --- a/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-falsey-prop.js +++ b/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-falsey-prop.js @@ -5,7 +5,7 @@ es6id: 8.1.1.2.1 description: > False-coercing `Symbol.unscopables` properties do not block access to object environment record -info: > +info: | [...] 6. If the withEnvironment flag of envRec is false, return true. 7. Let unscopables be Get(bindings, @@unscopables). diff --git a/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-non-obj.js b/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-non-obj.js index 38e0fb98ee1d..28082178cc9e 100644 --- a/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-non-obj.js +++ b/js/src/tests/test262/language/statements/with/binding-not-blocked-by-unscopables-non-obj.js @@ -4,7 +4,7 @@ /*--- es6id: 8.1.1.2.1 description: Non-object values of `Symbol.unscopables` property are ignored -info: > +info: | [...] 6. If the withEnvironment flag of envRec is false, return true. 7. Let unscopables be Get(bindings, @@unscopables). diff --git a/js/src/tests/test262/language/statements/with/cptn-abrupt-empty.js b/js/src/tests/test262/language/statements/with/cptn-abrupt-empty.js index bd87ca8140b6..c57e3dfbdbe3 100644 --- a/js/src/tests/test262/language/statements/with/cptn-abrupt-empty.js +++ b/js/src/tests/test262/language/statements/with/cptn-abrupt-empty.js @@ -4,7 +4,7 @@ esid: sec-with-statement-runtime-semantics-evaluation description: > Statement completion value when body returns an empty abrupt completion -info: > +info: | WithStatement : with ( Expression ) Statement [...] diff --git a/js/src/tests/test262/language/statements/with/cptn-nrml.js b/js/src/tests/test262/language/statements/with/cptn-nrml.js index 1d5c8ff1a5e8..f75d9beb3463 100644 --- a/js/src/tests/test262/language/statements/with/cptn-nrml.js +++ b/js/src/tests/test262/language/statements/with/cptn-nrml.js @@ -3,7 +3,7 @@ /*--- es6id: 13.11.7 description: Statement completion value when body returns a normal completion -info: > +info: | WithStatement : with ( Expression ) Statement [...] diff --git a/js/src/tests/test262/language/statements/with/decl-async-fun.js b/js/src/tests/test262/language/statements/with/decl-async-fun.js index 4209de20320d..7d3a2566621f 100644 --- a/js/src/tests/test262/language/statements/with/decl-async-fun.js +++ b/js/src/tests/test262/language/statements/with/decl-async-fun.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-functions] flags: [noStrict] diff --git a/js/src/tests/test262/language/statements/with/decl-async-gen.js b/js/src/tests/test262/language/statements/with/decl-async-gen.js index 12ed18b65bd0..30cb1c0fef33 100644 --- a/js/src/tests/test262/language/statements/with/decl-async-gen.js +++ b/js/src/tests/test262/language/statements/with/decl-async-gen.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError features: [async-iteration] flags: [noStrict] diff --git a/js/src/tests/test262/language/statements/with/decl-cls.js b/js/src/tests/test262/language/statements/with/decl-cls.js index cf66b0d0154c..025e57e5295a 100644 --- a/js/src/tests/test262/language/statements/with/decl-cls.js +++ b/js/src/tests/test262/language/statements/with/decl-cls.js @@ -7,7 +7,7 @@ esid: sec-with-statement es6id: 13.11 flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/with/decl-const.js b/js/src/tests/test262/language/statements/with/decl-const.js index 0dca7d5a407f..6e49446c1613 100644 --- a/js/src/tests/test262/language/statements/with/decl-const.js +++ b/js/src/tests/test262/language/statements/with/decl-const.js @@ -7,7 +7,7 @@ esid: sec-with-statement es6id: 13.11 flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/with/decl-fun.js b/js/src/tests/test262/language/statements/with/decl-fun.js index b1000beb144c..fcb632b8bb01 100644 --- a/js/src/tests/test262/language/statements/with/decl-fun.js +++ b/js/src/tests/test262/language/statements/with/decl-fun.js @@ -7,7 +7,7 @@ esid: sec-with-statement es6id: 13.11 flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/with/decl-gen.js b/js/src/tests/test262/language/statements/with/decl-gen.js index ff9516026768..eb92df9fe556 100644 --- a/js/src/tests/test262/language/statements/with/decl-gen.js +++ b/js/src/tests/test262/language/statements/with/decl-gen.js @@ -7,7 +7,7 @@ esid: sec-with-statement es6id: 13.11 flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError features: [generators] ---*/ diff --git a/js/src/tests/test262/language/statements/with/decl-let.js b/js/src/tests/test262/language/statements/with/decl-let.js index be673fde1225..8d7d18190cd0 100644 --- a/js/src/tests/test262/language/statements/with/decl-let.js +++ b/js/src/tests/test262/language/statements/with/decl-let.js @@ -7,7 +7,7 @@ esid: sec-with-statement es6id: 13.11 flags: [noStrict] negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/with/labelled-fn-stmt.js b/js/src/tests/test262/language/statements/with/labelled-fn-stmt.js index 48a46b76dbda..6bf051f19792 100644 --- a/js/src/tests/test262/language/statements/with/labelled-fn-stmt.js +++ b/js/src/tests/test262/language/statements/with/labelled-fn-stmt.js @@ -18,7 +18,7 @@ info: | In the absence of Annex B.3.2, a SyntaxError should be produced due to the labelled function declaration itself. negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/statements/with/let-array-with-newline.js b/js/src/tests/test262/language/statements/with/let-array-with-newline.js index 41a3377c5ea9..56ab569ec606 100644 --- a/js/src/tests/test262/language/statements/with/let-array-with-newline.js +++ b/js/src/tests/test262/language/statements/with/let-array-with-newline.js @@ -11,7 +11,7 @@ info: | [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] Expression[+In, ?Yield, ?Await] ; negative: - phase: early + phase: parse type: SyntaxError flags: [noStrict] ---*/ diff --git a/js/src/tests/test262/language/types/boolean/S8.3_A2.1.js b/js/src/tests/test262/language/types/boolean/S8.3_A2.1.js index 774c0d5956d1..2192b09571d6 100644 --- a/js/src/tests/test262/language/types/boolean/S8.3_A2.1.js +++ b/js/src/tests/test262/language/types/boolean/S8.3_A2.1.js @@ -7,7 +7,7 @@ info: The true is reserved word es5id: 8.3_A2.1 description: Checking if execution of "true=1" fails negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/types/boolean/S8.3_A2.2.js b/js/src/tests/test262/language/types/boolean/S8.3_A2.2.js index 7d2ca31a4c77..3f6eab6f3cd9 100644 --- a/js/src/tests/test262/language/types/boolean/S8.3_A2.2.js +++ b/js/src/tests/test262/language/types/boolean/S8.3_A2.2.js @@ -7,7 +7,7 @@ info: The false is reserved word es5id: 8.3_A2.2 description: Checking if execution of "false=0" fails negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/types/null/S8.2_A2.js b/js/src/tests/test262/language/types/null/S8.2_A2.js index 728431e79f45..51e43bb1f2f7 100644 --- a/js/src/tests/test262/language/types/null/S8.2_A2.js +++ b/js/src/tests/test262/language/types/null/S8.2_A2.js @@ -7,7 +7,7 @@ info: The null is resrved word es5id: 8.2_A2 description: Checking if execution of "var null" fails negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/null/S8.2_A3.js b/js/src/tests/test262/language/types/null/S8.2_A3.js index 434a3e34149d..49a862b76c77 100644 --- a/js/src/tests/test262/language/types/null/S8.2_A3.js +++ b/js/src/tests/test262/language/types/null/S8.2_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | For the keyword null the typeof operator returns the "object" See also http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Operators:Special_Operators:typeof_Operator diff --git a/js/src/tests/test262/language/types/number/S8.5_A13_T2.js b/js/src/tests/test262/language/types/number/S8.5_A13_T2.js index 4b50010b4647..782582dd7fa4 100644 --- a/js/src/tests/test262/language/types/number/S8.5_A13_T2.js +++ b/js/src/tests/test262/language/types/number/S8.5_A13_T2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Finite nonzero values that are Normalised having the form s*m*2**e where s is +1 or -1, m is a positive integer less than 2**53 but not less than s**52 and e is an integer ranging from -1074 to 971 diff --git a/js/src/tests/test262/language/types/object/S8.6.1_A3.js b/js/src/tests/test262/language/types/object/S8.6.1_A3.js index 9bca21bcb773..aba2a598ae57 100644 --- a/js/src/tests/test262/language/types/object/S8.6.1_A3.js +++ b/js/src/tests/test262/language/types/object/S8.6.1_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | A property can have attribute DontDelete like NaN propertie of Number object es5id: 8.6.1_A3 diff --git a/js/src/tests/test262/language/types/object/S8.6.2_A1.js b/js/src/tests/test262/language/types/object/S8.6.2_A1.js index 596f67c8b42a..ca20b8a718c3 100644 --- a/js/src/tests/test262/language/types/object/S8.6.2_A1.js +++ b/js/src/tests/test262/language/types/object/S8.6.2_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Native ECMAScript objects have an internal property called [[Prototype]]. The value of this property is either null or an object and is used for implementing inheritance es5id: 8.6.2_A1 diff --git a/js/src/tests/test262/language/types/object/S8.6.2_A2.js b/js/src/tests/test262/language/types/object/S8.6.2_A2.js index 11e3544b32e4..c1b614994284 100644 --- a/js/src/tests/test262/language/types/object/S8.6.2_A2.js +++ b/js/src/tests/test262/language/types/object/S8.6.2_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Properties of the [[Prototype]] object are visible as properties of the child object for the purposes of get access, but not for put access es5id: 8.6.2_A2 diff --git a/js/src/tests/test262/language/types/object/S8.6.2_A3.js b/js/src/tests/test262/language/types/object/S8.6.2_A3.js index 013394e5b7ac..9592a9b60d1f 100644 --- a/js/src/tests/test262/language/types/object/S8.6.2_A3.js +++ b/js/src/tests/test262/language/types/object/S8.6.2_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | The specification does not provide any means for a program to access [[class]] value except through Object.prototype.toString es5id: 8.6.2_A3 diff --git a/js/src/tests/test262/language/types/object/S8.6.2_A4.js b/js/src/tests/test262/language/types/object/S8.6.2_A4.js index cabed0c5750a..f755ce3dfe53 100644 --- a/js/src/tests/test262/language/types/object/S8.6.2_A4.js +++ b/js/src/tests/test262/language/types/object/S8.6.2_A4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | [[HasInstance]] returns a boolean value indicating whether Value delegates behaviour to this object es5id: 8.6.2_A4 diff --git a/js/src/tests/test262/language/types/object/S8.6.2_A6.js b/js/src/tests/test262/language/types/object/S8.6.2_A6.js index 5c15f99eec83..15a54b169325 100644 --- a/js/src/tests/test262/language/types/object/S8.6.2_A6.js +++ b/js/src/tests/test262/language/types/object/S8.6.2_A6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | [[Construct]] constructs an object. Invoked via the new operator. Objects that implement this internal method are called constructors es5id: 8.6.2_A6 diff --git a/js/src/tests/test262/language/types/object/S8.6.2_A7.js b/js/src/tests/test262/language/types/object/S8.6.2_A7.js index 02a04c54f822..32ded83824f6 100644 --- a/js/src/tests/test262/language/types/object/S8.6.2_A7.js +++ b/js/src/tests/test262/language/types/object/S8.6.2_A7.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Objects that implement internal method [[Construct]] are called constructors. Math object is NOT constructor es5id: 8.6.2_A7 diff --git a/js/src/tests/test262/language/types/reference/S8.7.1_A1.js b/js/src/tests/test262/language/types/reference/S8.7.1_A1.js index 80541545ccbb..449bf06dbb27 100644 --- a/js/src/tests/test262/language/types/reference/S8.7.1_A1.js +++ b/js/src/tests/test262/language/types/reference/S8.7.1_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Delete operator deletes pure property, so it returns true to be applyed to this.property es5id: 8.7.1_A1 diff --git a/js/src/tests/test262/language/types/reference/S8.7.1_A2.js b/js/src/tests/test262/language/types/reference/S8.7.1_A2.js index e13fda71e687..0bcdf425228a 100644 --- a/js/src/tests/test262/language/types/reference/S8.7.1_A2.js +++ b/js/src/tests/test262/language/types/reference/S8.7.1_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Delete operator can't delete reference, so it returns false to be applyed to reference es5id: 8.7.1_A2 diff --git a/js/src/tests/test262/language/types/reference/S8.7.2_A1_T1.js b/js/src/tests/test262/language/types/reference/S8.7.2_A1_T1.js index e63ae41b3747..fa844a9d652c 100644 --- a/js/src/tests/test262/language/types/reference/S8.7.2_A1_T1.js +++ b/js/src/tests/test262/language/types/reference/S8.7.2_A1_T1.js @@ -7,7 +7,7 @@ info: GetValue(V) mast fail es5id: 8.7.2_A1_T1 description: Checking if execution of "'litera'=1;" fails negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/types/reference/S8.7.2_A1_T2.js b/js/src/tests/test262/language/types/reference/S8.7.2_A1_T2.js index bbc5d4edbac7..55f7b5406722 100644 --- a/js/src/tests/test262/language/types/reference/S8.7.2_A1_T2.js +++ b/js/src/tests/test262/language/types/reference/S8.7.2_A1_T2.js @@ -7,7 +7,7 @@ info: GetValue(V) mast fail es5id: 8.7.2_A1_T2 description: Checking if execution of "1=1" fails negative: - phase: early + phase: parse type: ReferenceError ---*/ diff --git a/js/src/tests/test262/language/types/reference/S8.7.2_A2.js b/js/src/tests/test262/language/types/reference/S8.7.2_A2.js index ecd8e8fad701..748ad839ac09 100644 --- a/js/src/tests/test262/language/types/reference/S8.7.2_A2.js +++ b/js/src/tests/test262/language/types/reference/S8.7.2_A2.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | x++ calls GetValue then PutValue so after applying postfix increment(actually conrete operator type is unimportant) we must have reference to defined value es5id: 8.7.2_A2 diff --git a/js/src/tests/test262/language/types/reference/S8.7.2_A3.js b/js/src/tests/test262/language/types/reference/S8.7.2_A3.js index 97aae2272f25..b117fc023d64 100644 --- a/js/src/tests/test262/language/types/reference/S8.7.2_A3.js +++ b/js/src/tests/test262/language/types/reference/S8.7.2_A3.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | this.x++ calls GetValue then PutValue so after applying postfix increment(actually conrete operator type is unimportan) we must have reference to defined value es5id: 8.7.2_A3 diff --git a/js/src/tests/test262/language/types/reference/S8.7_A4.js b/js/src/tests/test262/language/types/reference/S8.7_A4.js index 37ae530757c4..6b5fd5bf55bd 100644 --- a/js/src/tests/test262/language/types/reference/S8.7_A4.js +++ b/js/src/tests/test262/language/types/reference/S8.7_A4.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Object Modification Resulting in a New Object for Not a Self-Modified Object leads to loss of integrity es5id: 8.7_A4 diff --git a/js/src/tests/test262/language/types/reference/S8.7_A6.js b/js/src/tests/test262/language/types/reference/S8.7_A6.js index ba4bac7929b4..7c2df56603ba 100644 --- a/js/src/tests/test262/language/types/reference/S8.7_A6.js +++ b/js/src/tests/test262/language/types/reference/S8.7_A6.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Passing arguments by value differs from by reference and do not change values to be passed es5id: 8.7_A6 diff --git a/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive-realm.js b/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive-realm.js index 922d443eaa0a..a0720572d1f3 100644 --- a/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive-realm.js +++ b/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive-realm.js @@ -7,7 +7,7 @@ description: > When the base of a property reference is primitive, it is coerced to an object during value retrieval (honoring the realm of the current execution context) -info: > +info: | [...] 5. If IsPropertyReference(V) is true, then a. If HasPrimitiveBase(V) is true, then diff --git a/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive.js b/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive.js index 5a0d0a0d95c6..fba94808b384 100644 --- a/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive.js +++ b/js/src/tests/test262/language/types/reference/get-value-prop-base-primitive.js @@ -6,7 +6,7 @@ es6id: 6.2.3.1 description: > When the base of a property reference is primitive, it is coerced to an object during value retrieval -info: > +info: | [...] 5. If IsPropertyReference(V) is true, then a. If HasPrimitiveBase(V) is true, then diff --git a/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive-realm.js b/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive-realm.js index e7fb234723d5..77f2787c70ba 100644 --- a/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive-realm.js +++ b/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive-realm.js @@ -7,7 +7,7 @@ description: > When the base of a property reference is primitive, it is coerced to an object during value assignment (honoring the realm of the current execution context) -info: > +info: | [...] 6. Else if IsPropertyReference(V) is true, then a. If HasPrimitiveBase(V) is true, then diff --git a/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive.js b/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive.js index 4731eddfa3a8..b7856f0d0508 100644 --- a/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive.js +++ b/js/src/tests/test262/language/types/reference/put-value-prop-base-primitive.js @@ -6,7 +6,7 @@ es6id: 6.2.3.2 description: > When the base of a property reference is primitive, it is coerced to an object during value assignment -info: > +info: | [...] 6. Else if IsPropertyReference(V) is true, then a. If HasPrimitiveBase(V) is true, then diff --git a/js/src/tests/test262/language/types/string/S8.4_A1.js b/js/src/tests/test262/language/types/string/S8.4_A1.js index 0b393b5daf24..a9a56b045e24 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A1.js +++ b/js/src/tests/test262/language/types/string/S8.4_A1.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Any variable that has been assigned with string literal has the type string es5id: 8.4_A1 diff --git a/js/src/tests/test262/language/types/string/S8.4_A13_T1.js b/js/src/tests/test262/language/types/string/S8.4_A13_T1.js index 5bfff8ba5e8b..85f9dddc5a02 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A13_T1.js +++ b/js/src/tests/test262/language/types/string/S8.4_A13_T1.js @@ -7,7 +7,7 @@ info: When appears not closed single-quote program failes es5id: 8.4_A13_T1 description: Try to create variable using 3 single-quote negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/string/S8.4_A13_T2.js b/js/src/tests/test262/language/types/string/S8.4_A13_T2.js index 1c60e423232d..220b6677f9c4 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A13_T2.js +++ b/js/src/tests/test262/language/types/string/S8.4_A13_T2.js @@ -7,7 +7,7 @@ info: When appears not closed single-quote program failes es5id: 8.4_A13_T2 description: Try to create variable using 1 single-quote negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/string/S8.4_A13_T3.js b/js/src/tests/test262/language/types/string/S8.4_A13_T3.js index 5b204fa0e35a..1d8c4f8ae825 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A13_T3.js +++ b/js/src/tests/test262/language/types/string/S8.4_A13_T3.js @@ -7,7 +7,7 @@ info: When appears not closed single-quote program failes es5id: 8.4_A13_T3 description: Try to create variable using 4 single-quote negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/string/S8.4_A14_T1.js b/js/src/tests/test262/language/types/string/S8.4_A14_T1.js index bbe56d928156..d5812d17d872 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A14_T1.js +++ b/js/src/tests/test262/language/types/string/S8.4_A14_T1.js @@ -7,7 +7,7 @@ info: When appears not closed double-quote program failes es5id: 8.4_A14_T1 description: Try to create variable using 1 double-quote negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/string/S8.4_A14_T2.js b/js/src/tests/test262/language/types/string/S8.4_A14_T2.js index f2cc4d9e5b9c..d62d37d88fe4 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A14_T2.js +++ b/js/src/tests/test262/language/types/string/S8.4_A14_T2.js @@ -7,7 +7,7 @@ info: When appears not closed double-quote program failes es5id: 8.4_A14_T2 description: Try to create variable using 3 double-quote negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/string/S8.4_A14_T3.js b/js/src/tests/test262/language/types/string/S8.4_A14_T3.js index d295e10c4497..aa96ef2922c3 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A14_T3.js +++ b/js/src/tests/test262/language/types/string/S8.4_A14_T3.js @@ -7,7 +7,7 @@ info: When appears not closed double-quote program failes es5id: 8.4_A14_T3 description: Try to create variable using 4 double-quote negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/types/string/S8.4_A8.js b/js/src/tests/test262/language/types/string/S8.4_A8.js index 413ddd65dbbf..98a334672e89 100644 --- a/js/src/tests/test262/language/types/string/S8.4_A8.js +++ b/js/src/tests/test262/language/types/string/S8.4_A8.js @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | Empty string, 0, false are all equal (==) to each other, since they all evaluate to 0 es5id: 8.4_A8 diff --git a/js/src/tests/test262/language/white-space/S7.2_A5_T1.js b/js/src/tests/test262/language/white-space/S7.2_A5_T1.js index ae0698b30959..ea8c1e932d4d 100644 --- a/js/src/tests/test262/language/white-space/S7.2_A5_T1.js +++ b/js/src/tests/test262/language/white-space/S7.2_A5_T1.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.2_A5_T1 description: Use TAB (U+0009) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/white-space/S7.2_A5_T2.js b/js/src/tests/test262/language/white-space/S7.2_A5_T2.js index 23a4995ae0f1..fa3557576f2f 100644 --- a/js/src/tests/test262/language/white-space/S7.2_A5_T2.js +++ b/js/src/tests/test262/language/white-space/S7.2_A5_T2.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.2_A5_T2 description: Use VERTICAL TAB (U+000B) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/white-space/S7.2_A5_T3.js b/js/src/tests/test262/language/white-space/S7.2_A5_T3.js index e78a8b6a893c..888aa7716c03 100644 --- a/js/src/tests/test262/language/white-space/S7.2_A5_T3.js +++ b/js/src/tests/test262/language/white-space/S7.2_A5_T3.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.2_A5_T3 description: Use FORM FEED (U+000C) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/white-space/S7.2_A5_T4.js b/js/src/tests/test262/language/white-space/S7.2_A5_T4.js index 6e7e0b8df5a3..30eceeeb49d3 100644 --- a/js/src/tests/test262/language/white-space/S7.2_A5_T4.js +++ b/js/src/tests/test262/language/white-space/S7.2_A5_T4.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.2_A5_T4 description: Use SPACE (U+0020) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/white-space/S7.2_A5_T5.js b/js/src/tests/test262/language/white-space/S7.2_A5_T5.js index e0b3f0e6fbea..d963e86630a9 100644 --- a/js/src/tests/test262/language/white-space/S7.2_A5_T5.js +++ b/js/src/tests/test262/language/white-space/S7.2_A5_T5.js @@ -3,13 +3,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -info: > +info: | White space cannot be expressed as a Unicode escape sequence consisting of six characters, namely \u plus four hexadecimal digits es5id: 7.2_A5_T5 description: Use NO-BREAK SPACE (U+00A0) negative: - phase: early + phase: parse type: SyntaxError ---*/ diff --git a/js/src/tests/test262/language/white-space/mongolian-vowel-separator-eval.js b/js/src/tests/test262/language/white-space/mongolian-vowel-separator-eval.js index 28e1cf527e74..5d6914dbebf8 100644 --- a/js/src/tests/test262/language/white-space/mongolian-vowel-separator-eval.js +++ b/js/src/tests/test262/language/white-space/mongolian-vowel-separator-eval.js @@ -5,7 +5,7 @@ esid: sec-white-space description: > Mongolian Vowel Separator is not recognized as white space (eval code). -info: > +info: | 11.2 White Space WhiteSpace :: diff --git a/js/src/tests/test262/language/white-space/mongolian-vowel-separator.js b/js/src/tests/test262/language/white-space/mongolian-vowel-separator.js index c7c8da8f7e93..bd9ccf6a17eb 100644 --- a/js/src/tests/test262/language/white-space/mongolian-vowel-separator.js +++ b/js/src/tests/test262/language/white-space/mongolian-vowel-separator.js @@ -6,7 +6,7 @@ esid: sec-white-space description: > Mongolian Vowel Separator is not recognized as white space. -info: > +info: | 11.2 White Space WhiteSpace :: @@ -22,7 +22,7 @@ info: > General Category of U+180E is “Cf” (Format). negative: - phase: early + phase: parse type: SyntaxError features: [u180e] ---*/ diff --git a/js/src/tests/test262/shell.js b/js/src/tests/test262/shell.js index 277de8bd8c1c..3058f0cb82a0 100644 --- a/js/src/tests/test262/shell.js +++ b/js/src/tests/test262/shell.js @@ -89,8 +89,8 @@ assert.throws = function (expectedErrorConstructor, func, message) { }; assert.throws.early = function(err, code) { - let wrappedCode = 'function wrapperFn() { ' + code + ' }'; - let ieval = eval; + var wrappedCode = 'function wrapperFn() { ' + code + ' }'; + var ieval = eval; assert.throws(err, function() { Function(wrappedCode); }, 'Function: ' + code); }; diff --git a/js/src/wasm/WasmJS.cpp b/js/src/wasm/WasmJS.cpp index fd320fde6e33..f72574cd5309 100644 --- a/js/src/wasm/WasmJS.cpp +++ b/js/src/wasm/WasmJS.cpp @@ -68,6 +68,10 @@ wasm::HasCompilerSupport(JSContext* cx) if (!wasm::HaveSignalHandlers()) return false; +#if !MOZ_LITTLE_ENDIAN + return false; +#endif + #ifdef ENABLE_WASM_THREAD_OPS // Wasm threads require 8-byte lock-free atomics. if (!jit::AtomicOperations::isLockfree8()) diff --git a/js/xpconnect/src/Sandbox.cpp b/js/xpconnect/src/Sandbox.cpp index 7879d9632956..6f8bad5174a7 100644 --- a/js/xpconnect/src/Sandbox.cpp +++ b/js/xpconnect/src/Sandbox.cpp @@ -756,6 +756,19 @@ bool WrapAccessorFunction(JSContext* cx, Op& op, PropertyDescriptor* desc, return true; } +static bool +IsMaybeWrappedDOMConstructor(JSObject* obj) +{ + // We really care about the underlying object here, which might be wrapped + // in cross-compartment wrappers. + obj = js::CheckedUnwrap(obj); + if (!obj) { + return false; + } + + return dom::IsDOMConstructor(obj); +} + bool xpc::SandboxProxyHandler::getPropertyDescriptor(JSContext* cx, JS::Handle proxy, @@ -780,7 +793,11 @@ xpc::SandboxProxyHandler::getPropertyDescriptor(JSContext* cx, return false; if (desc.value().isObject()) { RootedObject val (cx, &desc.value().toObject()); - if (JS::IsCallable(val)) { + if (JS::IsCallable(val) && + // Don't wrap DOM constructors: they don't care about the "this" + // they're invoked with anyway, being constructors. And if we wrap + // them here we break invariants like Node == Node and whatnot. + !IsMaybeWrappedDOMConstructor(val)) { val = WrapCallable(cx, val, proxy); if (!val) return false; diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp index 526dd4f1a98c..ffbff3a6789a 100644 --- a/js/xpconnect/src/XPCJSContext.cpp +++ b/js/xpconnect/src/XPCJSContext.cpp @@ -696,13 +696,6 @@ XPCJSContext::InterruptCallback(JSContext* cx) return false; } - if (win->GetIsPrerendered()) { - // We cannot display a dialog if the page is being prerendered, so - // just kill the page. - mozilla::dom::HandlePrerenderingViolation(win->AsInner()); - return false; - } - // Accumulate slow script invokation delay. if (!chrome && !self->mTimeoutAccumulated) { uint32_t delay = uint32_t(self->mSlowScriptActualWait.ToMilliseconds() - (limit * 1000.0)); diff --git a/js/xpconnect/src/nsXPConnect.cpp b/js/xpconnect/src/nsXPConnect.cpp index 9e322effaf49..b2ff9e210a3f 100644 --- a/js/xpconnect/src/nsXPConnect.cpp +++ b/js/xpconnect/src/nsXPConnect.cpp @@ -111,6 +111,7 @@ nsXPConnect::~nsXPConnect() delete gPrimaryContext; + MOZ_ASSERT(gSelf == this); gSelf = nullptr; gOnceAliveNowDead = true; } diff --git a/js/xpconnect/tests/chrome/chrome.ini b/js/xpconnect/tests/chrome/chrome.ini index e8f481eb6b9f..3009b469908d 100644 --- a/js/xpconnect/tests/chrome/chrome.ini +++ b/js/xpconnect/tests/chrome/chrome.ini @@ -89,6 +89,7 @@ skip-if = os == 'win' || os == 'mac' || (os == 'linux' && !debug) # bug 1131110, [test_bug1126911.html] [test_bug1281071.xul] [test_bug1390159.xul] +[test_bug1430164.html] [test_chrometoSource.xul] [test_cloneInto.xul] [test_cows.xul] diff --git a/js/xpconnect/tests/chrome/test_bug1430164.html b/js/xpconnect/tests/chrome/test_bug1430164.html new file mode 100644 index 000000000000..9082cc505f21 --- /dev/null +++ b/js/xpconnect/tests/chrome/test_bug1430164.html @@ -0,0 +1,32 @@ + + + + + + Test for Bug 1430164 + + + + + + diff --git a/layout/build/nsLayoutStatics.cpp b/layout/build/nsLayoutStatics.cpp index 6b947f896150..7dcedbff7df3 100644 --- a/layout/build/nsLayoutStatics.cpp +++ b/layout/build/nsLayoutStatics.cpp @@ -88,10 +88,6 @@ #include "nsMenuBarListener.h" #endif -#ifdef MOZ_WEBSPEECH -#include "nsSynthVoiceRegistry.h" -#endif - #include "CubebUtils.h" #include "Latency.h" #include "WebAudioUtils.h" @@ -406,10 +402,6 @@ nsLayoutStatics::Shutdown() AsyncLatencyLogger::ShutdownLogger(); WebAudioUtils::Shutdown(); -#ifdef MOZ_WEBSPEECH - nsSynthVoiceRegistry::Shutdown(); -#endif - nsCORSListenerProxy::Shutdown(); PointerEventHandler::ReleaseStatics(); diff --git a/layout/style/nsCSSRuleProcessor.cpp b/layout/style/nsCSSRuleProcessor.cpp index cdaf73e54e91..ea99e3bcfa5a 100644 --- a/layout/style/nsCSSRuleProcessor.cpp +++ b/layout/style/nsCSSRuleProcessor.cpp @@ -1352,16 +1352,15 @@ checkGenericEmptyMatches(Element* aElement, bool isWhitespaceSignificant) { nsIContent *child = nullptr; - int32_t index = -1; if (aTreeMatchContext.mForStyling) aElement->SetFlags(NODE_HAS_EMPTY_SELECTOR); - do { - child = aElement->GetChildAt_Deprecated(++index); - // stop at first non-comment (and non-whitespace for - // :-moz-only-whitespace) node - } while (child && !IsSignificantChild(child, true, isWhitespaceSignificant)); + // stop at first non-comment (and non-whitespace for :-moz-only-whitespace) + // node + for (child = aElement->GetFirstChild(); + child && !IsSignificantChild(child, true, isWhitespaceSignificant); + child = child->GetNextSibling()); return (child == nullptr); } @@ -1630,12 +1629,10 @@ static bool SelectorMatches(Element* aElement, if (aTreeMatchContext.mForStyling) parent->SetFlags(NODE_HAS_EDGE_CHILD_SELECTOR); - int32_t index = -1; - do { - firstNode = parent->GetChildAt_Deprecated(++index); - // stop at first non-comment and non-whitespace node - } while (firstNode && - !IsSignificantChild(firstNode, true, false)); + // stop at first non-comment and non-whitespace node + for (firstNode = parent->GetFirstChild(); + firstNode && !IsSignificantChild(firstNode, true, false); + firstNode = firstNode->GetNextSibling()); } if (aElement != firstNode) { return false; @@ -1657,12 +1654,10 @@ static bool SelectorMatches(Element* aElement, if (aTreeMatchContext.mForStyling) parent->SetFlags(NODE_HAS_EDGE_CHILD_SELECTOR); - uint32_t index = parent->GetChildCount(); - do { - lastNode = parent->GetChildAt_Deprecated(--index); - // stop at first non-comment and non-whitespace node - } while (lastNode && - !IsSignificantChild(lastNode, true, false)); + // stop at first non-comment and non-whitespace node + for (lastNode = parent->GetLastChild(); + lastNode && !IsSignificantChild(lastNode, true, false); + lastNode = lastNode->GetPreviousSibling()); } if (aElement != lastNode) { return false; diff --git a/layout/style/nsDOMCSSAttrDeclaration.h b/layout/style/nsDOMCSSAttrDeclaration.h index ebfdd7117446..a46fc2373e3d 100644 --- a/layout/style/nsDOMCSSAttrDeclaration.h +++ b/layout/style/nsDOMCSSAttrDeclaration.h @@ -10,6 +10,7 @@ #define nsDOMCSSAttributeDeclaration_h #include "mozilla/Attributes.h" +#include "mozilla/dom/DocGroup.h" #include "nsDOMCSSDeclaration.h" diff --git a/modules/libjar/nsJARChannel.cpp b/modules/libjar/nsJARChannel.cpp index dfcbf318b758..cdd2dd884345 100644 --- a/modules/libjar/nsJARChannel.cpp +++ b/modules/libjar/nsJARChannel.cpp @@ -204,17 +204,13 @@ nsJARChannel::nsJARChannel() mBlockRemoteFiles = Preferences::GetBool("network.jar.block-remote-files", false); // hold an owning reference to the jar handler - NS_ADDREF(gJarHandler); + mJarHandler = gJarHandler; } nsJARChannel::~nsJARChannel() { NS_ReleaseOnMainThreadSystemGroup("nsJARChannel::mLoadInfo", mLoadInfo.forget()); - - // release owning reference to the jar handler - nsJARProtocolHandler *handler = gJarHandler; - NS_RELEASE(handler); // nullptr parameter } NS_IMPL_ISUPPORTS_INHERITED(nsJARChannel, diff --git a/modules/libjar/nsJARChannel.h b/modules/libjar/nsJARChannel.h index 311e8f99547b..aed7d08b0e6a 100644 --- a/modules/libjar/nsJARChannel.h +++ b/modules/libjar/nsJARChannel.h @@ -26,6 +26,7 @@ #include "mozilla/Logging.h" class nsJARInputThunk; +class nsJARProtocolHandler; class nsInputStreamPump; //----------------------------------------------------------------------------- @@ -72,6 +73,7 @@ private: bool mOpened; + RefPtr mJarHandler; nsCOMPtr mJarURI; nsCOMPtr mOriginalURI; nsCOMPtr mOwner; diff --git a/modules/libjar/nsJARFactory.cpp b/modules/libjar/nsJARFactory.cpp index d74c6231fcb1..2b4aace660ea 100644 --- a/modules/libjar/nsJARFactory.cpp +++ b/modules/libjar/nsJARFactory.cpp @@ -47,15 +47,6 @@ static const mozilla::Module::ContractIDEntry kJARContracts[] = { { nullptr } }; -// Jar module shutdown hook -static void nsJarShutdown() -{ - // Make sure to not null out gJarHandler here, because we may have - // still-live nsJARChannels that will want to release it. - nsJARProtocolHandler *handler = gJarHandler; - NS_IF_RELEASE(handler); -} - static const mozilla::Module kJARModule = { mozilla::Module::kVersion, kJARCIDs, @@ -63,7 +54,7 @@ static const mozilla::Module kJARModule = { nullptr, nullptr, nullptr, - nsJarShutdown + nullptr }; NSMODULE_DEFN(nsJarModule) = &kJARModule; diff --git a/modules/libjar/nsJARProtocolHandler.cpp b/modules/libjar/nsJARProtocolHandler.cpp index bca6f9bc46f7..f6f3e47deed6 100644 --- a/modules/libjar/nsJARProtocolHandler.cpp +++ b/modules/libjar/nsJARProtocolHandler.cpp @@ -3,6 +3,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "mozilla/ClearOnShutdown.h" #include "nsAutoPtr.h" #include "nsJARProtocolHandler.h" #include "nsIIOService.h" @@ -24,7 +25,7 @@ static NS_DEFINE_CID(kZipReaderCacheCID, NS_ZIPREADERCACHE_CID); //----------------------------------------------------------------------------- -nsJARProtocolHandler *gJarHandler = nullptr; +StaticRefPtr gJarHandler; nsJARProtocolHandler::nsJARProtocolHandler() { @@ -32,10 +33,7 @@ nsJARProtocolHandler::nsJARProtocolHandler() } nsJARProtocolHandler::~nsJARProtocolHandler() -{ - MOZ_ASSERT(gJarHandler == this); - gJarHandler = nullptr; -} +{} nsresult nsJARProtocolHandler::Init() @@ -67,15 +65,12 @@ already_AddRefed nsJARProtocolHandler::GetSingleton() { if (!gJarHandler) { - auto jar = MakeRefPtr(); - gJarHandler = jar.get(); - if (NS_FAILED(jar->Init())) { + gJarHandler = new nsJARProtocolHandler(); + if (NS_SUCCEEDED(gJarHandler->Init())) { + ClearOnShutdown(&gJarHandler); + } else { gJarHandler = nullptr; - return nullptr; } - // We release this reference on module shutdown. - NS_ADDREF(gJarHandler); - return jar.forget(); } return do_AddRef(gJarHandler); } diff --git a/modules/libjar/nsJARProtocolHandler.h b/modules/libjar/nsJARProtocolHandler.h index 0a528f6d27f3..23fba956c0e6 100644 --- a/modules/libjar/nsJARProtocolHandler.h +++ b/modules/libjar/nsJARProtocolHandler.h @@ -6,6 +6,7 @@ #ifndef nsJARProtocolHandler_h__ #define nsJARProtocolHandler_h__ +#include "mozilla/StaticPtr.h" #include "nsIJARProtocolHandler.h" #include "nsIProtocolHandler.h" #include "nsIJARURI.h" @@ -39,7 +40,7 @@ protected: nsCOMPtr mMimeService; }; -extern nsJARProtocolHandler *gJarHandler; +extern mozilla::StaticRefPtr gJarHandler; #define NS_JARPROTOCOLHANDLER_CID \ { /* 0xc7e410d4-0x85f2-11d3-9f63-006008a6efe9 */ \ diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp index e465a8070195..82c87069b2e8 100644 --- a/netwerk/base/nsIOService.cpp +++ b/netwerk/base/nsIOService.cpp @@ -78,7 +78,7 @@ namespace net { #define MAX_RECURSION_COUNT 50 -nsIOService* gIOService = nullptr; +nsIOService* gIOService; static bool gHasWarnedUploadChannel2; static bool gCaptivePortalEnabled = false; static LazyLogModule gIOServiceLog("nsIOService"); @@ -269,7 +269,10 @@ nsIOService::Init() nsIOService::~nsIOService() { - gIOService = nullptr; + if (gIOService) { + MOZ_ASSERT(gIOService == this); + gIOService = nullptr; + } } nsresult @@ -355,13 +358,10 @@ already_AddRefed nsIOService::GetInstance() { if (!gIOService) { RefPtr ios = new nsIOService(); - gIOService = ios.get(); - if (NS_FAILED(ios->Init())) { - gIOService = nullptr; - return nullptr; + if (NS_SUCCEEDED(ios->Init())) { + MOZ_ASSERT(gIOService == ios.get()); + return ios.forget(); } - - return ios.forget(); } return do_AddRef(gIOService); } diff --git a/netwerk/dns/ChildDNSService.cpp b/netwerk/dns/ChildDNSService.cpp index 6c533d0d93d6..d236ebedab00 100644 --- a/netwerk/dns/ChildDNSService.cpp +++ b/netwerk/dns/ChildDNSService.cpp @@ -11,6 +11,8 @@ #include "nsIPrefService.h" #include "nsIProtocolProxyService.h" #include "nsNetCID.h" +#include "mozilla/ClearOnShutdown.h" +#include "mozilla/StaticPtr.h" #include "mozilla/SystemGroup.h" #include "mozilla/net/NeckoChild.h" #include "mozilla/net/DNSListenerProxy.h" @@ -23,7 +25,7 @@ namespace net { // ChildDNSService //----------------------------------------------------------------------------- -static ChildDNSService *gChildDNSService; +static StaticRefPtr gChildDNSService; static const char kPrefNameDisablePrefetch[] = "network.dns.disablePrefetch"; already_AddRefed ChildDNSService::GetSingleton() @@ -32,6 +34,7 @@ already_AddRefed ChildDNSService::GetSingleton() if (!gChildDNSService) { gChildDNSService = new ChildDNSService(); + ClearOnShutdown(&gChildDNSService); } return do_AddRef(gChildDNSService); diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp index 7d4a2f66e321..7cae3fea0c96 100644 --- a/netwerk/dns/nsDNSService2.cpp +++ b/netwerk/dns/nsDNSService2.cpp @@ -34,10 +34,12 @@ #include "nsINetworkLinkService.h" #include "mozilla/Attributes.h" +#include "mozilla/ClearOnShutdown.h" #include "mozilla/net/NeckoCommon.h" #include "mozilla/net/ChildDNSService.h" #include "mozilla/net/DNSListenerProxy.h" #include "mozilla/Services.h" +#include "mozilla/StaticPtr.h" using namespace mozilla; using namespace mozilla::net; @@ -496,7 +498,7 @@ NS_IMPL_ISUPPORTS(nsDNSService, nsIDNSService, nsPIDNSService, nsIObserver, * nsDNSService impl: * singleton instance ctor/dtor methods ******************************************************************************/ -static nsDNSService *gDNSService; +static StaticRefPtr gDNSService; already_AddRefed nsDNSService::GetXPCOMSingleton() @@ -513,18 +515,16 @@ nsDNSService::GetSingleton() { NS_ASSERTION(!IsNeckoChild(), "not a parent process"); - if (gDNSService) { - return do_AddRef(gDNSService); + if (!gDNSService) { + gDNSService = new nsDNSService(); + if (NS_SUCCEEDED(gDNSService->Init())) { + ClearOnShutdown(&gDNSService); + } else { + gDNSService = nullptr; + } } - auto dns = MakeRefPtr(); - gDNSService = dns.get(); - if (NS_FAILED(dns->Init())) { - gDNSService = nullptr; - return nullptr; - } - - return dns.forget(); + return do_AddRef(gDNSService); } NS_IMETHODIMP diff --git a/netwerk/protocol/http/HttpChannelChild.cpp b/netwerk/protocol/http/HttpChannelChild.cpp index dfe98ee1bd86..0eecc8775748 100644 --- a/netwerk/protocol/http/HttpChannelChild.cpp +++ b/netwerk/protocol/http/HttpChannelChild.cpp @@ -245,6 +245,19 @@ NS_IMPL_ADDREF(HttpChannelChild) NS_IMETHODIMP_(MozExternalRefCountType) HttpChannelChild::Release() { + if (!NS_IsMainThread()) { + nsrefcnt count = mRefCnt; + nsresult rv = NS_DispatchToMainThread( + NewNonOwningRunnableMethod("HttpChannelChild::Release", + this, + &HttpChannelChild::Release)); + + // Continue Release procedure if failed to dispatch to main thread. + if (!NS_WARN_IF(NS_FAILED(rv))) { + return count - 1; + } + } + nsrefcnt count = --mRefCnt; MOZ_ASSERT(int32_t(count) >= 0, "dup release"); NS_LOG_RELEASE(this, count, "HttpChannelChild"); diff --git a/netwerk/protocol/http/nsHttpTransaction.cpp b/netwerk/protocol/http/nsHttpTransaction.cpp index b965d3a2a7c8..326f463233ff 100644 --- a/netwerk/protocol/http/nsHttpTransaction.cpp +++ b/netwerk/protocol/http/nsHttpTransaction.cpp @@ -2350,6 +2350,7 @@ bool nsHttpTransaction::Do0RTT() { if (mRequestHead->IsSafeMethod() && + !mDoNotTryEarlyData && (!mConnection || !mConnection->IsProxyConnectInProgress())) { m0RTTInProgress = true; diff --git a/storage/VacuumManager.cpp b/storage/VacuumManager.cpp index 39b903f831af..939c204e5519 100644 --- a/storage/VacuumManager.cpp +++ b/storage/VacuumManager.cpp @@ -320,7 +320,9 @@ VacuumManager::getSingleton() } if (!gVacuumManager) { - gVacuumManager = new VacuumManager(); + auto manager = MakeRefPtr(); + MOZ_ASSERT(gVacuumManager == manager.get()); + return manager.forget(); } return do_AddRef(gVacuumManager); } diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp index 9ba895696f26..e4ecba93564d 100644 --- a/storage/mozStorageService.cpp +++ b/storage/mozStorageService.cpp @@ -219,13 +219,13 @@ Service::getSingleton() // main thread. NS_ENSURE_TRUE(NS_IsMainThread(), nullptr); RefPtr service = new Service(); - gService = service.get(); - if (NS_FAILED(service->initialize())) { - gService = nullptr; - return nullptr; + if (NS_SUCCEEDED(service->initialize())) { + // Note: This is cleared in the Service destructor. + gService = service.get(); + return service.forget(); } - return service.forget(); + return nullptr; } int32_t Service::sSynchronousPref; diff --git a/taskcluster/ci/release-final-verify/kind.yml b/taskcluster/ci/release-final-verify/kind.yml index a70694167e33..ec3c0633990a 100644 --- a/taskcluster/ci/release-final-verify/kind.yml +++ b/taskcluster/ci/release-final-verify/kind.yml @@ -101,7 +101,7 @@ jobs: by-project: jamun: "aurora-devedition-linux.cfg aurora-devedition-linux64.cfg aurora-devedition-macosx64.cfg aurora-devedition-win32.cfg aurora-devedition-win64.cfg" maple: "aurora-devedition-linux.cfg aurora-devedition-linux64.cfg aurora-devedition-macosx64.cfg aurora-devedition-win32.cfg aurora-devedition-win64.cfg" - mozilla-aurora: "aurora-devedition-linux.cfg aurora-devedition-linux64.cfg aurora-devedition-macosx64.cfg aurora-devedition-win32.cfg aurora-devedition-win64.cfg" + mozilla-beta: "aurora-devedition-linux.cfg aurora-devedition-linux64.cfg aurora-devedition-macosx64.cfg aurora-devedition-win32.cfg aurora-devedition-win64.cfg" mozilla-release: "release-devedition-linux.cfg release-devedition-linux64.cfg release-devedition-macosx64.cfg release-devedition-win32.cfg release-devedition-win64.cfg" mozilla-esr52: "esr-devedition-linux.cfg esr-devedition-linux64.cfg esr-devedition-macosx64.cfg esr-devedition-win32.cfg esr-devedition-win64.cfg" default: "" diff --git a/taskcluster/ci/release-update-verify/kind.yml b/taskcluster/ci/release-update-verify/kind.yml index eb805eaf1d81..94d1ba4ce05b 100644 --- a/taskcluster/ci/release-update-verify/kind.yml +++ b/taskcluster/ci/release-update-verify/kind.yml @@ -338,7 +338,7 @@ jobs: by-project: jamun: "aurora-localtest" maple: "aurora-localtest" - mozilla-aurora: "aurora-localtest" + mozilla-beta: "aurora-localtest" mozilla-release: "release-localtest" mozilla-esr52: "esr-localtest" default: "default" @@ -346,7 +346,7 @@ jobs: by-project: jamun: "aurora-devedition-linux64.cfg" maple: "aurora-devedition-linux64.cfg" - mozilla-aurora: "aurora-devedition-linux64.cfg" + mozilla-beta: "aurora-devedition-linux64.cfg" mozilla-release: "release-devedition-linux64.cfg" mozilla-esr52: "esr-devedition-linux64.cfg" default: "none" @@ -367,7 +367,7 @@ jobs: by-project: jamun: "aurora-localtest" maple: "aurora-localtest" - mozilla-aurora: "aurora-localtest" + mozilla-beta: "aurora-localtest" mozilla-release: "release-localtest" mozilla-esr52: "esr-localtest" default: "default" @@ -375,7 +375,7 @@ jobs: by-project: jamun: "aurora-devedition-linux.cfg" maple: "aurora-devedition-linux.cfg" - mozilla-aurora: "aurora-devedition-linux.cfg" + mozilla-beta: "aurora-devedition-linux.cfg" mozilla-release: "release-devedition-linux.cfg" mozilla-esr52: "esr-devedition-linux.cfg" default: "none" @@ -396,7 +396,7 @@ jobs: by-project: jamun: "aurora-localtest" maple: "aurora-localtest" - mozilla-aurora: "aurora-localtest" + mozilla-beta: "aurora-localtest" mozilla-release: "release-localtest" mozilla-esr52: "esr-localtest" default: "default" @@ -404,7 +404,7 @@ jobs: by-project: jamun: "aurora-devedition-win64.cfg" maple: "aurora-devedition-win64.cfg" - mozilla-aurora: "aurora-devedition-win64.cfg" + mozilla-beta: "aurora-devedition-win64.cfg" mozilla-release: "release-devedition-win64.cfg" mozilla-esr52: "esr-devedition-win64.cfg" default: "none" @@ -425,7 +425,7 @@ jobs: by-project: jamun: "aurora-localtest" maple: "aurora-localtest" - mozilla-aurora: "aurora-localtest" + mozilla-beta: "aurora-localtest" mozilla-release: "release-localtest" mozilla-esr52: "esr-localtest" default: "default" @@ -433,7 +433,7 @@ jobs: by-project: jamun: "aurora-devedition-win32.cfg" maple: "aurora-devedition-win32.cfg" - mozilla-aurora: "aurora-devedition-win32.cfg" + mozilla-beta: "aurora-devedition-win32.cfg" mozilla-release: "release-devedition-win32.cfg" mozilla-esr52: "esr-devedition-win32.cfg" default: "none" @@ -454,7 +454,7 @@ jobs: by-project: jamun: "aurora-localtest" maple: "aurora-localtest" - mozilla-aurora: "aurora-localtest" + mozilla-beta: "aurora-localtest" mozilla-release: "release-localtest" mozilla-esr52: "esr-localtest" default: "default" @@ -462,7 +462,7 @@ jobs: by-project: jamun: "aurora-devedition-macosx64.cfg" maple: "aurora-devedition-macosx64.cfg" - mozilla-aurora: "aurora-devedition-macosx64.cfg" + mozilla-beta: "aurora-devedition-macosx64.cfg" mozilla-release: "release-devedition-macosx64.cfg" mozilla-esr52: "esr-devedition-macosx64.cfg" default: "none" diff --git a/taskcluster/ci/release-updates-builder/kind.yml b/taskcluster/ci/release-updates-builder/kind.yml index a04b0482ae29..ec4adbffb8bc 100644 --- a/taskcluster/ci/release-updates-builder/kind.yml +++ b/taskcluster/ci/release-updates-builder/kind.yml @@ -129,7 +129,7 @@ jobs: by-project: jamun: "aurora" maple: "aurora" - mozilla-aurora: "aurora" + mozilla-beta: "aurora" default: "default" repo_path: by-project: diff --git a/taskcluster/ci/toolchain/linux.yml b/taskcluster/ci/toolchain/linux.yml index 75e2e30d7cb9..6999e8fd6b08 100755 --- a/taskcluster/ci/toolchain/linux.yml +++ b/taskcluster/ci/toolchain/linux.yml @@ -428,7 +428,6 @@ linux64-sccache: - 'taskcluster/scripts/misc/tooltool-download.sh' toolchain-artifact: public/build/sccache2.tar.xz toolchains: - - linux64-gcc-4.9 - linux64-rust-1.19 linux64-gn: diff --git a/taskcluster/scripts/misc/build-sccache.sh b/taskcluster/scripts/misc/build-sccache.sh index e3e5892b9eff..b513b1683ba4 100755 --- a/taskcluster/scripts/misc/build-sccache.sh +++ b/taskcluster/scripts/misc/build-sccache.sh @@ -10,8 +10,6 @@ case "$(uname -s)" in Linux) WORKSPACE=$HOME/workspace UPLOAD_DIR=$HOME/artifacts - export CC=gcc - PATH="$WORKSPACE/build/src/gcc/bin:$PATH" COMPRESS_EXT=xz ;; MINGW*) diff --git a/taskcluster/taskgraph/util/scriptworker.py b/taskcluster/taskgraph/util/scriptworker.py index 2c7d93756541..ba839c778a8d 100644 --- a/taskcluster/taskgraph/util/scriptworker.py +++ b/taskcluster/taskgraph/util/scriptworker.py @@ -478,11 +478,7 @@ def get_release_config(config): def get_signing_cert_scope_per_platform(build_platform, is_nightly, config): - if build_platform in ( - 'linux-devedition-nightly', 'linux64-devedition-nightly', - 'macosx64-devedition-nightly', - 'win32-devedition-nightly', 'win64-devedition-nightly', - ): + if 'devedition' in build_platform: return get_devedition_signing_cert_scope(config) elif is_nightly: return get_signing_cert_scope(config) diff --git a/testing/mozbase/mozdevice/mozdevice/devicemanager.py b/testing/mozbase/mozdevice/mozdevice/devicemanager.py index f8a390adbf90..3b2fead15cea 100644 --- a/testing/mozbase/mozdevice/mozdevice/devicemanager.py +++ b/testing/mozbase/mozdevice/mozdevice/devicemanager.py @@ -470,13 +470,14 @@ class DeviceManager(object): return processInfo[0] @abstractmethod - def killProcess(self, processName, sig=None): + def killProcess(self, processName, sig=None, native=False): """ Kills the process named processName. If sig is not None, process is killed with the specified signal. :param processName: path or name of the process to kill :param sig: signal to pass into the kill command (optional) + :param native: is this a native process, (like xpcshell)? (optional) """ @abstractmethod diff --git a/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py b/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py index d27721d51679..e73e22c442c6 100644 --- a/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py +++ b/testing/mozbase/mozdevice/mozdevice/devicemanagerADB.py @@ -446,8 +446,8 @@ class DeviceManagerADB(DeviceManager): self._checkCmd(acmd) return outputFile - def killProcess(self, appname, sig=None): - if not sig: + def killProcess(self, appname, sig=None, native=False): + if not native and not sig: try: self.shellCheckOutput(["am", "force-stop", appname], timeout=self.short_timeout) except: diff --git a/testing/mozharness/configs/single_locale/mozilla-beta.py b/testing/mozharness/configs/single_locale/mozilla-beta.py index ba4aa52ead66..1b766fd0710d 100644 --- a/testing/mozharness/configs/single_locale/mozilla-beta.py +++ b/testing/mozharness/configs/single_locale/mozilla-beta.py @@ -1,3 +1,5 @@ +import os + config = { "nightly_build": True, "branch": "mozilla-beta", @@ -7,6 +9,9 @@ config = { # l10n "hg_l10n_base": "https://hg.mozilla.org/l10n-central", + # mar + "mar_tools_url": os.environ["MAR_TOOLS_URL"], + # repositories "mozilla_dir": "mozilla-beta", "repos": [{ diff --git a/testing/mozharness/configs/single_locale/mozilla-release.py b/testing/mozharness/configs/single_locale/mozilla-release.py index 5c09584327d2..fc62645eac78 100644 --- a/testing/mozharness/configs/single_locale/mozilla-release.py +++ b/testing/mozharness/configs/single_locale/mozilla-release.py @@ -1,3 +1,5 @@ +import os + config = { "nightly_build": True, "branch": "mozilla-release", @@ -7,6 +9,9 @@ config = { # l10n "hg_l10n_base": "https://hg.mozilla.org/l10n-central", + # mar + "mar_tools_url": os.environ["MAR_TOOLS_URL"], + # repositories "mozilla_dir": "mozilla-release", "repos": [{ diff --git a/testing/mozharness/mozharness/mozilla/testing/codecoverage.py b/testing/mozharness/mozharness/mozilla/testing/codecoverage.py index 06720dd36c93..654078c2e1fe 100644 --- a/testing/mozharness/mozharness/mozilla/testing/codecoverage.py +++ b/testing/mozharness/mozharness/mozilla/testing/codecoverage.py @@ -160,7 +160,7 @@ class CodeCoverageMixin(object): dirs = self.query_abs_dirs() # Zip gcda files (will be given in input to grcov). - file_path_gcda = 'code-coverage-gcda.zip' + file_path_gcda = os.path.join(os.getcwd(), 'code-coverage-gcda.zip') self.run_command(['zip', '-q', '-0', '-r', file_path_gcda, '.'], cwd=self.gcov_dir) # Package JSVM coverage data. @@ -189,7 +189,8 @@ class CodeCoverageMixin(object): grcov_command, silent=True, save_tmpfiles=True, - return_type='files' + return_type='files', + throw_exception=True, ) output_file_name = 'grcov_lcov_output.info' shutil.move(grcov_output, os.path.join(self.grcov_dir, output_file_name)) diff --git a/testing/xpcshell/remotexpcshelltests.py b/testing/xpcshell/remotexpcshelltests.py index e018295e2dc2..edc28d33b36a 100644 --- a/testing/xpcshell/remotexpcshelltests.py +++ b/testing/xpcshell/remotexpcshelltests.py @@ -162,7 +162,7 @@ class RemoteXPCShellTestThread(xpcshell.XPCShellTestThread): # Guard against an accumulation of hung processes by killing # them here. Note also that IPC tests may spawn new instances # of xpcshell. - self.device.killProcess("xpcshell") + self.device.killProcess("xpcshell", native=True) return outputFile def checkForCrashes(self, @@ -198,7 +198,7 @@ class RemoteXPCShellTestThread(xpcshell.XPCShellTestThread): return None def kill(self, proc): - return self.device.killProcess("xpcshell", True) + return self.device.killProcess("xpcshell", native=True) def getReturnCode(self, proc): if self.shellReturnCode is not None: diff --git a/toolkit/components/browser/nsIWebBrowserChrome3.idl b/toolkit/components/browser/nsIWebBrowserChrome3.idl index d23021efee18..f74c599c8364 100644 --- a/toolkit/components/browser/nsIWebBrowserChrome3.idl +++ b/toolkit/components/browser/nsIWebBrowserChrome3.idl @@ -72,39 +72,4 @@ interface nsIWebBrowserChrome3 : nsIWebBrowserChrome2 in nsIURI aReferrer, in nsIPrincipal aTriggeringPrincipal, in uint32_t aLoadFlags); - - /** - * Tell the browser to start prerendering the given document. This prerendering - * _must_ be for the toplevel document. - * - * @param aHref The URI to begin prerendering - * @param aReferrer The URI of the document requesting the prerender. - * @param aTriggeringPrincipal The Principal that initiated to load aHref - */ - void startPrerenderingDocument(in nsIURI aHref, - in nsIURI aReferrer, - in nsIPrincipal aTriggeringPrincipal); - - /** - * Check if there's a prerendered document which matches given URI / - * referrer, and try to switch to the prerendered document immediately if - * there is. - * - * @param aHref - * The URI which is being loaded. - * @param aReferrer - * The referrer for the current load. - * @param aSuccess - * (Optional) a runnable which will be run if the swap is successful. - * @param aFailure - * (Optional) a runnable which will be run if the swap is not - * successful. Note it's not invoked if the function returns false. - * - * @return True if there is a matched prerendered document to swap with, - * false otherwise. - */ - bool shouldSwitchToPrerenderedDocument(in nsIURI aHref, - in nsIURI aReferrer, - in nsIRunnable aSuccess, - in nsIRunnable aFailure); }; diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp index 6a9fce0794d3..d47a610c8907 100644 --- a/toolkit/components/downloads/nsDownloadManager.cpp +++ b/toolkit/components/downloads/nsDownloadManager.cpp @@ -35,16 +35,17 @@ nsDownloadManager::GetSingleton() } auto serv = MakeRefPtr(); + // Note: This is cleared in the nsDownloadManager constructor. gDownloadManagerService = serv.get(); - if (NS_FAILED(serv->Init())) { - gDownloadManagerService = nullptr; - return nullptr; + if (NS_SUCCEEDED(serv->Init())) { + return serv.forget(); } - return serv.forget(); + return nullptr; } nsDownloadManager::~nsDownloadManager() { + MOZ_ASSERT(gDownloadManagerService == this); gDownloadManagerService = nullptr; } diff --git a/toolkit/components/extensions/Extension.jsm b/toolkit/components/extensions/Extension.jsm index 489f200b76bb..7905b4c0d45b 100644 --- a/toolkit/components/extensions/Extension.jsm +++ b/toolkit/components/extensions/Extension.jsm @@ -43,6 +43,7 @@ Cu.import("resource://gre/modules/Services.jsm"); XPCOMUtils.defineLazyModuleGetters(this, { AddonManager: "resource://gre/modules/AddonManager.jsm", AddonManagerPrivate: "resource://gre/modules/AddonManager.jsm", + AddonSettings: "resource://gre/modules/addons/AddonSettings.jsm", AppConstants: "resource://gre/modules/AppConstants.jsm", AsyncShutdown: "resource://gre/modules/AsyncShutdown.jsm", ExtensionCommon: "resource://gre/modules/ExtensionCommon.jsm", @@ -530,13 +531,28 @@ class ExtensionData { let permissions = new Set(); let webAccessibleResources = []; + let schemaPromises = new Map(); + + let result = { + apiNames, + dependencies, + id, + manifest, + modules: null, + originPermissions, + permissions, + schemaURLs: null, + type: this.type, + webAccessibleResources, + }; + if (this.type === "extension") { if (this.manifest.devtools_page) { permissions.add("devtools"); } for (let perm of manifest.permissions) { - if (perm === "geckoProfiler") { + if (perm === "geckoProfiler" && !this.isPrivileged) { const acceptedExtensions = Services.prefs.getStringPref("extensions.geckoProfiler.acceptedExtensionIds", ""); if (!acceptedExtensions.split(",").includes(id)) { this.manifestError("Only whitelisted extensions are allowed to access the geckoProfiler."); @@ -576,10 +592,48 @@ class ExtensionData { dependencies.add(`${api}@experiments.addons.mozilla.org`); } + let moduleData = data => ({ + url: this.rootURI.resolve(data.script), + events: data.events, + paths: data.paths, + scopes: data.scopes, + }); + + let computeModuleInit = (scope, modules) => { + let manager = new ExtensionCommon.SchemaAPIManager(scope); + return manager.initModuleJSON([modules]); + }; + + if (manifest.experiment_apis) { + let parentModules = {}; + let childModules = {}; + + for (let [name, data] of Object.entries(manifest.experiment_apis)) { + let schema = this.getURL(data.schema); + + if (!schemaPromises.has(schema)) { + schemaPromises.set(schema, this.readJSON(data.schema).then(json => Schemas.processSchema(json))); + } + + if (data.parent) { + parentModules[name] = moduleData(data.parent); + } + + if (data.child) { + childModules[name] = moduleData(data.child); + } + } + + result.modules = { + child: computeModuleInit("addon_child", childModules), + parent: computeModuleInit("addon_parent", parentModules), + }; + } + // Normalize all patterns to contain a single leading / if (manifest.web_accessible_resources) { - webAccessibleResources = manifest.web_accessible_resources - .map(path => path.replace(/^\/*/, "/")); + webAccessibleResources.push(...manifest.web_accessible_resources + .map(path => path.replace(/^\/*/, "/"))); } } else if (this.type == "langpack") { // Compute the chrome resources to be registered for this langpack @@ -601,8 +655,15 @@ class ExtensionData { this.startupData = {chromeEntries}; } - return {apiNames, dependencies, originPermissions, id, manifest, permissions, - webAccessibleResources, type: this.type}; + if (schemaPromises.size) { + let schemas = new Map(); + for (let [url, promise] of schemaPromises) { + schemas.set(url, await promise); + } + result.schemaURLs = schemas; + } + + return result; } // Reads the extension's |manifest.json| file, and stores its @@ -626,14 +687,44 @@ class ExtensionData { this.apiNames = manifestData.apiNames; this.dependencies = manifestData.dependencies; this.permissions = manifestData.permissions; + this.schemaURLs = manifestData.schemaURLs; this.type = manifestData.type; + this.modules = manifestData.modules; + + this.apiManager = this.getAPIManager(); + await this.apiManager.lazyInit(); + this.webAccessibleResources = manifestData.webAccessibleResources.map(res => new MatchGlob(res)); this.whiteListedHosts = new MatchPatternSet(manifestData.originPermissions); return this.manifest; } + getAPIManager() { + let apiManagers = [Management]; + + for (let id of this.dependencies) { + let policy = WebExtensionPolicy.getByID(id); + if (policy) { + apiManagers.push(policy.extension.experimentAPIManager); + } + } + + if (this.modules) { + this.experimentAPIManager = + new ExtensionCommon.LazyAPIManager("main", this.modules.parent, this.schemaURLs); + + apiManagers.push(this.experimentAPIManager); + } + + if (apiManagers.length == 1) { + return apiManagers[0]; + } + + return new ExtensionCommon.MultiAPIManager("main", apiManagers.reverse()); + } + localizeMessage(...args) { return this.localeData.localizeMessage(...args); } @@ -1193,10 +1284,21 @@ class Extension extends ExtensionData { return [this.id, this.version, Services.locale.getAppLocaleAsLangTag()]; } + get isPrivileged() { + return (this.addonData.signedState === AddonManager.SIGNEDSTATE_PRIVILEGED || + (AppConstants.MOZ_ALLOW_LEGACY_EXTENSIONS && + this.addonData.temporarilyInstalled)); + } + + get experimentsAllowed() { + return (AddonSettings.ALLOW_LEGACY_EXTENSIONS || + this.isPrivileged); + } + async _parseManifest() { let manifest = await super.parseManifest(); if (manifest && manifest.permissions.has("mozillaAddons") && - this.addonData.signedState !== AddonManager.SIGNEDSTATE_PRIVILEGED) { + !this.isPrivileged) { Cu.reportError(`Stripping mozillaAddons permission from ${this.id}`); manifest.permissions.delete("mozillaAddons"); let i = manifest.manifest.permissions.indexOf("mozillaAddons"); @@ -1234,7 +1336,9 @@ class Extension extends ExtensionData { Array.from(this.apiNames, api => ExtensionCommon.ExtensionAPIs.load(api))); for (let API of apis) { - this.apis.push(new API(this)); + if (API) { + this.apis.push(new API(this)); + } } } @@ -1258,9 +1362,12 @@ class Extension extends ExtensionData { webAccessibleResources: this.webAccessibleResources.map(res => res.glob), whiteListedHosts: this.whiteListedHosts.patterns.map(pat => pat.pattern), localeData: this.localeData.serialize(), + childModules: this.modules && this.modules.child, + dependencies: this.dependencies, permissions: this.permissions, principal: this.principal, optionalPermissions: this.manifest.optional_permissions, + schemaURLs: this.schemaURLs, }; } @@ -1442,6 +1549,8 @@ class Extension extends ExtensionData { this.policy.active = true; } + this.policy.extension = this; + TelemetryStopwatch.start("WEBEXT_EXTENSION_STARTUP_MS", this); try { await this.loadManifest(); @@ -1462,6 +1571,7 @@ class Extension extends ExtensionData { this.policy.active = false; this.policy = processScript.initExtension(this); + this.policy.extension = this; this.updatePermissions(this.startupReason); diff --git a/toolkit/components/extensions/ExtensionChild.jsm b/toolkit/components/extensions/ExtensionChild.jsm index 0ab005bd6bb9..bdf0e5f8f36e 100644 --- a/toolkit/components/extensions/ExtensionChild.jsm +++ b/toolkit/components/extensions/ExtensionChild.jsm @@ -31,11 +31,17 @@ XPCOMUtils.defineLazyServiceGetter(this, "finalizationService", XPCOMUtils.defineLazyModuleGetters(this, { ExtensionContent: "resource://gre/modules/ExtensionContent.jsm", + ExtensionPageChild: "resource://gre/modules/ExtensionPageChild.jsm", MessageChannel: "resource://gre/modules/MessageChannel.jsm", NativeApp: "resource://gre/modules/NativeMessaging.jsm", PromiseUtils: "resource://gre/modules/PromiseUtils.jsm", }); +XPCOMUtils.defineLazyGetter( + this, "processScript", + () => Cc["@mozilla.org/webextensions/extension-process-script;1"] + .getService().wrappedJSObject); + Cu.import("resource://gre/modules/ExtensionCommon.jsm"); Cu.import("resource://gre/modules/ExtensionUtils.jsm"); @@ -559,6 +565,10 @@ class BrowserExtensionContent extends EventEmitter { this.uuid = data.uuid; this.instanceId = data.instanceId; + this.childModules = data.childModules; + this.dependencies = data.dependencies; + this.schemaURLs = data.schemaURLs; + this.MESSAGE_EMIT_EVENT = `Extension:EmitEvent:${this.instanceId}`; Services.cpmm.addMessageListener(this.MESSAGE_EMIT_EVENT, this); @@ -572,6 +582,8 @@ class BrowserExtensionContent extends EventEmitter { this.optionalPermissions = data.optionalPermissions; this.principal = data.principal; + this.apiManager = this.getAPIManager(); + this.localeData = new LocaleData(data.localeData); this.manifest = data.manifest; @@ -631,6 +643,30 @@ class BrowserExtensionContent extends EventEmitter { ExtensionManager.extensions.set(this.id, this); } + getAPIManager() { + let apiManagers = [ExtensionPageChild.apiManager]; + + for (let id of this.dependencies) { + let extension = processScript.getExtensionChild(id); + if (extension) { + apiManagers.push(extension.experimentAPIManager); + } + } + + if (this.childModules) { + this.experimentAPIManager = + new ExtensionCommon.LazyAPIManager("addon", this.childModules, this.schemaURLs); + + apiManagers.push(this.experimentAPIManager); + } + + if (apiManagers.length == 1) { + return apiManagers[0]; + } + + return new ExtensionCommon.MultiAPIManager("addon", apiManagers.reverse()); + } + shutdown() { ExtensionManager.extensions.delete(this.id); ExtensionContent.shutdownExtension(this); @@ -775,6 +811,7 @@ class ChildAPIManager { // delegated to the ParentAPIManager. this.localApis = localAPICan.root; this.apiCan = localAPICan; + this.schema = this.apiCan.apiManager.schema; this.id = `${context.extension.id}.${context.contextId}`; @@ -818,6 +855,10 @@ class ChildAPIManager { } } + inject(obj) { + this.schema.inject(obj, this); + } + receiveMessage({name, messageName, data}) { if (data.childId != this.id) { return; diff --git a/toolkit/components/extensions/ExtensionCommon.jsm b/toolkit/components/extensions/ExtensionCommon.jsm index 488115af438b..6b562a68d812 100644 --- a/toolkit/components/extensions/ExtensionCommon.jsm +++ b/toolkit/components/extensions/ExtensionCommon.jsm @@ -27,6 +27,7 @@ XPCOMUtils.defineLazyModuleGetters(this, { MessageChannel: "resource://gre/modules/MessageChannel.jsm", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", Schemas: "resource://gre/modules/Schemas.jsm", + SchemaRoot: "resource://gre/modules/Schemas.jsm", }); XPCOMUtils.defineLazyServiceGetter(this, "styleSheetService", @@ -120,6 +121,9 @@ var ExtensionAPIs = { load(apiName) { let api = this.apis.get(apiName); + if (!api) { + return null; + } if (api.loadPromise) { return api.loadPromise; @@ -753,6 +757,17 @@ function getPath(map, path) { return map; } +function mergePaths(dest, source) { + for (let name of source.modules) { + dest.modules.add(name); + } + + for (let [name, child] of source.children.entries()) { + mergePaths(getChild(dest, name), + child); + } +} + /** * Manages loading and accessing a set of APIs for a specific extension * context. @@ -843,7 +858,8 @@ class CanOfAPIs { let obj = this.root; let modules = this.apiManager.modulePaths; - for (let key of path.split(".")) { + let parts = path.split("."); + for (let [i, key] of parts.entries()) { if (!obj) { return; } @@ -855,6 +871,9 @@ class CanOfAPIs { } } + if (!(key in obj) && i < parts.length - 1) { + obj[key] = {}; + } obj = obj[key]; } @@ -879,7 +898,8 @@ class CanOfAPIs { let obj = this.root; let modules = this.apiManager.modulePaths; - for (let key of path.split(".")) { + let parts = path.split("."); + for (let [i, key] of parts.entries()) { if (!obj) { return; } @@ -891,6 +911,10 @@ class CanOfAPIs { } } + if (!(key in obj) && i < parts.length - 1) { + obj[key] = {}; + } + if (typeof obj[key] === "function") { obj = obj[key].bind(obj); } else { @@ -952,11 +976,15 @@ class SchemaAPIManager extends EventEmitter { * "content" - A content process. * "devtools" - A devtools process. * "proxy" - A proxy script process. + * @param {SchemaRoot} schema */ - constructor(processType) { + constructor(processType, schema) { super(); this.processType = processType; - this.global = this._createExtGlobal(); + this.global = null; + if (schema) { + this.schema = schema; + } this.modules = new Map(); this.modulePaths = {children: new Map(), modules: new Set()}; @@ -972,12 +1000,27 @@ class SchemaAPIManager extends EventEmitter { this._scriptScopes = []; } - async loadModuleJSON(urls) { - function fetchJSON(url) { - return fetch(url).then(resp => resp.json()); + onStartup(extension) { + let promises = []; + for (let apiName of this.eventModules.get("startup")) { + promises.push(this.asyncGetAPI(apiName, extension).then(api => { + if (api) { + api.onStartup(); + } + })); } - for (let json of await Promise.all(urls.map(fetchJSON))) { + return Promise.all(promises); + } + + async loadModuleJSON(urls) { + let promises = urls.map(url => fetch(url).then(resp => resp.json())); + + return this.initModuleJSON(await Promise.all(promises)); + } + + initModuleJSON(blobs) { + for (let json of blobs) { this.registerModules(json); } @@ -1180,6 +1223,8 @@ class SchemaAPIManager extends EventEmitter { this._checkLoadModule(module, name); + this.initGlobal(); + Services.scriptloader.loadSubScript(module.url, this.global, "UTF-8"); module.loaded = true; @@ -1207,6 +1252,7 @@ class SchemaAPIManager extends EventEmitter { this._checkLoadModule(module, name); module.asyncLoaded = ChromeUtils.compileScript(module.url).then(script => { + this.initGlobal(); script.executeInGlobal(this.global); module.loaded = true; @@ -1217,6 +1263,10 @@ class SchemaAPIManager extends EventEmitter { return module.asyncLoaded; } + getModule(name) { + return this.modules.get(name); + } + /** * Checks whether the given API module may be loaded for the given * extension, in the given scope. @@ -1233,7 +1283,7 @@ class SchemaAPIManager extends EventEmitter { * Whether the module may be loaded. */ _checkGetAPI(name, extension, scope = null) { - let module = this.modules.get(name); + let module = this.getModule(name); if (module.permissions && !module.permissions.some(perm => extension.hasPermission(perm))) { return false; @@ -1261,7 +1311,7 @@ class SchemaAPIManager extends EventEmitter { if (module.asyncLoaded) { throw new Error(`Module '${name}' currently being lazily loaded`); } - if (this.global[name]) { + if (this.global && this.global[name]) { throw new Error(`Module '${name}' conflicts with existing global property`); } } @@ -1279,7 +1329,23 @@ class SchemaAPIManager extends EventEmitter { sandboxName: `Namespace of ext-*.js scripts for ${this.processType} (from: resource://gre/modules/ExtensionCommon.jsm)`, }); - Object.assign(global, {global, Cc, Ci, Cu, Cr, XPCOMUtils, ChromeUtils, ChromeWorker, ExtensionAPI, ExtensionCommon, MatchPattern, MatchPatternSet, MatchGlob, StructuredCloneHolder, extensions: this}); + Object.assign(global, { + Cc, + ChromeUtils, + ChromeWorker, + Ci, + Cr, + Cu, + ExtensionAPI, + ExtensionCommon, + MatchGlob, + MatchPattern, + MatchPatternSet, + StructuredCloneHolder, + XPCOMUtils, + extensions: this, + global, + }); Cu.import("resource://gre/modules/AppConstants.jsm", global); @@ -1293,6 +1359,12 @@ class SchemaAPIManager extends EventEmitter { return global; } + initGlobal() { + if (!this.global) { + this.global = this._createExtGlobal(); + } + } + /** * Load an ext-*.js script. The script runs in its own scope, if it wishes to * share state with another script it can assign to the `global` variable. If @@ -1332,6 +1404,96 @@ class SchemaAPIManager extends EventEmitter { } } +class LazyAPIManager extends SchemaAPIManager { + constructor(processType, moduleData, schemaURLs) { + super(processType); + + this.initialized = false; + + this.initModuleData(moduleData); + + this.schemaURLs = schemaURLs; + } +} + +defineLazyGetter(LazyAPIManager.prototype, "schema", function() { + let root = new SchemaRoot(Schemas.rootSchema, this.schemaURLs); + root.parseSchemas(); + return root; +}); + +class MultiAPIManager extends SchemaAPIManager { + constructor(processType, children) { + super(processType); + + this.initialized = false; + + this.children = children; + } + + async lazyInit() { + if (!this.initialized) { + this.initialized = true; + + for (let child of this.children) { + if (child.lazyInit) { + let res = child.lazyInit(); + if (res && typeof res.then === "function") { + await res; + } + } + + mergePaths(this.modulePaths, child.modulePaths); + } + } + } + + onStartup(extension) { + return Promise.all(this.children.map( + child => child.onStartup(extension))); + } + + getModule(name) { + for (let child of this.children) { + if (child.modules.has(name)) { + return child.modules.get(name); + } + } + } + + loadModule(name) { + for (let child of this.children) { + if (child.modules.has(name)) { + return child.loadModule(name); + } + } + } + + asyncLoadModule(name) { + for (let child of this.children) { + if (child.modules.has(name)) { + return child.asyncLoadModule(name); + } + } + } +} + +defineLazyGetter(MultiAPIManager.prototype, "schema", function() { + let bases = this.children.map(child => child.schema); + + // All API manager schema roots should derive from the global schema root, + // so it doesn't need its own entry. + if (bases[bases.length - 1] === Schemas) { + bases.pop(); + } + + if (bases.length === 1) { + bases = bases[0]; + } + return new SchemaRoot(bases, new Map()); +}); + + function LocaleData(data) { this.defaultLocale = data.defaultLocale; this.selectedLocale = data.selectedLocale; @@ -1705,4 +1867,7 @@ ExtensionCommon = { SpreadArgs, ignoreEvent, stylesheetMap, + + MultiAPIManager, + LazyAPIManager, }; diff --git a/toolkit/components/extensions/ExtensionContent.jsm b/toolkit/components/extensions/ExtensionContent.jsm index 4231df6f2c18..ae19e5b6e0b1 100644 --- a/toolkit/components/extensions/ExtensionContent.jsm +++ b/toolkit/components/extensions/ExtensionContent.jsm @@ -73,13 +73,14 @@ const CONTENT_SCRIPT_INJECTION_HISTOGRAM = "WEBEXT_CONTENT_SCRIPT_INJECTION_MS"; var apiManager = new class extends SchemaAPIManager { constructor() { - super("content"); + super("content", Schemas); this.initialized = false; } lazyInit() { if (!this.initialized) { this.initialized = true; + this.initGlobal(); for (let [/* name */, value] of XPCOMUtils.enumerateCategoryEntries(CATEGORY_EXTENSION_SCRIPTS_CONTENT)) { this.loadScript(value); } @@ -426,7 +427,7 @@ class ContentScriptContextChild extends BaseContext { // enables us to create the APIs object in this sandbox object and then // copying it into the iframe's window. See bug 1214658. this.sandbox = Cu.Sandbox(contentWindow, { - sandboxName: `Content Script ExtensionPage ${this.extension.id}`, + sandboxName: `Web-Accessible Extension Page ${extension.policy.debugName}`, sandboxPrototype: contentWindow, sameZoneAs: contentWindow, wantXrays: false, @@ -443,7 +444,7 @@ class ContentScriptContextChild extends BaseContext { this.sandbox = Cu.Sandbox(principal, { metadata, - sandboxName: `Content Script ${this.extension.id}`, + sandboxName: `Content Script ${extension.policy.debugName}`, sandboxPrototype: contentWindow, sameZoneAs: contentWindow, wantXrays: true, @@ -480,7 +481,7 @@ class ContentScriptContextChild extends BaseContext { defineLazyGetter(this, "chromeObj", () => { let chromeObj = Cu.createObjectIn(this.sandbox); - Schemas.inject(chromeObj, this.childManager); + this.childManager.inject(chromeObj); return chromeObj; }); diff --git a/toolkit/components/extensions/ExtensionPageChild.jsm b/toolkit/components/extensions/ExtensionPageChild.jsm index d80bb87a37f6..45d3832fb18e 100644 --- a/toolkit/components/extensions/ExtensionPageChild.jsm +++ b/toolkit/components/extensions/ExtensionPageChild.jsm @@ -100,13 +100,14 @@ function getFrameData(global) { var apiManager = new class extends SchemaAPIManager { constructor() { - super("addon"); + super("addon", Schemas); this.initialized = false; } lazyInit() { if (!this.initialized) { this.initialized = true; + this.initGlobal(); for (let [/* name */, value] of XPCOMUtils.enumerateCategoryEntries(CATEGORY_EXTENSION_SCRIPTS_ADDON)) { this.loadScript(value); } @@ -116,13 +117,14 @@ var apiManager = new class extends SchemaAPIManager { var devtoolsAPIManager = new class extends SchemaAPIManager { constructor() { - super("devtools"); + super("devtools", Schemas); this.initialized = false; } lazyInit() { if (!this.initialized) { this.initialized = true; + this.initGlobal(); for (let [/* name */, value] of XPCOMUtils.enumerateCategoryEntries(CATEGORY_EXTENSION_SCRIPTS_DEVTOOLS)) { this.loadScript(value); } @@ -172,7 +174,7 @@ class ExtensionBaseContextChild extends BaseContext { Schemas.exportLazyGetter(contentWindow, "browser", () => { let browserObj = Cu.createObjectIn(contentWindow); - Schemas.inject(browserObj, this.childManager); + this.childManager.inject(browserObj); return browserObj; }); @@ -181,7 +183,7 @@ class ExtensionBaseContextChild extends BaseContext { chromeApiWrapper.isChromeCompat = true; let chromeObj = Cu.createObjectIn(contentWindow); - Schemas.inject(chromeObj, chromeApiWrapper); + chromeApiWrapper.inject(chromeObj); return chromeObj; }); } @@ -272,10 +274,10 @@ class ExtensionPageContextChild extends ExtensionBaseContextChild { } defineLazyGetter(ExtensionPageContextChild.prototype, "childManager", function() { - apiManager.lazyInit(); + this.extension.apiManager.lazyInit(); let localApis = {}; - let can = new CanOfAPIs(this, apiManager, localApis); + let can = new CanOfAPIs(this, this.extension.apiManager, localApis); let childManager = new ChildAPIManager(this, this.messageManager, can, { envType: "addon_parent", @@ -346,6 +348,8 @@ ExtensionPageChild = { initialized: false, + apiManager, + _init() { if (this.initialized) { return; diff --git a/toolkit/components/extensions/ExtensionParent.jsm b/toolkit/components/extensions/ExtensionParent.jsm index 276d7b8bc3d0..e82aecc1bb66 100644 --- a/toolkit/components/extensions/ExtensionParent.jsm +++ b/toolkit/components/extensions/ExtensionParent.jsm @@ -77,21 +77,12 @@ const global = this; // This object loads the ext-*.js scripts that define the extension API. let apiManager = new class extends SchemaAPIManager { constructor() { - super("main"); + super("main", Schemas); this.initialized = null; /* eslint-disable mozilla/balanced-listeners */ this.on("startup", (e, extension) => { - let promises = []; - for (let apiName of this.eventModules.get("startup")) { - promises.push(this.asyncGetAPI(apiName, extension).then(api => { - if (api) { - api.onStartup(); - } - })); - } - - return Promise.all(promises); + return extension.apiManager.onStartup(extension); }); this.on("update", async (e, {id, resourceURI}) => { @@ -144,6 +135,7 @@ let apiManager = new class extends SchemaAPIManager { this.initModuleData(await modulesPromise); + this.initGlobal(); for (let script of scripts) { script.executeInGlobal(this.global); } @@ -475,7 +467,7 @@ class ProxyContextParent extends BaseContext { defineLazyGetter(ProxyContextParent.prototype, "apiCan", function() { let obj = {}; - let can = new CanOfAPIs(this, apiManager, obj); + let can = new CanOfAPIs(this, this.extension.apiManager, obj); GlobalManager.injectInObject(this, false, obj); return can; }); diff --git a/toolkit/components/extensions/ExtensionPolicyService.cpp b/toolkit/components/extensions/ExtensionPolicyService.cpp index b99d211d37e3..1ded386316d9 100644 --- a/toolkit/components/extensions/ExtensionPolicyService.cpp +++ b/toolkit/components/extensions/ExtensionPolicyService.cpp @@ -9,6 +9,7 @@ #include "mozilla/ClearOnShutdown.h" #include "mozilla/Preferences.h" +#include "mozilla/ResultExtensions.h" #include "mozilla/Services.h" #include "mozilla/dom/ContentChild.h" #include "mozilla/dom/ContentParent.h" @@ -67,6 +68,7 @@ ExtensionPolicyService::GetSingleton() if (MOZ_UNLIKELY(!sExtensionPolicyService)) { sExtensionPolicyService = new ExtensionPolicyService(); + RegisterWeakMemoryReporter(sExtensionPolicyService); ClearOnShutdown(&sExtensionPolicyService); } return *sExtensionPolicyService.get(); @@ -82,6 +84,11 @@ ExtensionPolicyService::ExtensionPolicyService() RegisterObservers(); } +ExtensionPolicyService::~ExtensionPolicyService() +{ + UnregisterWeakMemoryReporter(this); +} + bool ExtensionPolicyService::UseRemoteExtensions() const { @@ -174,6 +181,45 @@ ExtensionPolicyService::DefaultCSP(nsAString& aDefaultCSP) const } +/***************************************************************************** + * nsIMemoryReporter + *****************************************************************************/ + +NS_IMETHODIMP +ExtensionPolicyService::CollectReports(nsIHandleReportCallback* aHandleReport, + nsISupports* aData, bool aAnonymize) +{ + for (auto iter = mExtensions.Iter(); !iter.Done(); iter.Next()) { + auto& ext = iter.Data(); + + nsAtomCString id(ext->Id()); + + NS_ConvertUTF16toUTF8 name(ext->Name()); + name.ReplaceSubstring("\"", ""); + name.ReplaceSubstring("\\", ""); + + nsString url; + MOZ_TRY_VAR(url, ext->GetURL(NS_LITERAL_STRING(""))); + + nsPrintfCString desc("Extension(id=%s, name=\"%s\", baseURL=%s)", + id.get(), name.get(), + NS_ConvertUTF16toUTF8(url).get()); + desc.ReplaceChar('/', '\\'); + + nsCString path("extensions/"); + path.Append(desc); + + aHandleReport->Callback( + EmptyCString(), path, + KIND_NONHEAP, UNITS_COUNT, 1, + NS_LITERAL_CSTRING("WebExtensions that are active in this session"), + aData); + } + + return NS_OK; +} + + /***************************************************************************** * Content script management *****************************************************************************/ @@ -421,6 +467,7 @@ NS_IMPL_CYCLE_COLLECTION(ExtensionPolicyService, mExtensions, mExtensionHosts) NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(ExtensionPolicyService) NS_INTERFACE_MAP_ENTRY(nsIAddonPolicyService) NS_INTERFACE_MAP_ENTRY(nsIObserver) + NS_INTERFACE_MAP_ENTRY(nsIMemoryReporter) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAddonPolicyService) NS_INTERFACE_MAP_END diff --git a/toolkit/components/extensions/ExtensionPolicyService.h b/toolkit/components/extensions/ExtensionPolicyService.h index ef70b78802e4..9860c16b459e 100644 --- a/toolkit/components/extensions/ExtensionPolicyService.h +++ b/toolkit/components/extensions/ExtensionPolicyService.h @@ -6,12 +6,14 @@ #ifndef mozilla_ExtensionPolicyService_h #define mozilla_ExtensionPolicyService_h +#include "mozilla/MemoryReporting.h" #include "mozilla/extensions/WebExtensionPolicy.h" #include "nsCOMPtr.h" #include "nsCycleCollectionParticipant.h" #include "nsHashKeys.h" #include "nsIAddonPolicyService.h" #include "nsAtom.h" +#include "nsIMemoryReporter.h" #include "nsIObserver.h" #include "nsIObserverService.h" #include "nsISupports.h" @@ -33,6 +35,7 @@ using extensions::WebExtensionPolicy; class ExtensionPolicyService final : public nsIAddonPolicyService , public nsIObserver + , public nsIMemoryReporter { public: NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(ExtensionPolicyService, @@ -40,6 +43,7 @@ public: NS_DECL_CYCLE_COLLECTING_ISUPPORTS NS_DECL_NSIADDONPOLICYSERVICE NS_DECL_NSIOBSERVER + NS_DECL_NSIMEMORYREPORTER static ExtensionPolicyService& GetSingleton(); @@ -79,7 +83,7 @@ public: bool IsExtensionProcess() const; protected: - virtual ~ExtensionPolicyService() = default; + virtual ~ExtensionPolicyService(); private: ExtensionPolicyService(); diff --git a/toolkit/components/extensions/ExtensionTestCommon.jsm b/toolkit/components/extensions/ExtensionTestCommon.jsm index dbcf6adec0ce..b525914a50d7 100644 --- a/toolkit/components/extensions/ExtensionTestCommon.jsm +++ b/toolkit/components/extensions/ExtensionTestCommon.jsm @@ -175,10 +175,7 @@ this.ExtensionTestCommon = class ExtensionTestCommon { manifest = {}; } - let files = data.files; - if (!files) { - files = {}; - } + let files = Object.assign({}, data.files); function provide(obj, keys, value, override = false) { if (keys.length == 1) { @@ -383,6 +380,9 @@ this.ExtensionTestCommon = class ExtensionTestCommon { id, resourceURI: jarURI, cleanupFile: file, + signedState: data.isPrivileged ? AddonManager.SIGNEDSTATE_PRIVILEGED + : AddonManager.SIGNEDSTATE_SIGNED, + temporarilyInstalled: !!data.temporarilyInstalled, }); } }; diff --git a/toolkit/components/extensions/ProxyScriptContext.jsm b/toolkit/components/extensions/ProxyScriptContext.jsm index 414a65220be3..bc0366fee37d 100644 --- a/toolkit/components/extensions/ProxyScriptContext.jsm +++ b/toolkit/components/extensions/ProxyScriptContext.jsm @@ -200,7 +200,7 @@ class ProxyScriptContext extends BaseContext { this.extension = extension; this.messageManager = Services.cpmm; this.sandbox = Cu.Sandbox(this.extension.principal, { - sandboxName: `proxyscript:${extension.id}:${url}`, + sandboxName: `Extension Proxy Script (${extension.policy.debugName}): ${url}`, metadata: {addonID: extension.id}, }); this.url = url; @@ -324,12 +324,13 @@ class ProxyScriptContext extends BaseContext { class ProxyScriptAPIManager extends SchemaAPIManager { constructor() { - super("proxy"); + super("proxy", Schemas); this.initialized = false; } lazyInit() { if (!this.initialized) { + this.initGlobal(); let entries = XPCOMUtils.enumerateCategoryEntries(CATEGORY_EXTENSION_SCRIPTS_CONTENT); for (let [/* name */, value] of entries) { this.loadScript(value); @@ -388,6 +389,6 @@ defineLazyGetter(ProxyScriptContext.prototype, "browserObj", function() { let browserObj = Cu.createObjectIn(this.sandbox); let injectionContext = new ProxyScriptInjectionContext(this, can); - Schemas.inject(browserObj, injectionContext); + proxyScriptAPIManager.schema.inject(browserObj, injectionContext); return browserObj; }); diff --git a/toolkit/components/extensions/Schemas.jsm b/toolkit/components/extensions/Schemas.jsm index 737174c44dc1..bb5888a5f7b7 100644 --- a/toolkit/components/extensions/Schemas.jsm +++ b/toolkit/components/extensions/Schemas.jsm @@ -34,7 +34,7 @@ XPCOMUtils.defineLazyServiceGetter(this, "contentPolicyService", XPCOMUtils.defineLazyGetter(this, "StartupCache", () => ExtensionParent.StartupCache); -this.EXPORTED_SYMBOLS = ["Schemas"]; +this.EXPORTED_SYMBOLS = ["SchemaRoot", "Schemas"]; const {DEBUG} = AppConstants; @@ -98,9 +98,7 @@ function stripDescriptions(json, stripThis = true) { return result; } -async function readJSONAndBlobbify(url) { - let json = await readJSON(url); - +function blobbify(json) { // We don't actually use descriptions at runtime, and they make up about a // third of the size of our structured clone data, so strip them before // blobbifying. @@ -109,6 +107,12 @@ async function readJSONAndBlobbify(url) { return new StructuredCloneHolder(json); } +async function readJSONAndBlobbify(url) { + let json = await readJSON(url); + + return blobbify(json); +} + /** * Defines a lazy getter for the given property on the given object. Any * security wrappers are waived on the object before the property is @@ -722,12 +726,16 @@ class InjectionEntry { * as defined in the schema. Otherwise an error is reported to the context. */ class InjectionContext extends Context { - constructor(params) { + constructor(params, schemaRoot) { super(params, CONTEXT_FOR_INJECTION); + this.schemaRoot = schemaRoot; + this.pendingEntries = new Set(); this.children = new DefaultWeakMap(() => new Map()); + this.injectedRoots = new Set(); + if (params.setPermissionsChangedCallback) { params.setPermissionsChangedCallback( this.permissionsChanged.bind(this)); @@ -917,13 +925,16 @@ const FORMATS = { }, strictRelativeUrl(string, context) { - // Do not accept a string which resolves as an absolute URL, or any - // protocol-relative URL. + void FORMATS.unresolvedRelativeUrl(string, context); + return FORMATS.relativeUrl(string, context); + }, + + unresolvedRelativeUrl(string, context) { if (!string.startsWith("//")) { try { new URL(string); } catch (e) { - return FORMATS.relativeUrl(string, context); + return string; } } @@ -1116,6 +1127,8 @@ class Type extends Entry { * Parses the given schema object and returns an instance of this * class which corresponds to its properties. * + * @param {SchemaRoot} root + * The root schema for this type. * @param {object} schema * A JSON schema object which corresponds to a definition of * this type. @@ -1132,7 +1145,7 @@ class Type extends Entry { * schema object. * @static */ - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); return new this(schema); @@ -1226,10 +1239,10 @@ class ChoiceType extends Type { return ["choices", ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); - let choices = schema.choices.map(t => Schemas.parseSchema(t, path)); + let choices = schema.choices.map(t => root.parseSchema(t, path)); return new this(schema, choices); } @@ -1291,27 +1304,28 @@ class RefType extends Type { return ["$ref", ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); let ref = schema.$ref; - let ns = path[0]; + let ns = path.join("."); if (ref.includes(".")) { - [ns, ref] = ref.split("."); + [, ns, ref] = /^(.*)\.(.*?)$/.exec(ref); } - return new this(schema, ns, ref); + return new this(root, schema, ns, ref); } // For a reference to a type named T declared in namespace NS, // namespaceName will be NS and reference will be T. - constructor(schema, namespaceName, reference) { + constructor(root, schema, namespaceName, reference) { super(schema); + this.root = root; this.namespaceName = namespaceName; this.reference = reference; } get targetType() { - let ns = Schemas.getNamespace(this.namespaceName); + let ns = this.root.getNamespace(this.namespaceName); let type = ns.get(this.reference); if (!type) { throw new Error(`Internal error: Type ${this.reference} not found`); @@ -1335,7 +1349,7 @@ class StringType extends Type { ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); let enumeration = schema.enum || null; @@ -1467,9 +1481,9 @@ class ObjectType extends Type { return ["properties", "patternProperties", "$import", ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { if ("functions" in schema) { - return SubModuleType.parseSchema(schema, path, extraProperties); + return SubModuleType.parseSchema(root, schema, path, extraProperties); } if (DEBUG && !("$extend" in schema)) { @@ -1491,8 +1505,8 @@ class ObjectType extends Type { let parseProperty = (schema, extraProps = []) => { return { - type: Schemas.parseSchema(schema, path, - DEBUG && ["unsupported", "onError", "permissions", "default", ...extraProps]), + type: root.parseSchema(schema, path, + DEBUG && ["unsupported", "onError", "permissions", "default", ...extraProps]), optional: schema.optional || false, unsupported: schema.unsupported || false, onError: schema.onError || null, @@ -1530,7 +1544,7 @@ class ObjectType extends Type { type = {"type": "any"}; } - additionalProperties = Schemas.parseSchema(type, path); + additionalProperties = root.parseSchema(type, path); } return new this(schema, properties, additionalProperties, patternProperties, schema.isInstanceOf || null, imported); @@ -1728,19 +1742,19 @@ SubModuleType = class SubModuleType extends Type { return ["functions", "events", "properties", ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); // The path we pass in here is only used for error messages. path = [...path, schema.id]; let functions = schema.functions.filter(fun => !fun.unsupported) - .map(fun => FunctionEntry.parseSchema(fun, path)); + .map(fun => FunctionEntry.parseSchema(root, fun, path)); let events = []; if (schema.events) { events = schema.events.filter(event => !event.unsupported) - .map(event => Event.parseSchema(event, path)); + .map(event => Event.parseSchema(root, event, path)); } return new this(functions, events); @@ -1778,7 +1792,7 @@ class IntegerType extends Type { return ["minimum", "maximum", ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); return new this(schema, schema.minimum || -Infinity, schema.maximum || Infinity); @@ -1835,10 +1849,10 @@ class ArrayType extends Type { return ["items", "minItems", "maxItems", ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); - let items = Schemas.parseSchema(schema.items, path, ["onError"]); + let items = root.parseSchema(schema.items, path, ["onError"]); return new this(schema, items, schema.minItems || 0, schema.maxItems || Infinity); } @@ -1896,7 +1910,7 @@ class FunctionType extends Type { ...super.EXTRA_PROPERTIES]; } - static parseSchema(schema, path, extraProperties = []) { + static parseSchema(root, schema, path, extraProperties = []) { this.checkSchemaProperties(schema, path, extraProperties); let isAsync = !!schema.async; @@ -1913,7 +1927,7 @@ class FunctionType extends Type { } parameters.push({ - type: Schemas.parseSchema(param, path, ["name", "optional", "default"]), + type: root.parseSchema(param, path, ["name", "optional", "default"]), name: param.name, optional: param.optional == null ? isCallback : param.optional, default: param.default == undefined ? null : param.default, @@ -2047,8 +2061,9 @@ class SubModuleProperty extends Entry { // namespaceName: Namespace in which the property lives. // reference: Name of the type defining the functions to add to the property. // properties: Additional properties to add to the module (unsupported). - constructor(schema, path, name, reference, properties, permissions) { + constructor(root, schema, path, name, reference, properties, permissions) { super(schema); + this.root = root; this.name = name; this.path = path; this.namespaceName = path.join("."); @@ -2060,11 +2075,11 @@ class SubModuleProperty extends Entry { getDescriptor(path, context) { let obj = Cu.createObjectIn(context.cloneScope); - let ns = Schemas.getNamespace(this.namespaceName); + let ns = this.root.getNamespace(this.namespaceName); let type = ns.get(this.reference); if (!type && this.reference.includes(".")) { let [namespaceName, ref] = this.reference.split("."); - ns = Schemas.getNamespace(namespaceName); + ns = this.root.getNamespace(namespaceName); type = ns.get(ref); } @@ -2196,19 +2211,19 @@ class CallEntry extends Entry { // Represents a "function" defined in a schema namespace. FunctionEntry = class FunctionEntry extends CallEntry { - static parseSchema(schema, path) { + static parseSchema(root, schema, path) { // When not in DEBUG mode, we just need to know *if* this returns. let returns = !!schema.returns; if (DEBUG && "returns" in schema) { returns = { - type: Schemas.parseSchema(schema.returns, path, ["optional", "name"]), + type: root.parseSchema(schema.returns, path, ["optional", "name"]), optional: schema.returns.optional || false, name: "result", }; } return new this(schema, path, schema.name, - Schemas.parseSchema( + root.parseSchema( schema, path, ["name", "unsupported", "returns", "permissions", @@ -2321,9 +2336,9 @@ FunctionEntry = class FunctionEntry extends CallEntry { // TODO Bug 1369722: we should be able to remove the eslint-disable-line that follows // once Bug 1369722 has been fixed. Event = class Event extends CallEntry { // eslint-disable-line no-native-reassign - static parseSchema(event, path) { + static parseSchema(root, event, path) { let extraParameters = Array.from(event.extraParameters || [], param => ({ - type: Schemas.parseSchema(param, path, ["name", "optional", "default"]), + type: root.parseSchema(param, path, ["name", "optional", "default"]), name: param.name, optional: param.optional || false, default: param.default == undefined ? null : param.default, @@ -2334,7 +2349,7 @@ Event = class Event extends CallEntry { // eslint-disable-line no-native-reassig "returns", "filters"]; return new this(event, path, event.name, - Schemas.parseSchema(event, path, extraProperties), + root.parseSchema(event, path, extraProperties), extraParameters, event.unsupported || false, event.permissions || null); @@ -2415,9 +2430,11 @@ const LOADERS = { }; class Namespace extends Map { - constructor(name, path) { + constructor(root, name, path) { super(); + this.root = root; + this._lazySchemas = []; this.initialized = false; @@ -2449,7 +2466,7 @@ class Namespace extends Map { } if (schema.$import) { - this.superNamespace = Schemas.getNamespace(schema.$import); + this.superNamespace = this.root.getNamespace(schema.$import); } } @@ -2544,7 +2561,7 @@ class Namespace extends Map { if ("$extend" in type) { return this.extendType(type); } - return Schemas.parseSchema(type, this.path, ["id"]); + return this.root.parseSchema(type, this.path, ["id"]); } extendType(type) { @@ -2561,7 +2578,7 @@ class Namespace extends Map { } } - let parsed = Schemas.parseSchema(type, this.path, ["$extend"]); + let parsed = this.root.parseSchema(type, this.path, ["$extend"]); if (DEBUG && parsed.constructor !== targetType.constructor) { throw new Error(`Internal error: Bad attempt to extend ${type.$extend}`); @@ -2575,7 +2592,8 @@ class Namespace extends Map { loadProperty(name, prop) { if ("$ref" in prop) { if (!prop.unsupported) { - return new SubModuleProperty(prop, this.path, name, + return new SubModuleProperty(this.root, + prop, this.path, name, prop.$ref, prop.properties || {}, prop.permissions || null); } @@ -2584,18 +2602,18 @@ class Namespace extends Map { } else { // We ignore the "optional" attribute on properties since we // don't inject anything here anyway. - let type = Schemas.parseSchema(prop, [this.name], ["optional", "permissions", "writable"]); + let type = this.root.parseSchema(prop, [this.name], ["optional", "permissions", "writable"]); return new TypeProperty(prop, this.path, name, type, prop.writable || false, prop.permissions || null); } } loadFunction(name, fun) { - return FunctionEntry.parseSchema(fun, this.path); + return FunctionEntry.parseSchema(this.root, fun, this.path); } loadEvent(name, event) { - return Event.parseSchema(event, this.path); + return Event.parseSchema(this.root, event, this.path); } /** @@ -2619,7 +2637,8 @@ class Namespace extends Map { getDescriptor(path, context) { let obj = Cu.createObjectIn(context.cloneScope); - this.injectInto(obj, context); + let ns = context.schemaRoot.getNamespace(this.path.join(".")); + ns.injectInto(obj, context); // Only inject the namespace object if it isn't empty. if (Object.keys(obj).length) { @@ -2662,10 +2681,13 @@ class Namespace extends Map { * * @param {string} name * The name of the sub-namespace to retrieve. + * @param {boolean} [create = true] + * If true, create any intermediate namespaces which don't + * exist. * * @returns {Namespace} */ - getNamespace(name) { + getNamespace(name, create = true) { let subName; let idx = name.indexOf("."); @@ -2676,7 +2698,10 @@ class Namespace extends Map { let ns = super.get(name); if (!ns) { - ns = new Namespace(name, this.path); + if (!create) { + return null; + } + ns = new Namespace(this.root, name, this.path); this.set(name, ns); } @@ -2686,40 +2711,167 @@ class Namespace extends Map { return ns; } + getOwnNamespace(name) { + return this.getNamespace(name); + } + has(key) { this.init(); return super.has(key); } } -this.Schemas = { - initialized: false, - REVOKE: Symbol("@@revoke"), +/** + * A namespace which combines the children of an arbitrary number of + * sub-namespaces. + */ +class Namespaces extends Namespace { + constructor(root, name, path, namespaces) { + super(root, name, path); - // Maps a schema URL to the JSON contained in that schema file. This - // is useful for sending the JSON across processes. - schemaJSON: new Map(), + this.namespaces = namespaces; + } - // A separate map of schema JSON which should be available in all - // content processes. - contentSchemaJSON: new Map(), + injectInto(obj, context) { + for (let ns of this.namespaces) { + ns.injectInto(obj, context); + } + } +} - // Map[ -> Map[ -> Entry]] - // This keeps track of all the schemas that have been loaded so far. - rootNamespace: new Namespace("", []), +/** + * A root schema which combines the contents of an arbitrary number of base + * schema roots. + */ +class SchemaRoots extends Namespaces { + constructor(root, bases) { + bases = bases.map(base => base.rootSchema || base); - getNamespace(name) { - return this.rootNamespace.getNamespace(name); - }, + super(null, "", [], bases); + + this.root = root; + this.bases = bases; + this._namespaces = new Map(); + } + + _getNamespace(name, create) { + let results = []; + for (let root of this.bases) { + let ns = root.getNamespace(name, create); + if (ns) { + results.push(ns); + } + } + + if (results.length == 1) { + return results[0]; + } + + if (results.length > 0) { + return new Namespaces(this.root, name, name.split("."), results); + } + return null; + } + + getNamespace(name, create) { + let ns = this._namespaces.get(name); + if (!ns) { + ns = this._getNamespace(name, create); + if (ns) { + this._namespaces.set(name, ns); + } + } + return ns; + } + + * getNamespaces(name) { + for (let root of this.bases) { + yield* root.getNamespaces(name); + } + } +} + +/** + * A root schema namespace containing schema data which is isolated from data in + * other schema roots. May extend a base namespace, in which case schemas in + * this root may refer to types in a base, but not vice versa. + * + * @param {SchemaRoot|Array|null} base + * A base schema root (or roots) from which to derive, or null. + * @param {Map} schemaJSON + * A map of schema URLs and corresponding JSON blobs from which to + * populate this root namespace. + */ +class SchemaRoot extends Namespace { + constructor(base, schemaJSON) { + super(null, "", []); + + if (Array.isArray(base)) { + base = new SchemaRoots(this, base); + } + + this.root = this; + this.base = base; + this.schemaJSON = schemaJSON; + } + + * getNamespaces(path) { + let name = path.join("."); + + let ns = this.getNamespace(name, false); + if (ns) { + yield ns; + } + + if (this.base) { + yield* this.base.getNamespaces(name); + } + } + + /** + * Returns the sub-namespace with the given name. If the given namespace + * doesn't already exist, attempts to find it in the base SchemaRoot before + * creating a new empty namespace. + * + * @param {string} name + * The namespace to retrieve. + * @param {boolean} [create = true] + * If true, an empty namespace should be created if one does not + * already exist. + * @returns {Namespace|null} + */ + getNamespace(name, create = true) { + let ns = super.getNamespace(name, false); + if (ns) { + return ns; + } + + ns = this.base && this.base.getNamespace(name, false); + if (ns) { + return ns; + } + return create && super.getNamespace(name, create); + } + + /** + * Like getNamespace, but does not take the base SchemaRoot into account. + * + * @param {string} name + * The namespace to retrieve. + * @returns {Namespace} + */ + getOwnNamespace(name) { + return super.getNamespace(name); + } parseSchema(schema, path, extraProperties = []) { let allowedProperties = DEBUG && new Set(extraProperties); if ("choices" in schema) { - return ChoiceType.parseSchema(schema, path, allowedProperties); + return ChoiceType.parseSchema(this, schema, path, allowedProperties); } else if ("$ref" in schema) { - return RefType.parseSchema(schema, path, allowedProperties); + return RefType.parseSchema(this, schema, path, allowedProperties); } let type = TYPES[schema.type]; @@ -2736,7 +2888,133 @@ this.Schemas = { } } - return type.parseSchema(schema, path, allowedProperties); + return type.parseSchema(this, schema, path, allowedProperties); + } + + parseSchemas() { + for (let [key, schema] of this.schemaJSON.entries()) { + try { + if (typeof schema.deserialize === "function") { + schema = schema.deserialize(global); + + // If we're in the parent process, we need to keep the + // StructuredCloneHolder blob around in order to send to future child + // processes. If we're in a child, we have no further use for it, so + // just store the deserialized schema data in its place. + if (!isParentProcess) { + this.schemaJSON.set(key, schema); + } + } + + this.loadSchema(schema); + } catch (e) { + Cu.reportError(e); + } + } + } + + loadSchema(json) { + for (let namespace of json) { + this.getOwnNamespace(namespace.namespace) + .addSchema(namespace); + } + } + + /** + * Checks whether a given object has the necessary permissions to + * expose the given namespace. + * + * @param {string} namespace + * The top-level namespace to check permissions for. + * @param {object} wrapperFuncs + * Wrapper functions for the given context. + * @param {function} wrapperFuncs.hasPermission + * A function which, when given a string argument, returns true + * if the context has the given permission. + * @returns {boolean} + * True if the context has permission for the given namespace. + */ + checkPermissions(namespace, wrapperFuncs) { + let ns = this.getNamespace(namespace); + if (ns && ns.permissions) { + return ns.permissions.some(perm => wrapperFuncs.hasPermission(perm)); + } + return true; + } + + /** + * Inject registered extension APIs into `dest`. + * + * @param {object} dest The root namespace for the APIs. + * This object is usually exposed to extensions as "chrome" or "browser". + * @param {object} wrapperFuncs An implementation of the InjectionContext + * interface, which runs the actual functionality of the generated API. + */ + inject(dest, wrapperFuncs) { + let context = new InjectionContext(wrapperFuncs, this); + + this.injectInto(dest, context); + } + + injectInto(dest, context) { + // For schema graphs where multiple schema roots have the same base, don't + // inject it more than once. + + if (!context.injectedRoots.has(this)) { + context.injectedRoots.add(this); + if (this.base) { + this.base.injectInto(dest, context); + } + super.injectInto(dest, context); + } + } + + /** + * Normalize `obj` according to the loaded schema for `typeName`. + * + * @param {object} obj The object to normalize against the schema. + * @param {string} typeName The name in the format namespace.propertyname + * @param {object} context An implementation of Context. Any validation errors + * are reported to the given context. + * @returns {object} The normalized object. + */ + normalize(obj, typeName, context) { + let [namespaceName, prop] = typeName.split("."); + let ns = this.getNamespace(namespaceName); + let type = ns.get(prop); + + let result = type.normalize(obj, new Context(context)); + if (result.error) { + return {error: forceString(result.error)}; + } + return result; + } +} + +this.Schemas = { + initialized: false, + + REVOKE: Symbol("@@revoke"), + + // Maps a schema URL to the JSON contained in that schema file. This + // is useful for sending the JSON across processes. + schemaJSON: new Map(), + + // A separate map of schema JSON which should be available in all + // content processes. + contentSchemaJSON: new Map(), + + _rootSchema: null, + + get rootSchema() { + if (!this.initialized) { + this.init(); + } + return this._rootSchema; + }, + + getNamespace(name) { + return this.rootSchema.getNamespace(name); }, init() { @@ -2787,47 +3065,13 @@ this.Schemas = { flushSchemas() { if (this._needFlush) { this._needFlush = false; - XPCOMUtils.defineLazyGetter(this, "rootNamespace", - () => this.parseSchemas()); - } - }, + XPCOMUtils.defineLazyGetter(this, "_rootSchema", () => { + this._needFlush = true; - parseSchemas() { - this._needFlush = true; - - Object.defineProperty(this, "rootNamespace", { - enumerable: true, - configurable: true, - value: new Namespace("", []), - }); - - for (let [key, schema] of this.schemaJSON.entries()) { - try { - if (typeof schema.deserialize === "function") { - schema = schema.deserialize(global); - - // If we're in the parent process, we need to keep the - // StructuredCloneHolder blob around in order to send to future child - // processes. If we're in a child, we have no further use for it, so - // just store the deserialized schema data in its place. - if (!isParentProcess) { - this.schemaJSON.set(key, schema); - } - } - - this.loadSchema(schema); - } catch (e) { - Cu.reportError(e); - } - } - - return this.rootNamespace; - }, - - loadSchema(json) { - for (let namespace of json) { - this.getNamespace(namespace.namespace) - .addSchema(namespace); + let rootSchema = new SchemaRoot(null, this.schemaJSON); + rootSchema.parseSchemas(); + return rootSchema; + }); } }, @@ -2859,6 +3103,14 @@ this.Schemas = { this.flushSchemas(); }, + fetch(url) { + return readJSONAndBlobbify(url); + }, + + processSchema(json) { + return blobbify(json); + }, + async load(url, content = false) { if (!isParentProcess) { return; @@ -2900,15 +3152,7 @@ this.Schemas = { * True if the context has permission for the given namespace. */ checkPermissions(namespace, wrapperFuncs) { - if (!this.initialized) { - this.init(); - } - - let ns = this.getNamespace(namespace); - if (ns && ns.permissions) { - return ns.permissions.some(perm => wrapperFuncs.hasPermission(perm)); - } - return true; + return this.rootSchema.checkPermissions(namespace, wrapperFuncs); }, exportLazyGetter, @@ -2922,13 +3166,7 @@ this.Schemas = { * interface, which runs the actual functionality of the generated API. */ inject(dest, wrapperFuncs) { - if (!this.initialized) { - this.init(); - } - - let context = new InjectionContext(wrapperFuncs); - - this.rootNamespace.injectInto(dest, context); + this.rootSchema.inject(dest, wrapperFuncs); }, /** @@ -2941,18 +3179,6 @@ this.Schemas = { * @returns {object} The normalized object. */ normalize(obj, typeName, context) { - if (!this.initialized) { - this.init(); - } - - let [namespaceName, prop] = typeName.split("."); - let ns = this.getNamespace(namespaceName); - let type = ns.get(prop); - - let result = type.normalize(obj, new Context(context)); - if (result.error) { - return {error: forceString(result.error)}; - } - return result; + return this.rootSchema.normalize(obj, typeName, context); }, }; diff --git a/toolkit/components/extensions/ext-browser-content.js b/toolkit/components/extensions/ext-browser-content.js index e013e879b1bf..4422ecca030e 100644 --- a/toolkit/components/extensions/ext-browser-content.js +++ b/toolkit/components/extensions/ext-browser-content.js @@ -327,13 +327,6 @@ var WebBrowserChrome = { reloadInFreshProcess(docShell, URI, referrer, triggeringPrincipal, loadFlags) { return false; }, - - startPrerenderingDocument(href, referrer, triggeringPrincipal) { - }, - - shouldSwitchToPrerenderedDocument(href, referrer, success, failure) { - return false; - }, }; if (Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_CONTENT) { diff --git a/toolkit/components/extensions/extension-process-script.js b/toolkit/components/extensions/extension-process-script.js index 840c723ddcfd..3e838e3cdafb 100644 --- a/toolkit/components/extensions/extension-process-script.js +++ b/toolkit/components/extensions/extension-process-script.js @@ -343,6 +343,8 @@ ExtensionManager = { contentScripts: extension.contentScripts.map(parseScriptOptions), }); + policy.debugName = `${JSON.stringify(policy.name)} (ID: ${policy.id}, ${policy.getURL()})`; + // Register any existent dinamically registered content script for the extension // when a content process is started for the first time (which also cover // a content process that crashed and it has been recreated). @@ -498,6 +500,13 @@ ExtensionProcessScript.prototype = { } }, + getExtensionChild(id) { + let policy = WebExtensionPolicy.getByID(id); + if (policy) { + return extensions.get(policy); + } + }, + preloadContentScript(contentScript) { contentScripts.get(contentScript).preload(); }, diff --git a/toolkit/components/extensions/schemas/experiments.json b/toolkit/components/extensions/schemas/experiments.json index c687173a94c4..a46c8d770abe 100644 --- a/toolkit/components/extensions/schemas/experiments.json +++ b/toolkit/components/extensions/schemas/experiments.json @@ -10,6 +10,118 @@ "pattern": "^experiments(\\.\\w+)+$" } ] + }, + { + "$extend": "WebExtensionManifest", + "properties": { + "experiment_apis": { + "type": "object", + "additionalProperties": {"$ref": "experiments.ExperimentAPI"}, + "optional": true + } + } + } + ] + }, + { + "namespace": "experiments", + "types": [ + { + "id": "ExperimentAPI", + "type": "object", + "properties": { + "schema": {"$ref": "ExperimentURL"}, + + "parent": { + "type": "object", + "properties": { + "events": { + "$ref": "APIEvents", + "optional": true, + "default": [] + }, + + "paths": { + "$ref": "APIPaths", + "optional": true, + "default": [] + }, + + "script": {"$ref": "ExperimentURL"}, + + "scopes": { + "type": "array", + "items": {"$ref": "APIParentScope", "onError": "warn"}, + "optional": true, + "default": [] + } + }, + "optional": true + }, + + "child": { + "type": "object", + "properties": { + "paths": {"$ref": "APIPaths"}, + + "script": {"$ref": "ExperimentURL"}, + + "scopes": { + "type": "array", + "minItems": 1, + "items": {"$ref": "APIChildScope", "onError": "warn"} + } + }, + "optional": true + } + } + }, + { + "id": "ExperimentURL", + "type": "string", + "format": "unresolvedRelativeUrl" + }, + { + "id": "APIPaths", + "type": "array", + "items": {"$ref": "APIPath"}, + "minItems": 1 + }, + { + "id": "APIPath", + "type": "array", + "items": {"type": "string"}, + "minItems": 1 + }, + { + "id": "APIEvents", + "type": "array", + "items": {"$ref": "APIEvent", "onError": "warn"} + }, + { + "id": "APIEvent", + "type": "string", + "enum": [ + "startup" + ] + }, + { + "id": "APIParentScope", + "type": "string", + "enum": [ + "addon_parent", + "content_parent", + "devtools_parent" + ] + }, + { + "id": "APIChildScope", + "type": "string", + "enum": [ + "addon_child", + "content_child", + "devtools_child" + ] } ] } diff --git a/toolkit/components/extensions/schemas/types.json b/toolkit/components/extensions/schemas/types.json index 7bc745a0ca24..cbd75e28cbe5 100644 --- a/toolkit/components/extensions/schemas/types.json +++ b/toolkit/components/extensions/schemas/types.json @@ -55,7 +55,7 @@ "type": "any" }, "levelOfControl": { - "$ref": "LevelOfControl", + "$ref": "types.LevelOfControl", "description": "The level of control of the setting." }, "incognitoSpecific": { @@ -85,7 +85,7 @@ "type": "any" }, "scope": { - "$ref": "SettingScope", + "$ref": "types.SettingScope", "optional": true, "description": "Where to set the setting (default: regular)." } @@ -112,7 +112,7 @@ "description": "Which setting to clear.", "properties": { "scope": { - "$ref": "SettingScope", + "$ref": "types.SettingScope", "optional": true, "description": "Where to clear the setting (default: regular)." } @@ -144,7 +144,7 @@ "type": "any" }, "levelOfControl": { - "$ref": "LevelOfControl", + "$ref": "types.LevelOfControl", "description": "The level of control of the setting." }, "incognitoSpecific": { diff --git a/toolkit/components/extensions/test/mochitest/test_ext_all_apis.js b/toolkit/components/extensions/test/mochitest/test_ext_all_apis.js index d7699bb0ee72..21d0bb2670e1 100644 --- a/toolkit/components/extensions/test/mochitest/test_ext_all_apis.js +++ b/toolkit/components/extensions/test/mochitest/test_ext_all_apis.js @@ -60,6 +60,9 @@ let expectedBackgroundApis = [ ...expectedCommonApis, ...expectedBackgroundApisTargetSpecific, "contentScripts.register", + "experiments.APIChildScope", + "experiments.APIEvent", + "experiments.APIParentScope", "extension.ViewType", "extension.getBackgroundPage", "extension.getViews", diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_experiments.js b/toolkit/components/extensions/test/xpcshell/test_ext_experiments.js index 4ad758e669e3..d131b1b9bafa 100644 --- a/toolkit/components/extensions/test/xpcshell/test_ext_experiments.js +++ b/toolkit/components/extensions/test/xpcshell/test_ext_experiments.js @@ -187,3 +187,265 @@ add_task(async function test_experiments_api() { addon.uninstall(); boringAddon.uninstall(); }); + +let fooExperimentAPIs = { + foo: { + schema: "schema.json", + parent: { + scopes: ["addon_parent"], + script: "parent.js", + paths: [["experiments", "foo", "parent"]], + }, + child: { + scopes: ["addon_child"], + script: "child.js", + paths: [["experiments", "foo", "child"]], + }, + }, +}; + +let fooExperimentFiles = { + "schema.json": JSON.stringify([ + { + "namespace": "experiments.foo", + "types": [ + { + "id": "Meh", + "type": "object", + "properties": {}, + }, + ], + "functions": [ + { + "name": "parent", + "type": "function", + "async": true, + "parameters": [], + }, + { + "name": "child", + "type": "function", + "parameters": [], + "returns": {"type": "string"}, + }, + ], + }, + ]), + + /* globals ExtensionAPI */ + "parent.js": () => { + this.foo = class extends ExtensionAPI { + getAPI(context) { + return { + experiments: { + foo: { + parent() { + return Promise.resolve("parent"); + }, + }, + }, + }; + } + }; + }, + + "child.js": () => { + this.foo = class extends ExtensionAPI { + getAPI(context) { + return { + experiments: { + foo: { + child() { + return "child"; + }, + }, + }, + }; + } + }; + }, +}; + +async function testFooExperiment() { + browser.test.assertEq("object", typeof browser.experiments, + "typeof browser.experiments"); + + browser.test.assertEq("object", typeof browser.experiments.foo, + "typeof browser.experiments.foo"); + + browser.test.assertEq("function", typeof browser.experiments.foo.child, + "typeof browser.experiments.foo.child"); + + browser.test.assertEq("function", typeof browser.experiments.foo.parent, + "typeof browser.experiments.foo.parent"); + + browser.test.assertEq("child", browser.experiments.foo.child(), + "foo.child()"); + + browser.test.assertEq("parent", await browser.experiments.foo.parent(), + "await foo.parent()"); +} + +add_task(async function test_bundled_experiments() { + async function background() { + await testFooExperiment(); + + browser.test.notifyPass("background.experiments.foo"); + } + + let extension = ExtensionTestUtils.loadExtension({ + isPrivileged: true, + + manifest: { + experiment_apis: fooExperimentAPIs, + }, + + background: ` + ${testFooExperiment} + (${background})(); + `, + + files: fooExperimentFiles, + }); + + await extension.startup(); + + await extension.awaitFinish("background.experiments.foo"); + + await extension.unload(); +}); + + +add_task(async function test_unbundled_experiments() { + async function background() { + await testFooExperiment(); + + browser.test.assertEq("object", typeof browser.experiments.crunk, + "typeof browser.experiments.crunk"); + + browser.test.assertEq("function", typeof browser.experiments.crunk.child, + "typeof browser.experiments.crunk.child"); + + browser.test.assertEq("function", typeof browser.experiments.crunk.parent, + "typeof browser.experiments.crunk.parent"); + + browser.test.assertEq("crunk-child", browser.experiments.crunk.child(), + "crunk.child()"); + + browser.test.assertEq("crunk-parent", await browser.experiments.crunk.parent(), + "await crunk.parent()"); + + + browser.test.notifyPass("background.experiments.crunk"); + } + + let extension = ExtensionTestUtils.loadExtension({ + isPrivileged: true, + + manifest: { + experiment_apis: fooExperimentAPIs, + + permissions: ["experiments.crunk"], + }, + + background: ` + ${testFooExperiment} + (${background})(); + `, + + files: fooExperimentFiles, + }); + + let apiExtension = ExtensionTestUtils.loadExtension({ + isPrivileged: true, + + manifest: { + applications: {gecko: {id: "crunk@experiments.addons.mozilla.org"}}, + + experiment_apis: { + crunk: { + schema: "schema.json", + parent: { + scopes: ["addon_parent"], + script: "parent.js", + paths: [["experiments", "crunk", "parent"]], + }, + child: { + scopes: ["addon_child"], + script: "child.js", + paths: [["experiments", "crunk", "child"]], + }, + }, + }, + }, + + files: { + "schema.json": JSON.stringify([ + { + "namespace": "experiments.crunk", + "types": [ + { + "id": "Meh", + "type": "object", + "properties": {}, + }, + ], + "functions": [ + { + "name": "parent", + "type": "function", + "async": true, + "parameters": [], + }, + { + "name": "child", + "type": "function", + "parameters": [], + "returns": {"type": "string"}, + }, + ], + }, + ]), + + "parent.js": () => { + this.crunk = class extends ExtensionAPI { + getAPI(context) { + return { + experiments: { + crunk: { + parent() { + return Promise.resolve("crunk-parent"); + }, + }, + }, + }; + } + }; + }, + + "child.js": () => { + this.crunk = class extends ExtensionAPI { + getAPI(context) { + return { + experiments: { + crunk: { + child() { + return "crunk-child"; + }, + }, + }, + }; + } + }; + }, + }, + }); + + await apiExtension.startup(); + await extension.startup(); + + await extension.awaitFinish("background.experiments.crunk"); + + await extension.unload(); + await apiExtension.unload(); +}); diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_schemas_roots.js b/toolkit/components/extensions/test/xpcshell/test_ext_schemas_roots.js new file mode 100644 index 000000000000..d07e552c54fc --- /dev/null +++ b/toolkit/components/extensions/test/xpcshell/test_ext_schemas_roots.js @@ -0,0 +1,239 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +Components.utils.import("resource://gre/modules/Schemas.jsm"); +Components.utils.import("resource://gre/modules/ExtensionCommon.jsm"); + +let {SchemaAPIInterface} = ExtensionCommon; + +const global = this; + +let baseSchemaJSON = [ + { + namespace: "base", + + properties: { + PROP1: {value: 42}, + }, + + types: [ + { + id: "type1", + type: "string", + "enum": ["value1", "value2", "value3"], + }, + ], + + functions: [ + { + name: "foo", + type: "function", + parameters: [ + {name: "arg1", $ref: "type1"}, + ], + }, + ], + }, +]; + +let experimentFooJSON = [ + { + namespace: "experiments.foo", + types: [ + { + id: "typeFoo", + type: "string", + "enum": ["foo1", "foo2", "foo3"], + }, + ], + + functions: [ + { + name: "foo", + type: "function", + parameters: [ + {name: "arg1", $ref: "typeFoo"}, + {name: "arg2", $ref: "base.type1"}, + ], + }, + ], + }, +]; + +let experimentBarJSON = [ + { + namespace: "experiments.bar", + types: [ + { + id: "typeBar", + type: "string", + "enum": ["bar1", "bar2", "bar3"], + }, + ], + + functions: [ + { + name: "bar", + type: "function", + parameters: [ + {name: "arg1", $ref: "typeBar"}, + {name: "arg2", $ref: "base.type1"}, + ], + }, + ], + }, +]; + + +let tallied = null; + +function tally(kind, ns, name, args) { + tallied = [kind, ns, name, args]; +} + +function verify(...args) { + equal(JSON.stringify(tallied), JSON.stringify(args)); + tallied = null; +} + +let talliedErrors = []; + +let permissions = new Set(); + +class TallyingAPIImplementation extends SchemaAPIInterface { + constructor(namespace, name) { + super(); + this.namespace = namespace; + this.name = name; + } + + callFunction(args) { + tally("call", this.namespace, this.name, args); + if (this.name === "sub_foo") { + return 13; + } + } + + callFunctionNoReturn(args) { + tally("call", this.namespace, this.name, args); + } + + getProperty() { + tally("get", this.namespace, this.name); + } + + setProperty(value) { + tally("set", this.namespace, this.name, value); + } + + addListener(listener, args) { + tally("addListener", this.namespace, this.name, [listener, args]); + } + + removeListener(listener) { + tally("removeListener", this.namespace, this.name, [listener]); + } + + hasListener(listener) { + tally("hasListener", this.namespace, this.name, [listener]); + } +} + +let wrapper = { + url: "moz-extension://b66e3509-cdb3-44f6-8eb8-c8b39b3a1d27/", + + cloneScope: global, + + checkLoadURL(url) { + return !url.startsWith("chrome:"); + }, + + preprocessors: { + localize(value, context) { + return value.replace(/__MSG_(.*?)__/g, (m0, m1) => `${m1.toUpperCase()}`); + }, + }, + + logError(message) { + talliedErrors.push(message); + }, + + hasPermission(permission) { + return permissions.has(permission); + }, + + shouldInject(ns, name) { + return name != "do-not-inject"; + }, + + getImplementation(namespace, name) { + return new TallyingAPIImplementation(namespace, name); + }, +}; + +add_task(async function() { + let baseSchemas = new Map([ + ["resource://schemas/base.json", baseSchemaJSON], + ]); + let experimentSchemas = new Map([ + ["resource://experiment-foo/schema.json", experimentFooJSON], + ["resource://experiment-bar/schema.json", experimentBarJSON], + ]); + + let baseSchema = new SchemaRoot(null, baseSchemas); + let schema = new SchemaRoot(baseSchema, experimentSchemas); + + baseSchema.parseSchemas(); + schema.parseSchemas(); + + let root = {}; + let base = {}; + + tallied = null; + + baseSchema.inject(base, wrapper); + schema.inject(root, wrapper); + + equal(typeof base.base, "object", "base.base exists"); + equal(typeof root.base, "object", "root.base exists"); + equal(typeof base.experiments, "undefined", "base.experiments exists not"); + equal(typeof root.experiments, "object", "root.experiments exists"); + equal(typeof root.experiments.foo, "object", "root.experiments.foo exists"); + equal(typeof root.experiments.bar, "object", "root.experiments.bar exists"); + + equal(tallied, null); + + equal(root.base.PROP1, 42, "root.base.PROP1"); + equal(base.base.PROP1, 42, "root.base.PROP1"); + + root.base.foo("value2"); + verify("call", "base", "foo", ["value2"]); + + base.base.foo("value3"); + verify("call", "base", "foo", ["value3"]); + + + root.experiments.foo.foo("foo2", "value1"); + verify("call", "experiments.foo", "foo", ["foo2", "value1"]); + + root.experiments.bar.bar("bar2", "value1"); + verify("call", "experiments.bar", "bar", ["bar2", "value1"]); + + + Assert.throws(() => root.base.foo("Meh."), + /Type error for parameter arg1/, + "root.base.foo()"); + + Assert.throws(() => base.base.foo("Meh."), + /Type error for parameter arg1/, + "base.base.foo()"); + + Assert.throws(() => root.experiments.foo.foo("Meh."), + /Incorrect argument types/, + "root.experiments.foo.foo()"); + + Assert.throws(() => root.experiments.bar.bar("Meh."), + /Incorrect argument types/, + "root.experiments.bar.bar()"); +}); diff --git a/toolkit/components/extensions/test/xpcshell/xpcshell.ini b/toolkit/components/extensions/test/xpcshell/xpcshell.ini index c0b3397c1231..beaf3656d63b 100644 --- a/toolkit/components/extensions/test/xpcshell/xpcshell.ini +++ b/toolkit/components/extensions/test/xpcshell/xpcshell.ini @@ -40,6 +40,7 @@ tags = webextensions in-process-webextensions [test_ext_manifest_minimum_opera_version.js] [test_ext_manifest_themes.js] [test_ext_schemas.js] +[test_ext_schemas_roots.js] [test_ext_schemas_async.js] [test_ext_schemas_allowed_contexts.js] [test_ext_schemas_interactive.js] diff --git a/toolkit/components/places/History.cpp b/toolkit/components/places/History.cpp index 890247e4fe9a..457263778b6c 100644 --- a/toolkit/components/places/History.cpp +++ b/toolkit/components/places/History.cpp @@ -2157,6 +2157,7 @@ History::~History() { UnregisterWeakMemoryReporter(this); + MOZ_ASSERT(gService == this); gService = nullptr; } @@ -2658,9 +2659,10 @@ already_AddRefed History::GetSingleton() { if (!gService) { - gService = new History(); - NS_ENSURE_TRUE(gService, nullptr); - gService->InitMemoryReporter(); + RefPtr svc = new History(); + MOZ_ASSERT(gService == svc.get()); + svc->InitMemoryReporter(); + return svc.forget(); } return do_AddRef(gService); diff --git a/toolkit/components/reputationservice/ApplicationReputation.cpp b/toolkit/components/reputationservice/ApplicationReputation.cpp index 680915f5bf53..1fb59f09691c 100644 --- a/toolkit/components/reputationservice/ApplicationReputation.cpp +++ b/toolkit/components/reputationservice/ApplicationReputation.cpp @@ -1556,6 +1556,7 @@ already_AddRefed ApplicationReputationService::GetSingleton() { if (!gApplicationReputationService) { + // Note: This is cleared in the new ApplicationReputationService destructor. gApplicationReputationService = new ApplicationReputationService(); } return do_AddRef(gApplicationReputationService); diff --git a/toolkit/components/telemetry/Telemetry.cpp b/toolkit/components/telemetry/Telemetry.cpp index 4aaa1152437e..9681a846cea1 100644 --- a/toolkit/components/telemetry/Telemetry.cpp +++ b/toolkit/components/telemetry/Telemetry.cpp @@ -1942,6 +1942,12 @@ Accumulate(HistogramID aID, const nsCString& aKey, uint32_t aSample) TelemetryHistogram::Accumulate(aID, aKey, aSample); } +void +Accumulate(HistogramID aID, const nsCString& aKey, const nsTArray& aSamples) +{ + TelemetryHistogram::Accumulate(aID, aKey, aSamples); +} + void Accumulate(const char* name, uint32_t sample) { diff --git a/toolkit/components/telemetry/Telemetry.h b/toolkit/components/telemetry/Telemetry.h index 1bac7cea926f..f01af4c0ae20 100644 --- a/toolkit/components/telemetry/Telemetry.h +++ b/toolkit/components/telemetry/Telemetry.h @@ -74,6 +74,14 @@ void Accumulate(HistogramID id, const nsTArray& samples); */ void Accumulate(HistogramID id, const nsCString& key, uint32_t sample = 1); +/** + * Adds an array of samples to a histogram defined in TelemetryHistograms.h + * @param id - histogram id + * @param samples - values to record. + * @param key - the string key + */ +void Accumulate(HistogramID id, const nsCString& key, const nsTArray& samples); + /** * Adds a sample to a histogram defined in TelemetryHistogramEnums.h. * This function is here to support telemetry measurements from Java, diff --git a/toolkit/components/telemetry/TelemetryHistogram.cpp b/toolkit/components/telemetry/TelemetryHistogram.cpp index c7eafab61b05..aeaf35d9742c 100644 --- a/toolkit/components/telemetry/TelemetryHistogram.cpp +++ b/toolkit/components/telemetry/TelemetryHistogram.cpp @@ -1143,17 +1143,13 @@ internal_JSHistogram_Add(JSContext *cx, unsigned argc, JS::Value *vp) // rather report failures using the console. args.rval().setUndefined(); - if (!internal_CanRecordBase()) { - return true; - } - uint32_t value = 0; if ((type == nsITelemetry::HISTOGRAM_COUNT) && (args.length() == 0)) { // If we don't have an argument for the count histogram, assume an increment of 1. // Otherwise, make sure to run some sanity checks on the argument. value = 1; } else if ((args.length() > 0) && args[0].isString() && - gHistogramInfos[id].histogramType == nsITelemetry::HISTOGRAM_CATEGORICAL) { + type == nsITelemetry::HISTOGRAM_CATEGORICAL) { // For categorical histograms we allow passing a string argument that specifies the label. nsAutoJSString label; if (!label.init(cx, args[0])) { @@ -1208,20 +1204,31 @@ internal_JSHistogram_Snapshot(JSContext *cx, unsigned argc, JS::Value *vp) JSHistogramData* data = static_cast(JS_GetPrivate(obj)); MOZ_ASSERT(data); HistogramID id = data->histogramId; - MOZ_ASSERT(internal_IsHistogramEnumId(id)); - // This is not good standard behavior given that we have histogram instances - // covering multiple processes and two session types. - // However, changing this requires some broader changes to callers. - Histogram* h = internal_GetHistogramById(id, ProcessID::Parent, SessionType::Session); - MOZ_ASSERT(h); + Histogram* h = nullptr; + Histogram::SampleSet ss; + { + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + MOZ_ASSERT(internal_IsHistogramEnumId(id)); + + // This is not good standard behavior given that we have histogram instances + // covering multiple processes and two session types. + // However, changing this requires some broader changes to callers. + h = internal_GetHistogramById(id, ProcessID::Parent, SessionType::Session); + // Take a snapshot of Histogram::SampleSet here, protected by the lock, + // and then, outside of the lock protection, mirror it to a JS structure + MOZ_ASSERT(h); + h->SnapshotSample(&ss); + } JS::Rooted snapshot(cx, JS_NewPlainObject(cx)); if (!snapshot) { return false; } - switch (internal_ReflectHistogramSnapshot(cx, snapshot, h)) { + reflectStatus status = internal_ReflectHistogramAndSamples(cx, snapshot, h, ss); + + switch (status) { case REFLECT_FAILURE: return false; case REFLECT_OK: @@ -1246,8 +1253,6 @@ internal_JSHistogram_Clear(JSContext *cx, unsigned argc, JS::Value *vp) JSHistogramData* data = static_cast(JS_GetPrivate(obj)); MOZ_ASSERT(data); - HistogramID id = data->histogramId; - MOZ_ASSERT(internal_IsHistogramEnumId(id)); bool onlySubsession = false; JS::CallArgs args = JS::CallArgsFromVp(argc, vp); @@ -1266,7 +1271,13 @@ internal_JSHistogram_Clear(JSContext *cx, unsigned argc, JS::Value *vp) } #endif - internal_ClearHistogram(id, onlySubsession); + HistogramID id = data->histogramId; + { + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + + MOZ_ASSERT(internal_IsHistogramEnumId(id)); + internal_ClearHistogram(id, onlySubsession); + } return true; } @@ -1518,7 +1529,10 @@ internal_JSKeyedHistogram_Add(JSContext *cx, unsigned argc, JS::Value *vp) } } - internal_Accumulate(id, NS_ConvertUTF16toUTF8(key), value); + { + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + internal_Accumulate(id, NS_ConvertUTF16toUTF8(key), value); + } return true; } @@ -1536,12 +1550,18 @@ internal_JSKeyedHistogram_Keys(JSContext *cx, unsigned argc, JS::Value *vp) JSHistogramData* data = static_cast(JS_GetPrivate(obj)); MOZ_ASSERT(data); HistogramID id = data->histogramId; - MOZ_ASSERT(internal_IsHistogramEnumId(id)); - // This is not good standard behavior given that we have histogram instances - // covering multiple processes and two session types. - // However, changing this requires some broader changes to callers. - KeyedHistogram* keyed = internal_GetKeyedHistogramById(id, ProcessID::Parent); + KeyedHistogram* keyed = nullptr; + { + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + MOZ_ASSERT(internal_IsHistogramEnumId(id)); + + // This is not good standard behavior given that we have histogram instances + // covering multiple processes and two session types. + // However, changing this requires some broader changes to callers. + keyed = internal_GetKeyedHistogramById(id, ProcessID::Parent); + } + MOZ_ASSERT(keyed); if (!keyed) { return false; @@ -1594,38 +1614,40 @@ internal_JSKeyedHistogram_Clear(JSContext *cx, unsigned argc, JS::Value *vp) JSHistogramData* data = static_cast(JS_GetPrivate(obj)); MOZ_ASSERT(data); HistogramID id = data->histogramId; - MOZ_ASSERT(internal_IsHistogramEnumId(id)); JS::CallArgs args = JS::CallArgsFromVp(argc, vp); // This function should always return |undefined| and never fail but // rather report failures using the console. args.rval().setUndefined(); - // This is not good standard behavior given that we have histogram instances - // covering multiple processes and two session types. - // However, changing this requires some broader changes to callers. - KeyedHistogram* keyed = internal_GetKeyedHistogramById(id, ProcessID::Parent, /* instantiate = */ false); - if (!keyed) { - return true; - } - -#if !defined(MOZ_WIDGET_ANDROID) bool onlySubsession = false; + #if !defined(MOZ_WIDGET_ANDROID) + if (args.length() >= 1) { + if (!(args[0].isNumber() || args[0].isBoolean())) { + JS_ReportErrorASCII(cx, "Not a boolean"); + return false; + } + onlySubsession = JS::ToBoolean(args[0]); + } + #endif - if (args.length() >= 1) { - if (!(args[0].isNumber() || args[0].isBoolean())) { - JS_ReportErrorASCII(cx, "Not a boolean"); - return false; + KeyedHistogram* keyed = nullptr; + { + MOZ_ASSERT(internal_IsHistogramEnumId(id)); + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + + // This is not good standard behavior given that we have histogram instances + // covering multiple processes and two session types. + // However, changing this requires some broader changes to callers. + keyed = internal_GetKeyedHistogramById(id, ProcessID::Parent, /* instantiate = */ false); + + if (!keyed) { + return true; } - onlySubsession = JS::ToBoolean(args[0]); + keyed->Clear(onlySubsession); } - keyed->Clear(onlySubsession); -#else - keyed->Clear(false); -#endif - return true; } @@ -1915,6 +1937,36 @@ TelemetryHistogram::Accumulate(HistogramID aID, internal_Accumulate(aID, aKey, aSample); } +void +TelemetryHistogram::Accumulate(HistogramID aID, const nsCString& aKey, + const nsTArray& aSamples) +{ + if (NS_WARN_IF(!internal_IsHistogramEnumId(aID))) { + MOZ_ASSERT_UNREACHABLE("Histogram usage requires valid ids"); + return; + } + + // Check that this histogram is keyed + MOZ_ASSERT(gHistogramInfos[aID].keyed, "Cannot accumulate into a non-keyed histogram using a key."); + + // Check if we're allowed to record in the provided key, for this histogram. + if (!gHistogramInfos[aID].allows_key(aKey)) { + nsPrintfCString msg("%s - key '%s' not allowed for this keyed histogram", + gHistogramInfos[aID].name(), + aKey.get()); + LogToBrowserConsole(nsIScriptError::errorFlag, NS_ConvertUTF8toUTF16(msg)); + TelemetryScalar::Add( + mozilla::Telemetry::ScalarID::TELEMETRY_ACCUMULATE_UNKNOWN_HISTOGRAM_KEYS, + NS_ConvertASCIItoUTF16(gHistogramInfos[aID].name()), 1); + return; + } + + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + for(uint32_t sample: aSamples){ + internal_Accumulate(aID, aKey, sample); + } +} + void TelemetryHistogram::Accumulate(const char* name, uint32_t sample) { @@ -2107,7 +2159,68 @@ TelemetryHistogram::CreateHistogramSnapshots(JSContext* aCx, SessionType sessionType = SessionType(aSubsession); - for (uint32_t process = 0; process < static_cast(ProcessID::Count); ++process) { + // Struct used to keep information about the histograms for which a + // snapshot should be created + struct MOZ_NON_MEMMOVABLE HistogramProcessInfo { + Histogram* h; + Histogram::SampleSet ss; + size_t index; + }; + + mozilla::Vector> + processHistArray; + { + if (!processHistArray.resize(static_cast(ProcessID::Count))) { + return NS_ERROR_OUT_OF_MEMORY; + } + + StaticMutexAutoLock locker(gTelemetryHistogramMutex); + for (uint32_t process = 0; process < static_cast(ProcessID::Count); ++process) { + mozilla::Vector& hArray = processHistArray[process]; + + for (size_t i = 0; i < HistogramCount; ++i) { + const HistogramInfo& info = gHistogramInfos[i]; + if (info.keyed) { + continue; + } + + HistogramID id = HistogramID(i); + + if (!CanRecordInProcess(info.record_in_processes, ProcessID(process)) || + ((ProcessID(process) == ProcessID::Gpu) && !includeGPUProcess)) { + continue; + } + + if (!IsInDataset(info.dataset, aDataset)) { + continue; + } + + bool shouldInstantiate = + info.histogramType == nsITelemetry::HISTOGRAM_FLAG; + Histogram* h = internal_GetHistogramById(id, ProcessID(process), + sessionType, + shouldInstantiate); + if (!h || internal_IsExpired(h) || !internal_ShouldReflectHistogram(h, id)) { + continue; + } + + Histogram::SampleSet ss; + h->SnapshotSample(&ss); + if (!hArray.emplaceBack(HistogramProcessInfo{h, ss, i})) { + return NS_ERROR_OUT_OF_MEMORY; + } + +#if !defined(MOZ_WIDGET_ANDROID) + if ((sessionType == SessionType::Subsession) && aClearSubsession) { + h->Clear(); + } +#endif + } + } + } + + // Make the JS calls on the stashed histograms for every process + for (uint32_t process = 0; process < processHistArray.length(); ++process) { JS::Rooted processObject(aCx, JS_NewPlainObject(aCx)); if (!processObject) { return NS_ERROR_FAILURE; @@ -2117,37 +2230,23 @@ TelemetryHistogram::CreateHistogramSnapshots(JSContext* aCx, processObject, JSPROP_ENUMERATE)) { return NS_ERROR_FAILURE; } - for (size_t i = 0; i < HistogramCount; ++i) { - const HistogramInfo& info = gHistogramInfos[i]; - if (info.keyed) { - continue; - } - HistogramID id = HistogramID(i); + const mozilla::Vector& hArray = processHistArray[process]; + for (size_t i = 0; i < hArray.length(); ++i) { + const HistogramProcessInfo& hData = hArray[i]; + uint32_t histogramIndex = hData.index; - if (!CanRecordInProcess(info.record_in_processes, ProcessID(process)) || - ((ProcessID(process) == ProcessID::Gpu) && !includeGPUProcess)) { - continue; - } - - if (!IsInDataset(info.dataset, aDataset)) { - continue; - } - - bool shouldInstantiate = - info.histogramType == nsITelemetry::HISTOGRAM_FLAG; - Histogram* h = internal_GetHistogramById(id, ProcessID(process), - sessionType, - shouldInstantiate); - if (!h || internal_IsExpired(h) || !internal_ShouldReflectHistogram(h, id)) { - continue; - } + HistogramID id = HistogramID(histogramIndex); JS::Rooted hobj(aCx, JS_NewPlainObject(aCx)); if (!hobj) { return NS_ERROR_FAILURE; } - switch (internal_ReflectHistogramSnapshot(aCx, hobj, h)) { + + Histogram* h = hData.h; + reflectStatus status = internal_ReflectHistogramAndSamples(aCx, hobj, h, + hData.ss); + switch (status) { case REFLECT_FAILURE: return NS_ERROR_FAILURE; case REFLECT_OK: @@ -2156,12 +2255,6 @@ TelemetryHistogram::CreateHistogramSnapshots(JSContext* aCx, return NS_ERROR_FAILURE; } } - -#if !defined(MOZ_WIDGET_ANDROID) - if ((sessionType == SessionType::Subsession) && aClearSubsession) { - h->Clear(); - } -#endif } } return NS_OK; diff --git a/toolkit/components/telemetry/TelemetryHistogram.h b/toolkit/components/telemetry/TelemetryHistogram.h index 216e99230c1e..9fca4ccf6858 100644 --- a/toolkit/components/telemetry/TelemetryHistogram.h +++ b/toolkit/components/telemetry/TelemetryHistogram.h @@ -39,6 +39,8 @@ void Accumulate(mozilla::Telemetry::HistogramID aHistogram, uint32_t aSample); void Accumulate(mozilla::Telemetry::HistogramID aHistogram, const nsTArray& aSamples); void Accumulate(mozilla::Telemetry::HistogramID aID, const nsCString& aKey, uint32_t aSample); +void Accumulate(mozilla::Telemetry::HistogramID aID, const nsCString& aKey, + const nsTArray& aSamples); void Accumulate(const char* name, uint32_t sample); void Accumulate(const char* name, const nsCString& key, uint32_t sample); diff --git a/toolkit/components/telemetry/tests/gtest/TestHistograms.cpp b/toolkit/components/telemetry/tests/gtest/TestHistograms.cpp index c8135bd1b898..771072b4304c 100644 --- a/toolkit/components/telemetry/tests/gtest/TestHistograms.cpp +++ b/toolkit/components/telemetry/tests/gtest/TestHistograms.cpp @@ -349,3 +349,183 @@ TEST_F(TelemetryTestFixture, AccumulateLinearHistogram_DifferentSamples) ASSERT_EQ(uCountFirst, kExpectedCountFirst) << "The first bucket did not accumulate the correct number of values"; ASSERT_EQ(uCountLast, kExpectedCountLast) << "The last bucket did not accumulate the correct number of values"; } + +TEST_F(TelemetryTestFixture, AccumulateKeyedCountHistogram_MultipleSamples) +{ + const nsTArray samples({5, 10, 15}); + const uint32_t kExpectedSum = 5 + 10 + 15; + + AutoJSContextWithGlobal cx(mCleanGlobal); + + GetAndClearHistogram(cx.GetJSContext(), mTelemetry, + NS_LITERAL_CSTRING("TELEMETRY_TEST_KEYED_COUNT"), true); + + // Accumulate data in the provided key within the histogram + Telemetry::Accumulate(Telemetry::TELEMETRY_TEST_KEYED_COUNT, NS_LITERAL_CSTRING("sample"), + samples); + + // Get a snapshot for all the histograms + JS::RootedValue snapshot(cx.GetJSContext()); + GetSnapshots(cx.GetJSContext(), mTelemetry, "TELEMETRY_TEST_KEYED_COUNT", &snapshot, true); + + // Get the histogram from the snapshot + JS::RootedValue histogram(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "TELEMETRY_TEST_KEYED_COUNT", snapshot, &histogram); + + // Get "sample" property from histogram + JS::RootedValue expectedKeyData(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "sample", histogram, &expectedKeyData); + + // Get "sum" property from keyed data + JS::RootedValue sum(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "sum", expectedKeyData, &sum); + + // Check that the sum stored in the histogram matches with |kExpectedSum| + uint32_t uSum = 0; + JS::ToUint32(cx.GetJSContext(), sum, &uSum); + ASSERT_EQ(uSum, kExpectedSum) << "The histogram is not returning expected sum"; +} + +TEST_F(TelemetryTestFixture, TestKeyedLinearHistogram_MultipleSamples) +{ + AutoJSContextWithGlobal cx(mCleanGlobal); + + GetAndClearHistogram(cx.GetJSContext(), mTelemetry, + NS_LITERAL_CSTRING("TELEMETRY_TEST_KEYED_LINEAR"), true); + + const nsTArray samples({1,5,250000}); + // Test the accumulation on the key 'testkey', using + // the API that accepts histogram IDs. + Telemetry::Accumulate(Telemetry::TELEMETRY_TEST_KEYED_LINEAR, + NS_LITERAL_CSTRING("testkey"), samples); + + // Get a snapshot for all the histograms + JS::RootedValue snapshot(cx.GetJSContext()); + GetSnapshots(cx.GetJSContext(), mTelemetry, "TELEMETRY_TEST_KEYED_LINEAR", &snapshot, true); + + // Get the histogram from the snapshot + JS::RootedValue histogram(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "TELEMETRY_TEST_KEYED_LINEAR", snapshot, &histogram); + + // Get "testkey" property from histogram. + JS::RootedValue expectedKeyData(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "testkey", histogram, &expectedKeyData); + ASSERT_TRUE(!expectedKeyData.isUndefined()) + << "Cannot find the expected key in the histogram data"; + + // Get counts array from 'testkey' histogram. + JS::RootedValue counts(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "counts", expectedKeyData, &counts); + + // Get counts in first and last buckets. + JS::RootedValue countFirst(cx.GetJSContext()); + JS::RootedValue countLast(cx.GetJSContext()); + const uint32_t firstIndex = 1; + const uint32_t lastIndex = 9; + GetElement(cx.GetJSContext(), firstIndex, counts, &countFirst); + GetElement(cx.GetJSContext(), lastIndex, counts, &countLast); + + // Check that the counts match. + uint32_t uCountFirst = 0; + uint32_t uCountLast = 0; + JS::ToUint32(cx.GetJSContext(), countFirst, &uCountFirst); + JS::ToUint32(cx.GetJSContext(), countLast, &uCountLast); + + const uint32_t kExpectedCountFirst = 2; + const uint32_t kExpectedCountLast = 1; + ASSERT_EQ(uCountFirst, kExpectedCountFirst) + << "The first bucket did not accumulate the correct number of values for key 'testkey'"; + ASSERT_EQ(uCountLast, kExpectedCountLast) + << "The last bucket did not accumulate the correct number of values for key 'testkey'"; +} + +TEST_F(TelemetryTestFixture, TestKeyedKeysHistogram_MultipleSamples) +{ + AutoJSContextWithGlobal cx(mCleanGlobal); + mTelemetry->ClearScalars(); + const nsTArray samples({false, false, true, 32, true}); + + GetAndClearHistogram(cx.GetJSContext(), mTelemetry, + NS_LITERAL_CSTRING("TELEMETRY_TEST_KEYED_KEYS"), true); + + // Test the accumulation on both the allowed and unallowed keys, using + // the API that accepts histogram IDs. + Telemetry::Accumulate(Telemetry::TELEMETRY_TEST_KEYED_KEYS, + NS_LITERAL_CSTRING("not-allowed"), samples); + Telemetry::Accumulate(Telemetry::TELEMETRY_TEST_KEYED_KEYS, + NS_LITERAL_CSTRING("testkey"), samples); + + // Get a snapshot for all the histograms + JS::RootedValue snapshot(cx.GetJSContext()); + GetSnapshots(cx.GetJSContext(), mTelemetry, "TELEMETRY_TEST_KEYED_KEYS", &snapshot, true); + + // Get the histogram from the snapshot + JS::RootedValue histogram(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "TELEMETRY_TEST_KEYED_KEYS", snapshot, &histogram); + + // Get "testkey" property from histogram and check that it stores the correct data. + JS::RootedValue testKeyData(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "testkey", histogram, &testKeyData); + ASSERT_TRUE(!testKeyData.isUndefined()) + << "Cannot find the key 'testkey' in the histogram data"; + + JS::RootedValue counts(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "counts", testKeyData, &counts); + + // Get counts in buckets 0,1,2 + const uint32_t falseIndex = 0; + const uint32_t trueIndex = 1; + const uint32_t otherIndex = 2; + + JS::RootedValue countFalse(cx.GetJSContext()); + JS::RootedValue countTrue(cx.GetJSContext()); + JS::RootedValue countOther(cx.GetJSContext()); + + GetElement(cx.GetJSContext(), falseIndex, counts, &countFalse); + GetElement(cx.GetJSContext(), trueIndex, counts, &countTrue); + GetElement(cx.GetJSContext(), otherIndex, counts, &countOther); + + uint32_t uCountFalse = 0; + uint32_t uCountTrue = 0; + uint32_t uCountOther = 0; + JS::ToUint32(cx.GetJSContext(), countFalse, &uCountFalse); + JS::ToUint32(cx.GetJSContext(), countTrue, &uCountTrue); + JS::ToUint32(cx.GetJSContext(), countOther, &uCountOther); + + const uint32_t kExpectedCountFalse = 2; + const uint32_t kExpectedCountTrue = 3; + const uint32_t kExpectedCountOther = 0; + + ASSERT_EQ(uCountFalse, kExpectedCountFalse) + << "The histogram did not accumulate the correct number of 'false' booleans for key 'testkey'"; + ASSERT_EQ(uCountTrue, kExpectedCountTrue) + << "The histogram did not accumulate the correct number of 'true' booleans for key 'testkey'"; + ASSERT_EQ(uCountOther, kExpectedCountOther) + << "The histogram did not accumulate the correct number of undefined values for key 'testkey'"; + + // Here we check that we are not accumulating to a different (but still 'allowed') key. + // Get "CommonKey" property from histogram and check that it has no data. + // Since we accumulated no data to it, commonKeyData should be undefined. + JS::RootedValue commonKeyData(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "CommonKey", histogram, &commonKeyData); + ASSERT_TRUE(commonKeyData.isUndefined()) + << "Found data in key 'CommonKey' even though we accumulated no data to it"; + + // Here we check that our function does not allow accumulation into unallowed keys. + // Get 'not-allowed' property from histogram and check that this also has no data. + // This should contain no data because this key is not allowed. + JS::RootedValue notAllowedKeyData(cx.GetJSContext()); + GetProperty(cx.GetJSContext(), "not-allowed", histogram, ¬AllowedKeyData); + ASSERT_TRUE(notAllowedKeyData.isUndefined()) + << "Found data in key 'not-allowed' even though accumuling data to it is not allowed"; + + // The 'not-allowed' key accumulation for 'TELEMETRY_TESTED_KEYED_KEYS' was + // attemtped once, so we expect the count of + // 'telemetry.accumulate_unknown_histogram_keys' to be 1 + const uint32_t expectedAccumulateUnknownCount = 1; + JS::RootedValue scalarsSnapshot(cx.GetJSContext()); + GetScalarsSnapshot(true, cx.GetJSContext(),&scalarsSnapshot); + CheckKeyedUintScalar("telemetry.accumulate_unknown_histogram_keys", + "TELEMETRY_TEST_KEYED_KEYS", cx.GetJSContext(), + scalarsSnapshot, expectedAccumulateUnknownCount); +} diff --git a/toolkit/modules/sessionstore/SessionHistory.jsm b/toolkit/modules/sessionstore/SessionHistory.jsm index 4f4e948c3358..c59d9f9dd6e0 100644 --- a/toolkit/modules/sessionstore/SessionHistory.jsm +++ b/toolkit/modules/sessionstore/SessionHistory.jsm @@ -77,7 +77,6 @@ var SessionHistoryInternal = { let loadContext = docShell.QueryInterface(Ci.nsILoadContext); let webNavigation = docShell.QueryInterface(Ci.nsIWebNavigation); let history = webNavigation.sessionHistory.QueryInterface(Ci.nsISHistoryInternal); - let ihistory = history.QueryInterface(Ci.nsISHistory); let data = {entries: [], userContextId: loadContext.originAttributes.userContextId }; // We want to keep track how many entries we *could* have collected and @@ -123,17 +122,7 @@ var SessionHistoryInternal = { } } - // Transform the entries from local to global index space. - data.index += ihistory.globalIndexOffset; - data.fromIdx = aFromIdx + ihistory.globalIndexOffset; - - // If we are not the most recent partialSHistory in our groupedSHistory, we - // need to make certain that we don't replace the entries from the following - // SHistories - so we replace only the number of entries which our SHistory - // takes up. - if (ihistory.globalIndexOffset + ihistory.count < ihistory.globalCount) { - data.toIdx = data.fromIdx + ihistory.count; - } + data.fromIdx = aFromIdx; return data; }, diff --git a/toolkit/mozapps/extensions/AddonPathService.cpp b/toolkit/mozapps/extensions/AddonPathService.cpp index 2006e8a0b62c..859d55fb3269 100644 --- a/toolkit/mozapps/extensions/AddonPathService.cpp +++ b/toolkit/mozapps/extensions/AddonPathService.cpp @@ -50,6 +50,7 @@ AddonPathService::AddonPathService() AddonPathService::~AddonPathService() { + MOZ_ASSERT(sInstance == this); sInstance = nullptr; } diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm index b6a331d5faf4..5759fd1be7d8 100644 --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm @@ -4383,6 +4383,7 @@ this.XPIProvider = { installPath: aFile.clone(), resourceURI: getURIForResourceInFile(aFile, ""), signedState: aAddon.signedState, + temporarilyInstalled: aAddon._installLocation == TemporaryInstallLocation, }; if (aMethod == "startup" && aAddon.startupData) { diff --git a/tools/lint/eslint/modules.json b/tools/lint/eslint/modules.json index 62c2deb4083f..8de179b6cfb4 100644 --- a/tools/lint/eslint/modules.json +++ b/tools/lint/eslint/modules.json @@ -175,6 +175,7 @@ "rotaryengine.js": ["RotaryEngine", "RotaryRecord", "RotaryStore", "RotaryTracker"], "require.js": ["require"], "RTCStatsReport.jsm": ["convertToRTCStatsReport"], + "Schemas.jsm": ["SchemaRoot", "Schemas"], "scratchpad-manager.jsm": ["ScratchpadManager"], "server.js": ["server"], "service.js": ["Service"], diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp index f8a100e33e69..2302a347d4e6 100644 --- a/tools/profiler/core/platform.cpp +++ b/tools/profiler/core/platform.cpp @@ -42,12 +42,14 @@ #include "GeckoProfilerReporter.h" #include "ProfilerIOInterposeObserver.h" #include "mozilla/AutoProfilerLabel.h" +#include "mozilla/ExtensionPolicyService.h" #include "mozilla/Scheduler.h" #include "mozilla/StackWalk.h" #include "mozilla/StaticPtr.h" #include "mozilla/ThreadLocal.h" #include "mozilla/TimeStamp.h" #include "mozilla/StaticPtr.h" +#include "mozilla/extensions/WebExtensionPolicy.h" #include "ThreadInfo.h" #include "nsIHttpProtocolHandler.h" #include "nsIObserverService.h" @@ -1544,6 +1546,41 @@ StreamMetaJSCustomObject(PSLockRef aLock, SpliceableJSONWriter& aWriter, if (!NS_FAILED(res)) aWriter.StringProperty("product", string.Data()); } + + aWriter.StartObjectProperty("extensions"); + { + { + JSONSchemaWriter schema(aWriter); + schema.WriteField("id"); + schema.WriteField("name"); + schema.WriteField("baseURL"); + } + + aWriter.StartArrayProperty("data"); + { + nsTArray> exts; + ExtensionPolicyService::GetSingleton().GetAll(exts); + + for (auto& ext : exts) { + aWriter.StartArrayElement(JSONWriter::SingleLineStyle); + + nsAutoString id; + ext->GetId(id); + aWriter.StringElement(NS_ConvertUTF16toUTF8(id).get()); + + aWriter.StringElement(NS_ConvertUTF16toUTF8(ext->Name()).get()); + + auto url = ext->GetURL(NS_LITERAL_STRING("")); + if (url.isOk()) { + aWriter.StringElement(NS_ConvertUTF16toUTF8(url.unwrap()).get()); + } + + aWriter.EndArray(); + } + } + aWriter.EndArray(); + } + aWriter.EndObject(); } #if defined(GP_OS_android) diff --git a/uriloader/prefetch/nsOfflineCacheUpdateService.cpp b/uriloader/prefetch/nsOfflineCacheUpdateService.cpp index 35eec46d73b3..9eb25fa313b9 100644 --- a/uriloader/prefetch/nsOfflineCacheUpdateService.cpp +++ b/uriloader/prefetch/nsOfflineCacheUpdateService.cpp @@ -256,6 +256,7 @@ nsOfflineCacheUpdateService::nsOfflineCacheUpdateService() nsOfflineCacheUpdateService::~nsOfflineCacheUpdateService() { + MOZ_ASSERT(gOfflineCacheUpdateService == this); gOfflineCacheUpdateService = nullptr; delete mAllowedDomains; @@ -300,11 +301,9 @@ nsOfflineCacheUpdateService::GetInstance() { if (!gOfflineCacheUpdateService) { auto serv = MakeRefPtr(); - gOfflineCacheUpdateService = serv.get(); - if (NS_FAILED(serv->Init())) { - gOfflineCacheUpdateService = nullptr; - return nullptr; - } + if (NS_FAILED(serv->Init())) + serv = nullptr; + MOZ_ASSERT(gOfflineCacheUpdateService == serv.get()); return serv.forget(); } diff --git a/xpfe/appshell/nsContentTreeOwner.cpp b/xpfe/appshell/nsContentTreeOwner.cpp index d53b6ce37aac..b255450e59e3 100644 --- a/xpfe/appshell/nsContentTreeOwner.cpp +++ b/xpfe/appshell/nsContentTreeOwner.cpp @@ -430,25 +430,6 @@ NS_IMETHODIMP nsContentTreeOwner::ReloadInFreshProcess(nsIDocShell* aDocShell, return NS_OK; } -NS_IMETHODIMP nsContentTreeOwner::StartPrerenderingDocument(nsIURI* aHref, - nsIURI* aReferrer, - nsIPrincipal* aTriggeringPrincipal) -{ - NS_WARNING("Cannot prerender a document in the parent process"); - return NS_ERROR_FAILURE; -} - -NS_IMETHODIMP nsContentTreeOwner::ShouldSwitchToPrerenderedDocument(nsIURI* aHref, - nsIURI* aReferrer, - nsIRunnable* aSuccess, - nsIRunnable* aFailure, - bool* aRetval) -{ - NS_WARNING("Cannot switch to prerendered document in the parent process"); - *aRetval = false; - return NS_OK; -} - //***************************************************************************** // nsContentTreeOwner::nsIWebBrowserChrome2 //*****************************************************************************