Open lujiajing1126 opened 7 years ago
An example code would be like this:
const util = require("util") // also as a custom runtime-lib for lua
const version = {
major: 1,
minor: 2,
patch: 2
}
Object.setPrototypeOf(version, {
toString() {
return util.format("%d.%d.%d%s", this.major, this.minor, this.patch, this.pre_release ? this.pre_release : "")
}
})
module.exports = {
_NAME: "sample-project",
_VERSION: "" + version,
_VERSION_TABLE: version
}
I want override the default
toString
in both lua and js.So normally I could do that in JavaScript with the
Object.setPrototypeOf
function, which finally callObject.defineProperty
afterbabel-transformation
, to change the proto chain .However, I found that
castl
defines theObject.defineProperty
withrawset
, and also does not expose thesetmetatable
function.So I'd like to ask how can I make use of the custom
toString
and__tostring
in bothlua
andjavascript