Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions files/en-us/mozilla/firefox/releases/87/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ <h3 id="webdriver_conformance_marionette">WebDriver conformance (Marionette)</h3
<p><em>No changes.</em></p>

<h2 id="Changes_for_add-on_developers">Changes for add-on developers</h2>
<ul>
<li><a href="en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">nativeMessaging</a> is now an <a href="en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions">optional permission</a> ({{bug(1630415)}}).</li>
</ul>

<p><em>No changes.</em></p>

Expand Down
4 changes: 4 additions & 0 deletions files/en-us/mozilla/firefox/releases/88/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ <h4 id="removals_css">Removals</h4>

<h3 id="JavaScript">JavaScript</h3>

<ul>
<li>Added support for <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec#indices">RegExp match indices</a> ({{bug(1519483)}}).</li>
</ul>

<h4 id="removals_js">Removals</h4>

<h3 id="HTTP">HTTP</h3>
Expand Down
60 changes: 60 additions & 0 deletions files/en-us/mozilla/projects/nss/nss_3.63_release_notes/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: NSS 3.63 release notes
slug: Mozilla/Projects/NSS/NSS_3.63_release_notes
---
<h2 id="Introduction">Introduction</h2>

<p>Network Security Services (NSS) 3.63 was released on <strong>18 March 2021</strong>.</p>


<h2 id="Distribution_Information">Distribution Information</h2>

<p>The HG tag is NSS_3_63_RTM. NSS 3.63 requires NSPR 4.30 or newer.</p>

<p>NSS 3.63 source distributions are available on ftp.mozilla.org for secure HTTPS download:</p>

<ul>
<li>Source tarballs:<br>
<a href="https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_63_RTM/src/">https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_63_RTM/src/</a></li>
</ul>

<p>Other releases are available <a href="/en-US/docs/Mozilla/Projects/NSS/NSS_Releases">in NSS Releases</a>.</p>

<h2 id="Bugs_fixed_in_NSS_3.63">Bugs fixed in NSS 3.63</h2>

<ul>
<li> Bug 1688374 - Fix parallel build NSS-3.61 with make.</li>
<li> Bug 1697380 - Make a clang-format run on top of helpful contributions.</li>
<li> Bug 1683520 - ECCKiila P384, change syntax of nested structs initialization to prevent build isses with GCC 4.8.</li>
<li> Bug 1683520 - [lib/freebl/ecl] P-384: allow zero scalars in dual scalar multiplication.</li>
<li> Bug 1683520 - ECCKiila P521, change syntax of nested structs initialization to prevent build isses with GCC 4.8.</li>
<li> Bug 1683520 - [lib/freebl/ecl] P-521: allow zero scalars in dual scalar multiplication.</li>
<li> Bug 1696800 - HACL* update March 2021 - c95ab70fcb2bc21025d8845281bc4bc8987ca683.</li>
<li> Bug 1694214 - tstclnt can't enable middlebox compat mode.</li>
<li> Bug 1694392 - NSS does not work with PKCS #11 modules not supporting profiles.</li>
<li> Bug 1685880 - Minor fix to prevent unused variable on early return.</li>
<li> Bug 1685880 - Fix for the gcc compiler version 7 to support setenv with nss build.</li>
<li> Bug 1693217 - Increase nssckbi.h version number for March 2021 batch of root CA changes, CA list version 2.48.</li>
<li> Bug 1692094 - Set email distrust after to 21-03-01 for Camerfirma's 'Chambers of Commerce' and 'Global Chambersign' roots.</li>
<li> Bug 1618407 - Symantec root certs - Set CKA_NSS_EMAIL_DISTRUST_AFTER.</li>
<li> Bug 1693173 - Add GlobalSign R45, E45, R46, and E46 root certs to NSS.</li>
<li> Bug 1683738 - Add AC RAIZ FNMT-RCM SERVIDORES SEGUROS root cert to NSS.</li>
<li> Bug 1686854 - Remove GeoTrust PCA-G2 and VeriSign Universal root certs from NSS.</li>
<li> Bug 1687822 - Turn off Websites trust bit for the “Staat der Nederlanden Root CA - G3” root cert in NSS.</li>
<li> Bug 1692094 - Turn off Websites Trust Bit for 'Chambers of Commerce Root - 2008' and 'Global Chambersign Root - 2008’.</li>
<li> Bug 1694291 - Tracing fixes for ECH.</li>
</ul>

<h2 id="Compatibility">Compatibility</h2>

<p>NSS 3.63 shared libraries are backwards-compatible with all older NSS 3.x shared libraries. A program linked with older NSS 3.x shared libraries will work with NSS 3.63 shared libraries without recompiling or relinking. Furthermore, applications that restrict their use of NSS APIs to the functions listed in NSS Public Functions will remain compatible with future versions of the NSS shared libraries.</p>

<h2 id="Feedback">Feedback</h2>

<p>Bugs discovered should be reported by filing a bug report on <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=NSS">bugzilla.mozilla.org</a> (product NSS).</p>

<h2 id="Notes">Notes</h2>

<p>This version of NSS contains a significant update to the root CAs.</p>

<p>Discussions about moving the documentation are still ongoing. (See discussion in the 3.62 release notes.)</p>
3 changes: 2 additions & 1 deletion files/en-us/mozilla/projects/nss/nss_releases/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@
- Release Notes
- Security
---
<p>The current <strong>Stable</strong> release of NSS is 3.62, which was released on <strong>19 February 2021</strong>. (<a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.62_release_notes">NSS 3.62 release notes</a>)</p>
<p>The current <strong>Stable</strong> release of NSS is 3.63, which was released on <strong>18 March 2021</strong>. (<a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.63_release_notes">NSS 3.63 release notes</a>)</p>

<p>The current <strong>ESR</strong> releases of NSS are 3.44.4 (<a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.44.4_release_notes">NSS 3.44.4 release notes</a>), intended for Firefox ESR 68, which was released on <strong>19 May 2020</strong>, and  3.53.1 <a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.53.1_release_notes">(NSS 3.53.1 release notes)</a>, intended for Firefox ESR 78, which was released on <strong>16 June 2020</strong>.</p>

<h2 id="Past_releases">Past releases</h2>

<ul>
<li><a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.62_release_notes">NSS 3.62 release notes</a></li>
<li><a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.61_release_notes">NSS 3.61 release notes</a></li>
<li><a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.60.1_release_notes">NSS 3.60.1 release notes</a></li>
<li><a href="/en-US/docs/Mozilla/Projects/NSS/NSS_3.60_release_notes">NSS 3.60 release notes</a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ <h2 id="Examples">Examples</h2>

<p>This begins by looking at the event's {{domxref("PaymentMethodChangeEvent.methodName", "methodName")}} property; if that indicates that the user is trying to use Apple Pay, we pass the {{domxref("PaymentMethodChangeEvent.methodDetails", "methodDetails")}} into a function called <code>calculateServiceFee()</code>, which we might create to take the information about the transaction, such as the underlying credit card being used to service the Apple Pay request, and compute and return an {{domxref("PaymentDetailsUpdate")}} object that specifies changes to be applied to the {{domxref("PaymentRequest")}} in order to add any service fees that the payment method might require.</p>

<p>Before the event handler returns, it calls the event's {{domxref("PaymentRequestUpdateEvent.updateWith", "PaymentMethodChangeEvent.updateWith", "updateWith()")}} method to integrate the changes into the request.</p>
<p>Before the event handler returns, it calls the event's {{domxref("PaymentMethodChangeEvent.updateWith()")}} method to integrate the changes into the request.</p>


<h2 id="Related_events">Related events</h2>

Expand Down
2 changes: 1 addition & 1 deletion files/en-us/web/api/window/requestidlecallback/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ <h3 id="Parameters">Parameters</h3>
<ul>
<li><code>timeout</code>: If <code>timeout</code> is specified and has a positive
value, and the callback has not already been called by the time <em>timeout</em>
milliseconds have passed, the callback will be called during the next idle period,
milliseconds have passed, a task to execute the callback is queued in the event loop,
even if doing so risks causing a negative performance impact.</li>
</ul>
</dd>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,11 @@ <h3 id="advanced_searching_with_flags">Advanced searching with flags</h3>
</tr>
</thead>
<tbody>
<tr>
<td><code>d</code></td>
<td>Generate indices for substring matches.</td>
<td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/hasIndices">RegExp.prototype.hasIndices</a></code></td>
</tr>
<tr>
<td><code>g</code></td>
<td>Global search.</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ <h2 id="See_also">See also</h2>
<ul>
<li>{{JSxRef("RegExp.lastIndex")}}</li>
<li>{{JSxRef("RegExp.prototype.global")}}</li>
<li>{{JSxRef("RegExp.prototype.hasIndices")}}</li>
<li>{{JSxRef("RegExp.prototype.ignoreCase")}}</li>
<li>{{JSxRef("RegExp.prototype.multiline")}}</li>
<li>{{JSxRef("RegExp.prototype.source")}}</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ <h3 id="Parameters">Parameters</h3>
<h3 id="Return_value">Return value</h3>

<p>If the match succeeds, the <code>exec()</code> method returns an array (with extra
properties <code>index</code> and <code>input</code>; see below) and updates the
properties <code>index</code>, <code>input</code>, and if the <code>d</code> flag is
set, <code>indices</code>; see below) and updates the
{{jsxref("RegExp.lastIndex", "lastIndex")}} property of the regular expression object.
The returned array has the matched text as the first item, and then one item for each
parenthetical capture group of the matched text.</p>
Expand All @@ -62,7 +63,7 @@ <h2 id="Description">Description</h2>
<pre class="brush: js">// Match "quick brown" followed by "jumps", ignoring characters in between
// Remember "brown" and "jumps"
// Ignore case
let re = /quick\s(brown).+?(jumps)/ig;
let re = /quick\s(brown).+?(jumps)/igd;
let result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
</pre>

Expand All @@ -79,7 +80,7 @@ <h2 id="Description">Description</h2>
</thead>
<tbody>
<tr>
<th rowspan="4" scope="row" style="vertical-align: top;"><code>result</code></th>
<th rowspan="5" scope="row" style="vertical-align: top;"><code>result</code></th>
<td><code>[0]</code></td>
<td>The full string of characters matched</td>
<td><code>"Quick Brown Fox Jumps"</code></td>
Expand All @@ -102,13 +103,33 @@ <h2 id="Description">Description</h2>
<td>The 0-based index of the match in the string.</td>
<td><code>4</code></td>
</tr>
<tr>
<td><code id="indices">indices</code></td>
<td>An array where each entry represents a substring match.
Each substring match itself is an array where the first entry
represents its start index and the second entry its end index.<br/>
The <code>indices</code> array additionally has a <code>groups</code>
property which holds an object of all named capturing groups. The keys
are the names of the capturing groups and each value is an array with
the first item being the start entry and the second entry being the
end index of the capturing group. If the regular expression doesn't
contain any capturing groups, <code>groups</code> is <code>undefined</code>.
</td>
<td>
<p><code>indices[0] === Array [ 4, 25 ]</code></p>
<p><code>indices[1] === Array [ 10, 15 ]</code></p>
<p><code>indices[2] === Array [ 20, 25 ]</code></p>
<p><code>indices.groups === undefined</code></p>
<p><code>indices.length === 3</code></p>
</td>
</tr>
<tr>
<td><code>input</code></td>
<td>The original string that was matched against.</td>
<td><code>The Quick Brown Fox Jumps Over The Lazy Dog</code></td>
</tr>
<tr>
<th rowspan="5" scope="row" style="vertical-align: top;"><code>re</code></th>
<th rowspan="9" scope="row" style="vertical-align: top;"><code>re</code></th>
<td><code>lastIndex</code></td>
<td>
<p>The index at which to start the next match.</p>
Expand All @@ -117,6 +138,22 @@ <h2 id="Description">Description</h2>
</td>
<td><code>25</code></td>
</tr>
<tr>
<td><code>dotAll</code></td>
<td>
Indicates if the <code>s</code> flag was used to let <code>.</code>
match newlines.
</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>hasIndices</code></td>
<td>
Indicates if the <code>d</code> flag was used to generate an
<code>indices</code> property in the returned value containing
start and end indices of the substring matches.</td>
<td><code>true</code></td>
</tr>
<tr>
<td><code>ignoreCase</code></td>
<td>Indicates if the <code>i</code> flag was used to ignore case.</td>
Expand All @@ -138,6 +175,23 @@ <h2 id="Description">Description</h2>
<td>The text of the pattern.</td>
<td><code>quick\s(brown).+?(jumps)</code></td>
</tr>
<tr>
<td><code>sticky</code></td>
<td>
Indicates if the <code>y</code> flag was used to match
only from the index indicated by the <code>lastIndex</code>
property.
</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>unicode</code></td>
<td>
Indicates if the <code>u</code> flag was used to
treat the pattern as a sequence of Unicode code points.
</td>
<td><code>false</code></td>
</tr>
</tbody>
</table>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,11 @@ <h2 id="See_also">See also</h2>

<ul>
<li>{{jsxref("RegExp.lastIndex")}}</li>
<li>{{jsxref("RegExp.prototype.ignoreCase")}}</li>
<li>{{jsxref("RegExp.prototype.multiline")}}</li>
<li>{{jsxref("RegExp.prototype.source")}}</li>
<li>{{jsxref("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.dotAll")}}</li>
<li>{{JSxRef("RegExp.prototype.hasIndices")}}</li>
<li>{{JSxRef("RegExp.prototype.ignoreCase")}}</li>
<li>{{JSxRef("RegExp.prototype.multiline")}}</li>
<li>{{JSxRef("RegExp.prototype.source")}}</li>
<li>{{JSxRef("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.unicode")}}</li>
</ul>
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: RegExp.prototype.hasIndices
slug: Web/JavaScript/Reference/Global_Objects/RegExp/hasIndices
tags:
- Draft
- JavaScript
- Property
- Prototype
- Reference
- RegExp
- Regular Expressions
---
<p>{{JSRef}}</p>

<p>The <strong><code>hasIndices</code></strong> property indicates whether or not the "<code>d</code>" flag is used with the regular expression. <code>hasIndices</code> is a read-only property of an individual regular expression instance.</p>

<div>{{EmbedInteractiveExample("pages/js/regexp-prototype-hasindices.html")}}</div>

<p>{{JS_Property_Attributes(0, 0, 1)}}</p>

<h2 id="Description">Description</h2>

<p>The value of <code>hasIndices</code> is a {{JSxRef("Boolean")}} and <code>true</code> if the "<code>d</code>" flag was used; otherwise, <code>false</code>. The "<code>d</code>" flag indicates that the result of a regular expression match should contain the start and end indices of the substrings of each capture group.</p>

<p>You cannot change this property directly.</p>

<h2 id="Examples">Examples</h2>

<h3 id="Using_hasIndices">Using <code>hasIndices</code></h3>

<pre class="brush: js">const str1 = 'foo bar foo';

const regex1 = new RegExp('foo', 'gd');

console.log(regex1.hasIndices); // Output: true

console.log(regex1.exec(str1).indices[0]); // Output: Array [0, 3]
console.log(regex1.exec(str1).indices[0]); // Output: Array [8, 11]

const str2 = 'foo bar foo';

const regex2 = new RegExp('foo');

console.log(regex2.hasIndices); // Output: false

console.log(regex2.exec(str2).indices); // Output: undefined
</pre>

<h2 id="Specifications">Specifications</h2>

<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-get-regexp.prototype.hasIndices', 'RegExp.prototype.hasIndices')}}</td>
</tr>
</tbody>
</table>

<h2 id="Browser_compatibility">Browser compatibility</h2>

<div class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</div>

<p>{{Compat("javascript.builtins.RegExp.hasIndices")}}</p>

<h2 id="See_also">See also</h2>

<ul>
<li>{{JSxRef("RegExp.lastIndex")}}</li>
<li>{{JSxRef("RegExp.prototype.exec()")}}</li>
<li>{{JSxRef("RegExp.prototype.dotAll")}}</li>
<li>{{JSxRef("RegExp.prototype.global")}}</li>
<li>{{JSxRef("RegExp.prototype.ignoreCase")}}</li>
<li>{{JSxRef("RegExp.prototype.multiline")}}</li>
<li>{{JSxRef("RegExp.prototype.source")}}</li>
<li>{{JSxRef("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.unicode")}}</li>
</ul>
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,11 @@ <h2 id="See_also">See also</h2>

<ul>
<li>{{jsxref("RegExp.lastIndex")}}</li>
<li>{{jsxref("RegExp.prototype.global")}}</li>
<li>{{jsxref("RegExp.prototype.multiline")}}</li>
<li>{{jsxref("RegExp.prototype.source")}}</li>
<li>{{jsxref("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.dotAll")}}</li>
<li>{{JSxRef("RegExp.prototype.global")}}</li>
<li>{{JSxRef("RegExp.prototype.hasIndices")}}</li>
<li>{{JSxRef("RegExp.prototype.multiline")}}</li>
<li>{{JSxRef("RegExp.prototype.source")}}</li>
<li>{{JSxRef("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.unicode")}}</li>
</ul>
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ <h2 id="Instance_properties">Instance properties</h2>
<dd>Whether <code>.</code> matches newlines or not.</dd>
<dt>{{JSxRef("RegExp.prototype.global")}}</dt>
<dd>Whether to test the regular expression against all possible matches in a string, or only against the first.</dd>
<dt>{{JSxRef("RegExp.prototype.hasIndices")}}</dt>
<dd>Whether the regular expression result exposes the start and end indices of captured substrings.</dd>
<dt>{{JSxRef("RegExp.prototype.ignoreCase")}}</dt>
<dd>Whether to ignore case while attempting a match in a string.</dd>
<dt>{{JSxRef("RegExp.prototype.multiline")}}</dt>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,12 @@ <h2 id="Browser_compatibility">Browser compatibility</h2>
<h2 id="See_also">See also</h2>

<ul>
<li>{{jsxref("RegExp.prototype.ignoreCase")}}</li>
<li>{{jsxref("RegExp.prototype.global")}}</li>
<li>{{jsxref("RegExp.prototype.multiline")}}</li>
<li>{{jsxref("RegExp.prototype.source")}}</li>
<li>{{jsxref("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.dotAll")}}</li>
<li>{{JSxRef("RegExp.prototype.global")}}</li>
<li>{{JSxRef("RegExp.prototype.hasIndices")}}</li>
<li>{{JSxRef("RegExp.prototype.ignoreCase")}}</li>
<li>{{JSxRef("RegExp.prototype.multiline")}}</li>
<li>{{JSxRef("RegExp.prototype.source")}}</li>
<li>{{JSxRef("RegExp.prototype.sticky")}}</li>
<li>{{JSxRef("RegExp.prototype.unicode")}}</li>
</ul>
Loading