quick PSA:

jslint recently (2018-09-27) added warning against "." delimited, per-line
method-chaining [1]

```javascript
/*jslint node*/
"use strict";
var str = "hello world";

// jslint - no warnings
console.log(
    str.replace(
        "hello",
        "goodbye"
    ).replace(
        "world",
        "john"
    ).toUpperCase()
);

// jslint - warnings against "." delimited, per-line method-chaining
console.log(
    str
    // Unexpected space between 'str' and '.'.
    .replace("hello", "goodbye")
    // Unexpected space between ')' and '.'.
    .replace("world", "john")
    // Unexpected space between ')' and '.'.
    .toUpperCase()
);
```

[1] jslint commit 2018-09-27 - warn against per-line method-chaining
https://github.com/douglascrockford/JSLint/commit/752c82d860ac14d35d492dc5c6ad0a0ed8227e76#diff-01d3d81a6eb6d82af3c377b55dc4fa28L4692

[image: Screen Shot 2018-11-13 at 11.06.26 AM.jpg]

On Tue, Nov 13, 2018 at 3:33 AM Michael Haufe <t...@thenewobjective.com>
wrote:

> It didn't survive the github migration AFAICT. There is no proposal listed
> on the repo.
>
>
> https://web.archive.org/web/20141214124428/http://wiki.ecmascript.org/doku.php?id=strawman:batch_assignment_operator
>
> https://esdiscuss.org/topic/batch-assignment-functions
>
>
> https://github.com/rwaldron/tc39-notes/blob/master/es6/2012-05/may-23.md#moustache
>
> On Mon, Nov 12, 2018 at 7:31 AM Andrea Giammarchi <
> andrea.giammar...@gmail.com> wrote:
>
>> I have a dejavu ... a similar proposal was rejected a while ago.
>>
>> Can't remember its name but it was like:
>>
>> ```js
>> foo.{
>>   a.b = c;
>>   d();
>> }
>> ```
>>
>> how is this different, if it's actually any different?
>>
>>
>> On Mon, Nov 12, 2018 at 2:23 PM T.J. Crowder <
>> tj.crow...@farsightsoftware.com> wrote:
>>
>>> On Sat, Nov 10, 2018 at 5:49 PM Timothy Johnson
>>> <timo...@idioticdev.com> wrote:
>>>
>>> It's **great** to see a proposal backed by an example implementation. :-)
>>>
>>> I suggest adding some explanation to the proposal about how your example
>>> knows the `..d()` applies to `foo` and not to `c`. From the Dart
>>> documentation, I'd *guess* (not being a Dart person) that it's because
>>> you'd need parens around the `c..d()` to force it to apply to that instead,
>>> but... More about the specific mechanics of that as it applies to JS would
>>> be useful.
>>>
>>> Probably also worth a one-liner that you're aware of and have allowed
>>> for how this relates to numeric literals (e.g.,
>>> `console.log(12..toString())`). I can see in your commit on the Babel fork
>>> that you have allowed for it, but for those who don't dig that deep...
>>>
>>> If this were in the language, I'd happily use it. I don't really feel
>>> the lack of it, though.
>>>
>>> -- T.J. Crowder
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss@mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to