DefineProperty vs regular property
JavaScript performance comparison
Preparation code
<script type="text/javascript">
var definedProperty = function () {
Object.defineProperty(this, "prop", {
configurable: true, enumerable: true, value: 1
});
}
var definedConstantProperty = function () {
Object.defineProperty(this, "prop", {
configurable: true,
enumerable: true,
value: 1,
writable: false
});
}
var definedValueOnlyProperty = function () {
Object.defineProperty(this, "prop", {
value: 1,
});
}
var regularProperty = function () {
this.prop = 1;
}
var count = 50000;
var defineds = new Array(count);
var definedConsts = new Array(count);
var definedValues = new Array(count);
var regulars = new Array(count);
for (var i = 0; i < count; i++) {
defineds[i] = new definedProperty();
definedConsts[i] = new definedConstantProperty();
definedValues[i] = new definedValueOnlyProperty();
regulars[i] = new regularProperty();
}
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
defineProperty |
|
pending… |
regular property |
|
pending… |
defineProperty with writable=false |
|
pending… |
defineProperty with only value specified |
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:
- Revision 1: published by Kevin Gadd
- Revision 3: published
- Revision 4: published
0 comments