Given javascript code like the following (extracted from a plugin referenced below):
var AutosizeInput = (function () {
function AutosizeInput(input, options) {
var _this = this;
this._input = $(input);
this._options = options;
}
Object.defineProperty(AutosizeInput.prototype, "options", {
get: function () {
return this._options;
},
enumerable: true,
configurable: true
});
}
Full code of the plugin located at: https://github.com/MartinF/jQuery.Autosize.Input/blob/master/jquery.autosize.input.js
From what I read the call to Object.defineProperty will not work on IE8 as this is not a DOM object.
Is that accurate?..and if it is...which would be the best way to rewrite this getters (and setters) to be IE8 compliant?
You can create your own something like
You can find the rest of the code here:
IE8 does not support getter/setter functions on properties of non DOM objects.
The "solution" here is to not rely on property getters, and use a full getter function instead.
Or, instead of keeping
this._options
as an "internal" variable, just drop the underscore allow access directly. This way you need no magic at all.