Added support for dynamic properties in classes #285
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Important: Dynamic property support only works with IE>=9! That however is not a problem because prototype will fall back to static property copying on older versions. IE8 has limited support for dynamic properties but only if the element is an instance of a DOM element and if a very specifc configuration is used (http://msdn.microsoft.com/en-us/library/dd229916%28VS.85%29.aspx). Since the IE8 support is not something that works in real-life I decided to add a IS_DEFPROP_BUGGY check that only passes on browsers with full support, before enabling this feature.
A unit test has been added that demonstrates how this feature can be used, note however that the unit test only uses the
Object.defineProperty
syntax and not the nativeget x() {...}
/set x(y) {...}
syntax since that would cause syntax errors in browsers that do not understand it.