Make constructors just methods.

* Eliminate "new" reserved word.
* Allow "this" before a method definition to define a constructor.
* Only create a default constructor for classes that don't define one.
This commit is contained in:
Bob Nystrom
2015-07-10 09:18:22 -07:00
parent 0ddaa2517c
commit 5fb6186d7d
221 changed files with 864 additions and 654 deletions
+4 -4
View File
@@ -1,5 +1,5 @@
class Foo {
new(value) { _value = value }
this new(value) { _value = value }
toString { _value }
bar=(value) {
_value = value
@@ -7,9 +7,9 @@ class Foo {
}
}
var a = new Foo("a")
var b = new Foo("b")
var c = new Foo("c")
var a = Foo.new("a")
var b = Foo.new("b")
var c = Foo.new("c")
// Assignment is right-associative.
a.bar = b.bar = c.bar = "d"