diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6e29630a6..f599a7858 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,14 +11,17 @@
- node - after node-v14 is deprecated, remove shell-code export "NODE_OPTIONS=--unhandled-rejections=strict".
- none
-## v2021.5.27-beta
+## v2021.5.27
+- ci - fix expectedWarningCode not being validated.
+- ci - in windows, disable git-autocrlf.
- deadcode - replace with assertion-check in function are_similar() - "if (a === b) { return true }".
- deadcode - replace with assertion-check in function are_similar() superseded by id-check - "if (Array.isArray(b)) { return false; }".
- deadcode - replace with assertion-check in function are_similar() superseded by is_weird() check - "if (a.arity === "function" && a.arity ===...c".
-- ci - fix expectedWarningCode not being validated
-- ci - in windows, disable git-autocrlf
+- jslint - add directive `test_internal_error`.
+- jslint - add directive `unordered` to tolerate unordered properties and params.
- jslint - inline-document each warning with cause that can reproduce it - part 1.
-- style - refactor code moving infix-operators from post-position to pre-position in multiline statements
+- style - refactor code moving infix-operators from post-position to pre-position in multiline statements.
+- website - add hotkey ctrl-enter to run jslint.
- none
## v2021.5.26
diff --git a/README.md b/README.md
index d61eb70fb..ada4a95a8 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ Douglas Crockford
douglas@crockford.com
## Status
-| Branch | [master
(v2021.5.26)](https://github.com/jslint-org/jslint/tree/master) | [beta
(testing)](https://github.com/jslint-org/jslint/tree/beta) | [alpha
(development)](https://github.com/jslint-org/jslint/tree/alpha) |
+| Branch | [master
(v2021.5.27)](https://github.com/jslint-org/jslint/tree/master) | [beta
(testing)](https://github.com/jslint-org/jslint/tree/beta) | [alpha
(development)](https://github.com/jslint-org/jslint/tree/alpha) |
|--:|:--:|:--:|:--:|
| CI | [![ci](https://github.com/jslint-org/jslint/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/jslint-org/jslint/actions?query=branch%3Amaster) | [![ci](https://github.com/jslint-org/jslint/actions/workflows/ci.yml/badge.svg?branch=beta)](https://github.com/jslint-org/jslint/actions?query=branch%3Abeta) | [![ci](https://github.com/jslint-org/jslint/actions/workflows/ci.yml/badge.svg?branch=alpha)](https://github.com/jslint-org/jslint/actions?query=branch%3Aalpha) |
| Coverage | [![coverage](https://jslint-org.github.io/jslint/branch.master/.build/coverage/coverage-badge.svg)](https://jslint-org.github.io/jslint/branch.master/.build/coverage/index.html) | [![coverage](https://jslint-org.github.io/jslint/branch.beta/.build/coverage/coverage-badge.svg)](https://jslint-org.github.io/jslint/branch.beta/.build/coverage/index.html) | [![coverage](https://jslint-org.github.io/jslint/branch.alpha/.build/coverage/coverage-badge.svg)](https://jslint-org.github.io/jslint/branch.alpha/.build/coverage/index.html) |
diff --git a/browser.js b/browser.js
index 328df79ba..14bceb0e8 100644
--- a/browser.js
+++ b/browser.js
@@ -7,6 +7,7 @@
*/
/*property
+ addEventListener, ctrlKey, key,
checked, closure, column, context, create, disable, display, edition,
exports, filter, focus, forEach, froms, fudge, functions, getElementById,
global, id, innerHTML, isArray, join, json, keys, length, level, line,
@@ -353,6 +354,12 @@ elem_source.onscroll = function () {
}
};
+document.addEventListener("keydown", function (evt) {
+ if (evt.ctrlKey && evt.key === "Enter") {
+ call_jslint();
+ }
+});
+
document.querySelectorAll("[name='JSLint']").forEach(function (node) {
node.onclick = call_jslint;
});
diff --git a/help.html b/help.html
index 1a55f6192..63c34f0c6 100644
--- a/help.html
+++ b/help.html
@@ -462,6 +462,11 @@
/*jslint*/
this
true
if this
should be allowed. unordered
true
if objects and functions are allowed to declare properties and params in non-alphabetical order.white