Skip to content

Commit

Permalink
Reuse getter/setter templates
Browse files Browse the repository at this point in the history
  • Loading branch information
tim-mc committed Jul 29, 2019
1 parent 4968521 commit 4897125
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 81 deletions.
102 changes: 24 additions & 78 deletions packages/babel-helper-create-class-features-plugin/src/fields.js
Original file line number Diff line number Diff line change
Expand Up @@ -358,35 +358,15 @@ function buildPrivateMethodInitLoose(ref, prop, privateNamesMap) {
initAdded: true,
});

if (getId && setId) {
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
get: ${getId.name},
set: ${setId.name}
});
`;
} else if (getId && !setId) {
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
get: ${getId.name}
});
`;
} else if (!getId && setId) {
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
set: ${setId.name}
});
`;
}
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
get: ${getId ? getId.name : "undefined"},
set: ${setId ? setId.name : "undefined"}
});
`;
}
}

Expand All @@ -401,26 +381,12 @@ function buildPrivateInstanceMethodInitSpec(ref, prop, privateNamesMap) {
initAdded: true,
});

if (getId && setId) {
return template.statement.ast`
${id}.set(${ref}, {
get: ${getId.name},
set: ${setId.name}
});
`;
} else if (getId && !setId) {
return template.statement.ast`
${id}.set(${ref}, {
get: ${getId.name}
});
`;
} else if (!getId && setId) {
return template.statement.ast`
${id}.set(${ref}, {
set: ${setId.name}
});
`;
}
return template.statement.ast`
${id}.set(${ref}, {
get: ${getId ? getId.name : "undefined"},
set: ${setId ? setId.name : "undefined"}
});
`;
}
return template.statement.ast`${id}.add(${ref})`;
}
Expand Down Expand Up @@ -462,35 +428,15 @@ function buildPrivateStaticMethodInitLoose(ref, prop, state, privateNamesMap) {
initAdded: true,
});

if (getId && setId) {
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
get: ${getId.name},
set: ${setId.name}
})
`;
} else if (getId && !setId) {
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
get: ${getId.name},
})
`;
} else if (!getId && setId) {
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
set: ${setId.name},
})
`;
}
return template.statement.ast`
Object.defineProperty(${ref}, ${id}, {
// configurable is false by default
// enumerable is false by default
// writable is false by default
get: ${getId ? getId.name : "undefined"},
set: ${setId ? setId.name : "undefined"}
})
`;
}

return template.statement.ast`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
class Cl {
constructor() {
Object.defineProperty(this, _privateFieldValue, {
get: undefined,
set: _set_privateFieldValue
});
Object.defineProperty(this, _privateField, {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
class Cl {
constructor() {
Object.defineProperty(this, _privateFieldValue, {
get: _get_privateFieldValue
get: _get_privateFieldValue,
set: undefined
});
Object.defineProperty(this, _privateField, {
writable: true,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
class Cl {
constructor() {
_privateFieldValue.set(this, {
get: undefined,
set: _set_privateFieldValue
});

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
class Cl {
constructor() {
_privateFieldValue.set(this, {
get: _get_privateFieldValue
get: _get_privateFieldValue,
set: undefined
});

_privateField.set(this, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@ Object.defineProperty(Cl, _PRIVATE_STATIC_FIELD, {
value: 0
});
Object.defineProperty(Cl, _privateStaticFieldValue, {
get: undefined,
set: _set_privateStaticFieldValue
});
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@ Object.defineProperty(Cl, _PRIVATE_STATIC_FIELD, {
value: 0
});
Object.defineProperty(Cl, _privateStaticFieldValue, {
get: _get_privateStaticFieldValue
get: _get_privateStaticFieldValue,
set: undefined
});

0 comments on commit 4897125

Please sign in to comment.