From 80203a100a9049c0ad12d8670d80bb7ead17aa24 Mon Sep 17 00:00:00 2001 From: Alexey Yaroshevich Date: Tue, 19 Apr 2016 13:28:10 +0300 Subject: [PATCH] Fix: Last method throw in requireObjectKeysOnNewLine Fixes #2224 Closes gh-2227 --- lib/rules/require-object-keys-on-new-line.js | 4 +++- test/specs/rules/require-object-keys-on-new-line.js | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/rules/require-object-keys-on-new-line.js b/lib/rules/require-object-keys-on-new-line.js index f03b096e4..f20623a32 100644 --- a/lib/rules/require-object-keys-on-new-line.js +++ b/lib/rules/require-object-keys-on-new-line.js @@ -85,11 +85,13 @@ module.exports.prototype = { file.iterateNodesByType('ObjectExpression', function(node) { var firstKeyToken; var lastValueToken; + var lastProp; if (isSameLine) { if (node.properties.length > 1) { firstKeyToken = file.getFirstNodeToken(node.properties[0].key); - lastValueToken = file.getLastNodeToken(node.properties[node.properties.length - 1].value); + lastProp = node.properties[node.properties.length - 1]; + lastValueToken = file.getLastNodeToken(lastProp.value || lastProp.key); if (firstKeyToken.getLoc().end.line === lastValueToken.getLoc().start.line) { // It's ok, all keys and values are on the same line. diff --git a/test/specs/rules/require-object-keys-on-new-line.js b/test/specs/rules/require-object-keys-on-new-line.js index 6daf420cc..333b6c631 100644 --- a/test/specs/rules/require-object-keys-on-new-line.js +++ b/test/specs/rules/require-object-keys-on-new-line.js @@ -80,5 +80,9 @@ describe('rules/require-object-keys-on-new-line', function() { expect(checker.checkString('var a = {a: "b",c: "d",\ne: "f"\n};')) .to.have.one.validation.error.from('requireObjectKeysOnNewLine'); }); + + it('should neither throw nor report last methods on the same line', function() { + expect(checker.checkString('var a = {a: "b", c: "d", method() {}};')).to.have.no.errors(); + }); }); });