(function(){ var a = {}; (function(){ print('0:' + typeof document); print('1:' + typeof a, typeof a === 'object'); })(); print('2:' + typeof a, typeof a === 'object'); (function(){ print('3:' + typeof a, typeof a === 'object'); })(); })();
(function(){ var a = {}; (function(){ print('1:' + typeof a, typeof a === 'object'); })(); (function(){ print('2:' + typeof a, typeof a === 'object'); })(); if(true){ function b(){ print('3:' + typeof a, typeof a === 'object'); (function(){ print('4:' + typeof a, typeof a === 'object'); })(); var c=0; }; }; b(); (function(){ print('5:' + typeof a, typeof a === 'object'); })(); (function(){ a.d = function(){ print('6:' + typeof a, typeof a === 'object'); }; a.d(); a.e = function(f){ print('7:' + f(), f() === 'object'); }; a.e( function(){ return typeof a; } ); (function(){ print('8:' + typeof a, typeof a === 'object'); })(); })(); })();
(function(){ var a = {}, i = 0; (function b(){ print(++i + ':' + typeof a, typeof a === 'object'); print(++i + ':' + typeof b, typeof b === 'function'); })(); shouldThrowError = true; b(); })();
var Y, db, F = window; (function(qa){ (Y = function(I) { qa(I); }); function _(){}; })(print); Y('1 : Good!'); (function(qa){ Y = function(I) { qa(I); }; // function _(){}; })(print); Y('2 : Good!'); (function(qa){ (Y = function(I) { qa(I); }); // function _(){}; })(print); Y('3 : Good!');
a:{ // syntax error in Opera 7.x print('Good!'); };
(function(){ // error in Opera 7.03 print('Good!'); })();
print('1:uneval()', typeof window.uneval === 'function');
print('1:' + typeof null, typeof null === 'object');
print('1:' + ({} instanceof Object), {} instanceof Object); print('2:' + (null instanceof Object), !(null instanceof Object));
try { print('Try!'); } catch(O_o){ throw new Error('...'); } print('Good!');
print('1:' + ('toString' in {}), 'toString' in {}); print('2:' + ('length' in []), 'length' in []); print('3:' + ('length' in {}), !('length' in {}));
var key; for(key in null){}; print('Good!');
var re = /reg/; print('Good!');
var re = /reg/gi; print('Good!');
var re = /reg/m; print('Good!');
var re = /reg/y; print('Good!');
print('1: Object.prototype.__proto__', {}.__proto__ === Object.prototype);
print('1: Object.prototype.watch', typeof Object.prototype.watch === 'function'); print('2: Object.prototype.unwatch', typeof Object.prototype.unwatch === 'function');
print('1: Object.prototype.__defineGetter__', typeof Object.prototype.__defineGetter__ === 'function'); print('2: Object.prototype.__defineSetter__', typeof Object.prototype.__defineSetter__ === 'function'); print('3: Object.prototype.__lookupGetter__', typeof Object.prototype.__lookupGetter__ === 'function'); print('4: Object.prototype.__lookupSetter__', typeof Object.prototype.__lookupSetter__ === 'function');
var obj = {1: 'Good!'}; print('1:' + obj[1]);
var obj = {'1': 'Good!'}; print('1:' + obj[1]);
var obj = {'': 'Good!'}; print('1:' + obj[''], obj[''] === 'Good!'); obj[''] = 'Good!'; print('2:' + obj[''], obj[''] === 'Good!'); obj= {'': 'Good!'}; print('3:' + obj[''], obj[''] === 'Good!'); for(var k in obj){ print('4:{"' + k + '" : "' + obj[k] + '"}', k === ''); };
var str = 'Good!'; print('1:' + str[0] + str[1] + str[2] + str[3] + str[4], str[0] === 'G');
window.__apply = Function.prototype; print('1:' + ('' + window)); print('2:' + (typeof window.__apply), typeof window.__apply === 'function'); print('3:' + (delete window.__apply)); print('4:' + window.__apply, window.__apply === void 0);
window.frames[0].__apply = Function.prototype; print('1:' + ('' + window.frames[0])); print('2:' + (typeof window.frames[0].__apply), typeof window.frames[0].__apply === 'function'); print('3:' + (delete window.frames[0].__apply)); print('4:' + window.frames[0].__apply, window.frames[0].__apply === void 0);
document.__apply = Function.prototype; print('1:' + ('' + document)); print('2:' + (typeof document.__apply), typeof document.__apply === 'function'); print('3:' + (delete document.__apply)); print('4:' + document.__apply, document.__apply === void 0);
(function(){ var element = document.createElement('span'); element.__apply = Function.prototype; print('1:' + ('' + element)); print('2:' + (typeof element.__apply), typeof element.__apply === 'function'); print('3:' + (delete element.__apply)); print('4:' + element.__apply, element.__apply === void 0); })();
print('1:atob', !!window.atob); print('2:btoa', !!window.btoa);
print('1:encodeURI', !!window.encodeURI); print('2:decodeURI', !!window.decodeURI); print('3:encodeURIComponent', !!window.encodeURIComponent); print('4:decodeURIComponent', !!window.decodeURIComponent);
print('1:JSON', !!window.JSON);
Function.prototype(); print('Good!');
print('1:Function.prototype.apply', typeof Function.prototype.apply === 'function'); print('1:Function.prototype.call', typeof Function.prototype.call === 'function');
print('1:Array.prototype.push', typeof Array.prototype.push === 'function'); print('1:Array.prototype.pop', typeof Array.prototype.pop === 'function'); print('1:Array.prototype.shift', typeof Array.prototype.shift === 'function'); print('1:Array.prototype.unshift', typeof Array.prototype.unshift === 'function'); print('1:Array.prototype.splice', typeof Array.prototype.splice === 'function'); print('1:Array.prototype.indexOf', typeof Array.prototype.indexOf === 'function');
var a = []; shouldThrowError = true; --a.length; print('1:(--a.length)=' + a.length, a.length=== 0);
print('document.compatMode:' + document.compatMode); print('window.scrollY:' + window.scrollY); print('window.pageYOffset:' + window.pageYOffset); var html = document.documentElement || document.getElementsByTagName('html'); print('html.scrollTop:' + html.scrollTop); print('body.scrollTop:' + document.body.scrollTop);
print('document.compatMode:' + document.compatMode); print('window.innerHeight:' + window.innerHeight); var html = document.documentElement || document.getElementsByTagName('html'); print('html.offsetHeight:' + html.offsetHeight); print('body.offsetHeight:' + document.body.offsetHeight);
print('document.compatMode:' + document.compatMode); var html = document.documentElement || document.getElementsByTagName('html'); var body = document.body; print('html.offsetHeight:' + html.offsetHeight); print('html.scrollHeight:' + html.scrollHeight); print('body.offsetHeight:' + document.body.offsetHeight); print('body.scrollHeight:' + document.body.scrollHeight); if( body.getBoundingClientRect ){ var rect = html.getBoundingClientRect(); print('html:' + (rect.bottom - rect.top)); var rect = body.getBoundingClientRect(); print('body:' + (rect.bottom - rect.top)); };
(function(){ function extend(a){ a.__apply = Function.prototype; print('- ' + a); print('1:' + a.__apply, a.__apply === void 0); print('2: delete a.__apply', delete a.__apply === true); print('3:' + a.__apply, a.__apply === void 0); }; extend(0); extend('A'); extend(NaN); extend(Infinity); })();
(function(){ function extend(a){ a.constructor.prototype.__apply = Function.prototype; print('- ' + a); print('1:' + (typeof a.__apply), typeof a.__apply === 'function'); print('2: delete a.__apply', delete a.__apply === true); print('3:' + a.__apply, ('' + a.__apply).split('\n').join('').split('\r').join('').split(' ').join('') === 'function(){[nativecode]}'); print('4: delete a.constructor.prototype.__apply', (delete a.constructor.prototype.__apply) === true); print('5:' + a.__apply, a.__apply === void 0); }; extend(0); extend('A'); extend(NaN); extend(Infinity); })();
(function(){ var a = {}; a.__apply = Function.prototype; print('- ' + a); print('1: delete a.__bad__', delete a.__bad__ === true); print('2: delete a.__apply', delete a.__apply === true); })();
print('1:' + window.addEventListener); print('2:' + document.addEventListener); print('3:' + document.body.addEventListener);
print('1:' + document.body.firstChild); print('2:' + document.body.lastChild); print('3:' + document.body.previousSibling); print('4:' + document.body.nextSibling); print('5:' + document.body.parentNode); print('6:' + document.body.parentElement); print('7:' + document.body.lastChild.previousSibling); print('8:' + document.body.childNodes); print('9:' + document.body.children);
(function(){ var noscripts = document.getElementsByTagName('noscript'); var noscript = noscripts[noscripts.length-1]; print('1:' + noscript.innerHTML); print('2:' + noscript.innerText); print('3:' + noscript.textContent); print('4:' + (noscript.firstChild ? noscript.firstChild.data : '')); print('5:' + (noscript.firstChild ? noscript.firstChild.textContent : '')); print('6:' + (noscript.firstChild ? noscript.firstChild.nodeValue : '')); print('7:' + (noscript.firstChild ? noscript.firstChild.wholeText : '')); })();