3 ms·
Not if the function is inlineable or an intrinsic (console.log will likely be either), which is the most basic trick of any JIT. Unless you can specifically me
by Nitramp 12y ago
Not if the function is inlineable or an intrinsic (console.log will likely be either), which is the most basic trick of any JIT.
Unless you can specifically measure caching the length is faster, I wouldn't do it. Most of the time it doesn't matter anyway (won't cause a bump in performance), and even then most of the time the compiler will be able to figure it out for you.
- jkrems 12y agoMaybe my comment was misleading - the important part is the property read, not the `console.log`. The following code might be an infinite loop in JavaScript: function adder(arr, obj) { for (var i = 0; i < arr.length; ++i) { obj.x += i; } } var arr = [1]; var obj = Object.defineProperties({}, { x: { get: function() { return 1; }, set: function(v) { arr.push(v); } } }; adder(arr, obj);
- esailija 12y agoV8 can inline getters and setters like it can inline normal functios.