Tesztelés régi js környezetben
Van bármi ötletetek, hogy hogyan lehetne előző ECMAScript verziókon kódot tesztelni? Úgy értem, hogy ES5 előttieken, pl ES3 vagy ES1. Nem igazán találok semmilyen környezetet, amivel meg tudnám csinálni. Akár még az is játszik, ha virtuális gépen kell futtatni valami netscape-et vagy ilyesmit. Igazából csak annyira kell, hogy egy hibakezelő keretrendszert teszteljek, hogy működik e bármilyen környezetben, akár ilyen extrémben is.
■
Közben utánajártam, elvileg
szerk:
No csekkoltam IE6 van fent a win98-on. Itt van egy egész jó lista ECMAScript verziókról: link, az IE6 elvileg még épphogy ES3, de igazából még IE8-hoz is azt írja, pedig az már elég sok ES5 feature-t implementál. Ezek alapján nekem IE4 és NS4.06 fog kelleni. Megnézem, hogy tudom e downgradelni. Sikerült IE5-re downgradelni, szóval win98 second edition lehet. Van még rajta egy opera 10.63, ami szintén hasznos lesz tesztelésre.
Hát nem egyszerű. :DA már
A már meglévő win98-on nem működött a hálózat, fogalmam sincs, hogy miért, elvileg jól volt beállítva. Végül leszedtem egy win98 first edition-t innen: link. Kulcsot is lehet találni az oldalon, retro warez-nek minősül, de már senki nem nézi. Utána telepítés, kék halál a képernyő illesztő miatt, csökkentett mód, újraindítás, stb. Utána belőttem a hálózatot LAN-nak, a VirtualBox-on meg beállítottam NAT-nak, és végre sikerült internetet varázsolni rá. Nem tudom hogyan lehet letiltani az internet hozzáférését úgy, hogy megmaradjon a belső háló virtualbox-on, szóval biztonsági rést jelent, ha esetleg fertőződne a rendszer, de nem akkora gond.
A fájlok átküldése érdekes módon a legnehezebb. Alapból a VirtualBox nem támogatja a win98-at, tehát nem lehet azon keresztül mappákat megosztani. A samba fájl megosztásnál a win98 régebbi protokollt használ, mint a win7. Elvileg be lehet állítani a win7-et, hogy legyen visszafele kompatibilis, és csatlakozzon win98 megosztásokhoz, mint kliens, de a gyakorlatban nekem nem működött. Kipróbáltam az FTP-t is, azzal meg az a baj, hogy az IE6, ami fent van, nem támogatja a passive mode-ot (ezt már win98 second edition-el próbáltam, ahol IE6 és nem IE4 van). Érdekes, mert a későbbi oprendszereknél meg már támogatja a passive mode-ot, és ugyanúgy IE6. Port forward-al nem sikerült életet lehelni az active mode-ba, a visszafele nyitott data connection nem megy át az IE6-hoz, úgyhogy gyakorlatilag az FTP is kilőve. Marad, hogy generálok linkeket a fájlokhoz, amiket át akarok küldeni, aztán letöltöm őket egyesével HTTP-n keresztül. Esetleg telepítek egy FTP klienst, ami tud passive mode-ot, pl TotalCommander-t, de annyira nem ragaszkodom ehhez az egész FTP-hez. Ha sok fájlt kell áttenni nem sokkal egyszerűbb, mint becsomagolni zip-be, aztán HTTP-vel átrántani és kicsomagolni.
A localhost a host OS-en elérhető a 10.0.2.2 címen. Ha esetleg nem jönne össze, akkor run, command (a cmd nem működik), ipconfig-al a default gateway címe az. Alapból ehhez a first edition-höz IE4-et adnak, ami jó, mert tudom ECMAScript 1-el tesztelni a kódom rajta.
Az eddigi tanulságok IE4-el és ES1-el kapcsolatban:
- nincs konzol
- a DOM-ban csak innerHTML van, nincs createElement és appendChild
- nincs a DOM-ban getElementById, muszáj vagy a gyerek elemeket átnézni, vagy a document.all-ból kikeresni, hogy melyikkel azonos az id
- nincs JSON stringify
- nincs Array.prototype.push
- nincs Error stack és try-catch, csak window.onerror
- nincs instanceof, csak typeof
- nincs hasOwnProperty, és if key in object, csak az értékeket lehet tesztelni
- nincs undefined, csak null, bár néha undefined-et ír
- az enumeration minden property-t végignyálaz, a prototype-al örökölteket is
Sikerült egy alap konzolt létrehozni az alábbi pár sor kóddal:
Mi a cél? És miért? :)
Konkrétan mi is a cél? A keretrendszeredet szeretnéd IE4 kompatibilissé tenni? Honnan jött ez az ötlet, hogy jó lenne ilyet csinálni? :)
Nem ez a cél. Szeretném