1
0
Fork 0
easejs/test
Mike Gerwitz ba2605f836 Alias `constructor` member to `__construct`
This allows ease.js classes to mimic the structure of ES6 classes, which use
`constructor` to denote the constructor.  This patch simply aliases it to
`__construct`, which ease.js handles as it would normally.

To that note, since the ES6 `class` keyword is purely syntatic sugar around
the prototype model, there is not much benefit to using it over ease.js if
benefits of ease.js are still desired, since the member definition syntax is
a feature of object literals:

```
// ease.js using ES6
let Person = Class(
{
    _name: '',

    // note that __construct still works as well
    constructor( name ) {
      this._name = ''+name;
    },

    sayHi() {
      return "Hi, I'm " + this.getName();
    },

    // keywords still work as expected
    'protected getName'() {
      return this._name;
    }
} );

// ES6 using `class` keyword
class Person
{
    // note that ES6 will _not_ make this private
    _name: '',

    constructor( name ) {
      this._name = ''+name;
    },

    sayHi() {
      return "Hi, I'm " + this.getName();
    }

    // keywords unsupported (you'd have to use Symbols)
    getName() {
      return this._name;
    }
}

// ES3/5 ease.js
var Person = Class(
{
    _name: '',

    __construct: function( name ) {
      this._name = ''+name;
    },

    sayHi: function() {
      return "Hi, I'm " + this._name;
    },

    'protected getName': function() {
      return this._name;
    }
} );
```

As you can see, the only change between writing ES6-style method definitions
is the syntax; all keywords and other features continue to work as expected.
2015-09-16 00:02:00 -04:00
..
Class Alias `constructor` member to `__construct` 2015-09-16 00:02:00 -04:00
ClassBuilder Alias `constructor` member to `__construct` 2015-09-16 00:02:00 -04:00
Interface Interface.isInstanceOf will account for interop compatibility 2014-08-06 23:07:44 -04:00
MemberBuilder Corrected test broken by Node.js v0.10.27 2014-08-07 00:01:59 -04:00
MemberBuilderValidator [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
Trait [copyright] Copyright update 2015-05-28 01:01:51 -04:00
Util [copyright] Copyright update 2015-05-28 01:01:51 -04:00
perf [copyright] Copyright update 2015-05-28 01:01:51 -04:00
warn Extracted warning handlers into their own prototypes 2014-06-11 23:42:20 -04:00
CombinePreEs5Test.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
CombineTest.js Exposing Trait in combined source files 2014-04-28 14:32:18 -04:00
FallbackMemberBuilderTest.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
FallbackVisibilityObjectFactoryTest.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
IndexTest.js Prototype wrapping using index function 2015-09-09 23:36:14 -04:00
MethodWrapperFactoryTest.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
MethodWrappersTest.js method.super references now ES3-compatible 2014-08-07 22:24:25 -04:00
PropParserKeywordsTest.js Exposing keyword bit values and bitmasks 2014-04-20 02:40:36 -04:00
VersionTest.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
VisibilityObjectFactoryFactoryTest.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
VisibilityObjectFactoryTest.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
common.js [copyright] Copyright update 2015-05-28 01:01:51 -04:00
inc-testcase.js Test case now allows for short-hand require of SUT 2014-07-24 01:11:55 -04:00
runner.in test/runner will now pass all option args to node 2014-07-27 01:53:34 -04:00
runner.js [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00
test-rmtrail [copyright] Copyright assignment to the FSF 2014-04-09 19:05:07 -04:00