JSFiddle - React, Tailwind, and code Playground
by viatropos
HTML
<button id='one'>Infinite loop with self referential attribute</button><button id='two'>hasOwnProperty with accessors</button>
JavaScript
var _log = function(string) {
$('#two').after('<p>' + string + '</p>');
}
// infinite loop
$('#one').click(function() {
var array = [];
// self referential attribute
array.self = array;
try {
$.extend(true, array);
} catch (error) {
_log(error.toString());
alert(error);
}
});
// accessor hasOwnProperty bug
$('#two').click(function() {
Object.defineProperty(Array.prototype, '[]', {
get: function() { return this },
enumerable: true,
configurable: true
});
var array = [];
_log('array === array["[]"], ' + (array === array['[]']));
_log('array.hasOwnProperty("length"), ' + array.hasOwnProperty('length'));
_log('array.hasOwnProperty("[]"), ' + array.hasOwnProperty('[]'));
});