== Why is this an issue? Originally JavaScript didn't support ``++class++``es, and class-like behavior had to be kludged using things like ``++prototype++`` assignments for "class" functions. Fortunately, ECMAScript 2015 added classes, so any lingering ``++prototype++`` uses should be converted to true ``++class++``es. The new syntax is more expressive and clearer, especially to those with experience in other languages. Specifically, with ES2015, you should simply declare a ``++class++`` and define its methods inside the class declaration. === Noncompliant code example [source,javascript] ---- function MyNonClass(initializerArgs = []) { this._values = [...initializerArgs]; } MyNonClass.prototype.doSomething = function () { // Noncompliant // ... } ---- === Compliant solution [source,javascript] ---- class MyClass { constructor(initializerArgs = []) { this._values = [...initializerArgs]; } doSomething() { //... } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Declare a "xxx" class and move this declaration of "yyy" into it. === Highlighting xxx.prototype.yyy ''' == Comments And Links (visible only on this page) === on 4 Feb 2016, 14:22:16 Ann Campbell wrote: \[~elena.vilchik], why set this to 20min? Since it will be assessed per function, not per class, the shorter time seems more appropriate to me. === on 4 Feb 2016, 14:43:09 Elena Vilchik wrote: \[~ann.campbell.2] Indeed, I've not thought about that === on 4 Feb 2016, 18:02:27 Ann Campbell wrote: BTW [~elena.vilchik], I will understand if you want me to tone down the language of this description. === on 5 Feb 2016, 15:54:26 Elena Vilchik wrote: \[~ann.campbell.2] No, I like it :) === on 25 Feb 2016, 13:48:11 Pierre-Yves Nicolas wrote: On my side, I don't agree with the description. First, JavaScript did not support classes at all before ES2015: prototypes are not classes. Secondly, the biggest argument in favor of applying this rule is that people are much more used to class-based languages rather than prototype-based languages: that does not make prototype-based OOP a nightmare. Please see \https://en.wikipedia.org/wiki/Prototype-based_programming. === on 25 Feb 2016, 14:00:04 Elena Vilchik wrote: \[~ann.campbell.2], ok, looks like PY is not so happy with this description as I, could you remove couple of "bad"s from it?:) === on 25 Feb 2016, 15:36:55 Ann Campbell wrote: How about now [~pierre-yves.nicolas] and [~elena.vilchik]? === on 25 Feb 2016, 15:43:57 Pierre-Yves Nicolas wrote: It's OK for me, thanks [~ann.campbell.2]. endif::env-github,rspecator-view[]