[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 00a455f 009/110: Merge pull request #266 from jacksonrayha
From: |
Dmitry Gutov |
Subject: |
[elpa] master 00a455f 009/110: Merge pull request #266 from jacksonrayhamilton/no-getter-setter-duplicate |
Date: |
Thu, 23 Jun 2016 01:12:52 +0000 (UTC) |
branch: master
commit 00a455fd23775a2829b8e02a3c0a53446859b739
Merge: 5c9d8b8 34245fe
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>
Merge pull request #266 from jacksonrayhamilton/no-getter-setter-duplicate
Don't treat getter / setter pairs as duplicates
---
js2-mode.el | 8 +++++++-
tests/parser.el | 14 +++++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/js2-mode.el b/js2-mode.el
index 926003d..fc22efe 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -10654,7 +10654,13 @@ expression)."
(lambda (previous-elem)
(and (setq previous-elem-key-string
(js2-property-key-string previous-elem))
- (string= previous-elem-key-string elem-key-string)))
+ ;; Check if the property is a duplicate.
+ (string= previous-elem-key-string elem-key-string)
+ ;; But make an exception for getter / setter pairs.
+ (not (and (js2-getter-setter-node-p elem)
+ (js2-getter-setter-node-p previous-elem)
+ (/= (js2-getter-setter-node-type elem)
+ (js2-getter-setter-node-type
previous-elem))))))
elems))
(js2-report-error "msg.dup.obj.lit.prop.strict"
elem-key-string
diff --git a/tests/parser.el b/tests/parser.el
index dc8c001..17519ca 100644
--- a/tests/parser.el
+++ b/tests/parser.el
@@ -294,10 +294,22 @@ the test."
"'use strict';\nvar object = {a: 1, a: 2, 'a': 3, ['a']: 4, 1: 5, '1': 6, [1
+ 1]: 7};"
:syntax-error "a" :errors-count 4) ; "a" has 3 dupes, "1" has 1 dupe.
-;; errors... or lackthereof.
+(js2-deftest-parse function-strict-duplicate-getter
+ "'use strict';\nvar a = {get x() {}, get x() {}};"
+ :syntax-error "x" :errors-count 1)
+
+(js2-deftest-parse function-strict-duplicate-setter
+ "'use strict';\nvar a = {set x() {}, set x() {}};"
+ :syntax-error "x" :errors-count 1)
+
+;;; Lack of errors in strict mode
+
(js2-deftest-parse function-strict-const-scope
"'use strict';\nconst a;\nif (1) {\n const a;\n}")
+(js2-deftest-parse function-strict-no-getter-setter-duplicate
+ "'use strict';\nvar a = {get x() {}, set x() {}};")
+
;;; Spread operator
(js2-deftest-parse spread-in-array-literal
- [elpa] master 667d320 034/110: Merge pull request #282 from jacksonrayhamilton/js2-jsx-mode, (continued)
- [elpa] master 667d320 034/110: Merge pull request #282 from jacksonrayhamilton/js2-jsx-mode, Dmitry Gutov, 2016/06/22
- [elpa] master 29f74b1 040/110: Allow 0o octals in strict mode, Dmitry Gutov, 2016/06/22
- [elpa] master 2a22635 035/110: Support .jsx file extension too in the example, Dmitry Gutov, 2016/06/22
- [elpa] master 4955584 037/110: Merge pull request #278 from redguardtoo/master, Dmitry Gutov, 2016/06/22
- [elpa] master 7c12f2c 031/110: Copy JSX indentation logic to js2-old-indent.el, Dmitry Gutov, 2016/06/22
- [elpa] master d0e4323 046/110: Add NEWS entry for async/await, Dmitry Gutov, 2016/06/22
- [elpa] master 0b1704b 041/110: Merge pull request #284 from XeCycle/0o-octals, Dmitry Gutov, 2016/06/22
- [elpa] master 7abe15e 043/110: Merge pull request #285 from dgreensp/fix-param-destruct, Dmitry Gutov, 2016/06/22
- [elpa] master 38aa66b 054/110: Do not print trailing semicolon for export function and class, Dmitry Gutov, 2016/06/22
- [elpa] master 4cd81c7 050/110: Exported decls print a little funny; update tests, Dmitry Gutov, 2016/06/22
- [elpa] master 00a455f 009/110: Merge pull request #266 from jacksonrayhamilton/no-getter-setter-duplicate,
Dmitry Gutov <=
- [elpa] master 4894200 056/110: Merge pull request #290 from XeCycle/export-async-fn, Dmitry Gutov, 2016/06/22
- [elpa] master 027d546 051/110: Merge pull request #287 from dgreensp/fix-export-decls, Dmitry Gutov, 2016/06/22
- [elpa] master 13f0ffb 042/110: Fix parsing of param with destructure and default, Dmitry Gutov, 2016/06/22
- [elpa] master e48e862 055/110: Also parse async function statement in export node, Dmitry Gutov, 2016/06/22
- [elpa] master e9227bd 058/110: Fix a byte-compilation warning, Dmitry Gutov, 2016/06/22
- [elpa] master 2a904e0 057/110: Implement object literal rest/spread (...), Dmitry Gutov, 2016/06/22
- [elpa] master 8047d7f 061/110: Recognize for-of and for-in loops with const, Dmitry Gutov, 2016/06/22
- [elpa] master 983f20a 072/110: Fix typo, Dmitry Gutov, 2016/06/22
- [elpa] master f8248df 066/110: Record class declarations for IMenu, Dmitry Gutov, 2016/06/22
- [elpa] master d92e772 069/110: Fix async parsing, Dmitry Gutov, 2016/06/22