add error for decorators not being implemented yet

This commit is contained in:
Sebastian McKenzie
2015-11-12 01:49:01 -08:00
parent 2d3760c1f7
commit 69fb1854d7
11 changed files with 8 additions and 138 deletions

View File

@@ -1,18 +0,0 @@
function noop() {}
function override() {
return "bar";
}
@override
class Foo {}
@noop
class Bar {
constructor() {
this.foo = "bar";
}
}
assert.equal(Foo, "bar");
assert.equal(new Bar().foo, "bar");

View File

@@ -1,23 +0,0 @@
class Person {
@reader _first;
@reader last;
constructor(first, last) {
this._first = first;
this._last = last;
}
@reader get _fullName() {
return `${this._first} ${this._last}`;
}
}
let jason = new Person("Jason", "Orendorff");
assert.equal(jason.first, "Jason");
assert.equal(jason.last, "Orendorff");
assert.equal(jason.fullName, "Jason Orendorff");
jason.update("JSON", "Orendorff")
assert.equal(jason.first, "JSON");
assert.equal(jason.fullName, "JSON Orendorff");

View File

@@ -1,8 +0,0 @@
class Person {
@reader _first = "Andreas";
@reader _last = "Rossberg";
}
let andreas = new Person();
assert.equal(andreas.first, "Andreas");
assert.equal(andreas.last, "Rossberg");

View File

@@ -1,8 +0,0 @@
class Person {
@reader static _first = "Brendan";
@reader static _last = "Eich";
}
let brendan = Person;
assert.equal(brendan.first, "Brendan");
assert.equal(brendan.last, "Eich");

View File

@@ -1,7 +0,0 @@
let person = {
@reader _first: "Mark",
@reader _last: "Miller"
};
assert.equal(person.first, "Mark");
assert.equal(person.last, "Miller");

View File

@@ -1,33 +0,0 @@
function reader(target, descriptor) {
let { enumerable, configurable, property: { name, get }, hint } = descriptor;
let publicName = extractPublicName(name());
Object.defineProperty(target, publicName, {
enumerable, configurable, get: function() { return get(this, name); }
});
return descriptor;
}
function extractPublicName(name) {
// _first -> first
return name.slice(1);
}
class Person {
@reader _first;
@reader _last;
constructor(first, last) {
this._first = first;
this._last = last;
}
@reader _update(first, last) {
this._first = first;
this._last = last;
}
}
let alex = new Person("Alex", "Russell");
assert.equal(alex.first, "Alex");
alex.update("Alexander", "Russell");
assert.equal(alex.first, "Alexander");

View File

@@ -1,17 +0,0 @@
class Person {
@reader _first;
@reader _last;
constructor(first="Waldemar", last="Horwat") {
this._first = first;
this._last = last;
}
}
let waldemar = new Person();
assert.equal(waldemar.first, "Waldemar");
assert.equal(waldemar.last, "Horwat");
let jeff = new Person("Jeff", "Morrison");
assert.equal(jeff.first, "Jeff");
assert.equal(jeff.last, "Morrison");

View File

@@ -1,11 +0,0 @@
let person = {
@reader _first,
@reader _last
};
assert.equal(person.first, "undefined");
Object.assign(person, { _first: "Brian", _last: "Terlson" });
assert.equal(person.first, "Brian");
assert.equal(person.last, "Terlson");

View File

@@ -1,13 +0,0 @@
class Person {
@reader static _first;
@reader static _last;
}
let jonathan = Person;
assert.equal(jonathan.first, undefined);
Object.assign(jonathan, { _first: "Jonathan", _last: "Turner" });
assert.equal(jonathan.first, "Jonathan");
assert.equal(jonathan.last, "Turner");