aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJackson Ray Hamilton2019-04-07 00:25:35 -0700
committerJackson Ray Hamilton2019-04-08 22:48:24 -0700
commit7b2e3c60d081597adb7feaaabfee8cb8de62289b (patch)
treea4bfa97a66d402c69bb25c7889fa4c629376a031 /test
parent462baabed93228a00e5ccadbe5704fb317957cb7 (diff)
downloademacs-7b2e3c60d081597adb7feaaabfee8cb8de62289b.tar.gz
emacs-7b2e3c60d081597adb7feaaabfee8cb8de62289b.zip
Optimize js-jsx--matching-close-tag-pos
This function’s performance was having a noticeable impact when editing large JSX structures. Improve its performance slightly (elapsed time will be cut in half according to ELP). * lisp/progmodes/js.el (js-jsx--tag-re): Remove. (js-jsx--matched-tag-type): Simplify implementation with respect to the new implementation of js-jsx--matching-close-tag-pos. (js-jsx--self-closing-re): Simplify regexp slightly in sync with a generally simpler matching algorithm. (js-jsx--matching-close-tag-pos): Optimize matching algorithm by using multiple simple regexp searches, rather than one big complex search. * test/manual/indent/jsx-unclosed-2.jsx: Use the term “inequality” and add a test for a possible parsing foible.
Diffstat (limited to 'test')
-rw-r--r--test/manual/indent/jsx-unclosed-2.jsx7
1 files changed, 6 insertions, 1 deletions
diff --git a/test/manual/indent/jsx-unclosed-2.jsx b/test/manual/indent/jsx-unclosed-2.jsx
index 8db25aa67f1..9d80a2e9ae2 100644
--- a/test/manual/indent/jsx-unclosed-2.jsx
+++ b/test/manual/indent/jsx-unclosed-2.jsx
@@ -6,10 +6,15 @@
6// The following tests go below any comments to avoid including 6// The following tests go below any comments to avoid including
7// misindented comments among the erroring lines. 7// misindented comments among the erroring lines.
8 8
9// Don’t misinterpret equality operators as JSX. 9// Don’t misinterpret inequality operators as JSX.
10for (; i < length;) void 0 10for (; i < length;) void 0
11if (foo > bar) void 0 11if (foo > bar) void 0
12 12
13// Don’t misintrepet inequalities within JSX, either.
14<div>
15 {foo < bar}
16</div>
17
13// Don’t even misinterpret unary operators as JSX. 18// Don’t even misinterpret unary operators as JSX.
14if (foo < await bar) void 0 19if (foo < await bar) void 0
15while (await foo > bar) void 0 20while (await foo > bar) void 0