abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:55 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 18:22 | Bezpečnostní upozornění

    Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.

    vencour | Komentářů: 0
    včera 18:11 | Nová verze

    Byl vydán Mozilla Firefox 159.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 159 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 1
    včera 14:11 | IT novinky

    Nasazení softwaru, který nyní používá ve svých autech pro čínský trh, zvažuje automobilový koncern Volkswagen také v Evropě, kde by se mohl používat v budoucích vozech značek Volkswagen, Škoda a Cupra. Základem pro budoucí evropské modely by se mohla stát takzvaná China Electronic Architecture, elektronická architektura vyvinutá pro čínské modely ve spolupráci s tamní automobilkou Xpeng.

    Ladislav Hagara | Komentářů: 34
    včera 13:44 | Komunita

    Vedoucím brněnské pobočky Red Hatu se stal Radek Vokál [LinkedIn].

    Ladislav Hagara | Komentářů: 2
    26.10. 21:29 | Nová verze

    Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.

    Max | Komentářů: 31
    26.10. 21:11 | Bezpečnostní upozornění

    Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.

    Ladislav Hagara | Komentářů: 10
    26.10. 18:33 | Komunita

    Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace

    … více »
    Pendrekama do nich❗ | Komentářů: 1
    26.10. 15:22 | Zajímavý článek

    Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.

    vencour | Komentářů: 0
    26.10. 14:33 | Nová verze

    Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2936 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Google přibližuje světu jazyk Dart

    Google světu ukázal jazyk Dart, jehož účelem je nahradit JavaScript ve webových aplikacích. Veškeré informace a ukázky najdete na dartlang.org. Jazyk se dost podobá Javě, ale zachovává některé rysy JavaScriptu.

    10.10.2011 13:14 | Luboš Doležel (Doli) | Zajímavý projekt


    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Saljack avatar 10.10.2011 13:24 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Execute Dart code directly in a VM on the server side?
    Sex, Drugs & Rock´n Roll.
    Rezza avatar 10.10.2011 13:52 Rezza | skóre: 25 | blog: rezza | Brno
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Kolikaty je to jazyk od Google? :)))
    10.10.2011 14:02 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    tento pocin vitam daleko vic nez treba go, protoze resi konkretni problem... a to, ze javascript je jedno velke programatorske peklo a pokud se ho podari nahradit necim civilizovanejsim, mozna se bude dat rozumne programovat i na strane klienta... ale hodne zalezi na tom, jak se bude jazyk a jeho podpora dal vyvijet.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    10.10.2011 14:11 kralyk z abclinuxu | skóre: 29 | blog:  
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    +1, aby se dal JavaScript rozumně použít, musí se hrozně znásilňovat. Viz jQuery... Ne, že by to nefungovalo, ale je to takové, no, je na tom vidět, že ten jazyk na to není stavěný.
    10.10.2011 14:33 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Rozšiřitelnost není znásilňování. JavaScript je šílený jazyk, ale má pár skvělých vlastností: událostní smyčku, funkce jako hodnoty (first-class functions, higher-order functions) a rozšiřitelnou syntaxi.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    10.10.2011 14:50 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Rozšiřitelnost není znásilňování.

    knihovna od zakladu prekopavajici cely jazyk za ucelem, aby se dal ten jazyk pouzivat k tomu, k cemu byl vubec navrzeny mi prijde opravdu trochu jako zvracenost a znasilneni
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    10.10.2011 14:53 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Jo, a největší prča na tom je, že ta knihovna nemění vůbec nic. Čekal bych, že zrovna ty budeš mít trochu pochopení, v JavaScriptu je pod pár vrstvami špíny a hnusu ukryté Scheme, které by mohly pochopit i masy :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    10.10.2011 15:10 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Jo, a největší prča na tom je, že ta knihovna nemění vůbec nic.
    to jo. mimochodem, osobne radsi preferuju dojo, prijde mi takove nejake civilizovanejsi.
    Čekal bych, že zrovna ty budeš mít trochu pochopení, v JavaScriptu je pod pár vrstvami špíny a hnusu ukryté Scheme, které by mohly pochopit i masy :-)
    ano, jedna cast meho ja ocenuje, ze tam je opravdu schovany scheme, a ze JS zpristupnuje funkcionalni zpusob programovani i sirokym masam. ale ta druha cast meho ja, ktera v tom obcas musi neco programovat by autory specifikace i s implementatory vymachala v dehtu a peri a hnala je pres cele silicon valley.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    10.10.2011 15:08 R
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    A ked sa ta kniznica parsuje pri kazdom nacitani stranky, to je parada...
    10.10.2011 15:09 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    To je věc konkrétní implementace.
    10.10.2011 14:11 polymorf | skóre: 14 | blog: tar_zxpf
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Co konkretne ti na JS vadi?
    Luboš Doležel (Doli) avatar 10.10.2011 14:17 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Z hlediska API je hrozně nízkoúrovňový.
    Bedňa avatar 10.10.2011 14:32 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Tak, tak s čím súvisia aj rozdielne implementácie DOMu.
    KERNEL ULTRAS video channel >>>
    10.10.2011 14:31 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    In love!
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    alblaho avatar 10.10.2011 19:32 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Proč? Má to pořádně udělanou kompozici objektů?
    11.10.2011 10:28 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Nemá, pořád je tam dědičnost (jednoduchá, plus možná v budoucnu přibudou traity), ale má to kromě normálních i factory konstruktory, což je zatím to nejlepší řešení konstruktorů, co jsem viděl. A i jinak je to docela hezké, rozhodně mne překvapili… no i když Gilad Bracha a Peter Ahé, ti mne vlastně mohli překvapit jenom příjemně :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    10.10.2011 14:46 __dark__
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Po fiasku s jazykem Go uvádí google Dart, jakákoliv podobnost s actionscriptem je čistě náhodná, pro jistotu byla změněna i standardní syntax deklarace funkcí, konstruktorů, a přejmenovány některé typy ;-)
    10.10.2011 15:47 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Těší mě možnost statického typování a zároveň doufám, že prohlížeče využijí typovou informaci ke zvýšení rychlosti.
    10.10.2011 20:38 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    To tu nikdo nezná/nepoužívá haxe?

    Jsem mimořádně obtížný případ
    10.10.2011 21:48 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Důležité IMO je, že za Dartem stojí Google a bude mít podporu přímo v Chrome.
    10.10.2011 22:14 kralyk z abclinuxu | skóre: 29 | blog:  
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Jazyk, ze kterého se dá nageneroat JS, PHP a C++? Nic prot, ale to zní dost šíleně :-D
    Saljack avatar 10.10.2011 22:17 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Proč?
    Sex, Drugs & Rock´n Roll.
    10.10.2011 22:57 Juraj
    Rozbalit Rozbalit vše Pre pythonistov - CoffeeScript
    CoffeeScript - Velmi som v tom este nerobil ale kod sa dobre cita.

    11.10.2011 10:14 Michal Karas | skóre: 45 | blog: /dev/random
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Hello world v Dartu zkompilovaný do JavaScriptu: https://gist.github.com/1277224. :)
    11.10.2011 12:34 polymorf | skóre: 14 | blog: tar_zxpf
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Epic thread :D

    Inak ak ma byt dart->js docasna nahrada za GWT (ktore je tiez humus) pre prehliadace ktore nebudu podporovat dart (vsetky okrem chrome) tak to neni az take zle. Samozrejme pouzivat by som to nechcel, je to proste taka politicky korektnejsia nahrada za alert('Stranka je optimalizovana pre google chrome')
    11.10.2011 12:54 pozortucnak | skóre: 21 | blog: vecny_windowsar
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart

    Hello world v haxe zkompilovaný do JavaScriptu:

    haxe
    import js.Lib;
    class Main 
    {
      static function main() 
      {
        Lib.alert("ahoj světe");
      }
    }
    
    javascript
    $estr = function() { return js.Boot.__string_rec(this,''); }
    Std = function() { }
    Std.__name__ = ["Std"];
    Std["is"] = function(v,t) {
    	$s.push("Std::is");
    	var $spos = $s.length;
    	var $tmp = js.Boot.__instanceof(v,t);
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    Std.string = function(s) {
    	$s.push("Std::string");
    	var $spos = $s.length;
    	var $tmp = js.Boot.__string_rec(s,"");
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    Std["int"] = function(x) {
    	$s.push("Std::int");
    	var $spos = $s.length;
    	if(x < 0) {
    		var $tmp = Math.ceil(x);
    		$s.pop();
    		return $tmp;
    	}
    	var $tmp = Math.floor(x);
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    Std.parseInt = function(x) {
    	$s.push("Std::parseInt");
    	var $spos = $s.length;
    	var v = parseInt(x,10);
    	if(v == 0 && x.charCodeAt(1) == 120) v = parseInt(x);
    	if(isNaN(v)) {
    		$s.pop();
    		return null;
    	}
    	var $tmp = v;
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    Std.parseFloat = function(x) {
    	$s.push("Std::parseFloat");
    	var $spos = $s.length;
    	var $tmp = parseFloat(x);
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    Std.random = function(x) {
    	$s.push("Std::random");
    	var $spos = $s.length;
    	var $tmp = Math.floor(Math.random() * x);
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    Std.prototype.__class__ = Std;
    IntIter = function(min,max) {
    	if( min === $_ ) return;
    	$s.push("IntIter::new");
    	var $spos = $s.length;
    	this.min = min;
    	this.max = max;
    	$s.pop();
    }
    IntIter.__name__ = ["IntIter"];
    IntIter.prototype.min = null;
    IntIter.prototype.max = null;
    IntIter.prototype.hasNext = function() {
    	$s.push("IntIter::hasNext");
    	var $spos = $s.length;
    	var $tmp = this.min < this.max;
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    IntIter.prototype.next = function() {
    	$s.push("IntIter::next");
    	var $spos = $s.length;
    	var $tmp = this.min++;
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    IntIter.prototype.__class__ = IntIter;
    Main = function() { }
    Main.__name__ = ["Main"];
    Main.main = function() {
    	$s.push("Main::main");
    	var $spos = $s.length;
    	js.Lib.alert("ahoj světe");
    	$s.pop();
    }
    Main.prototype.__class__ = Main;
    if(typeof js=='undefined') js = {}
    js.Lib = function() { }
    js.Lib.__name__ = ["js","Lib"];
    js.Lib.isIE = null;
    js.Lib.isOpera = null;
    js.Lib.document = null;
    js.Lib.window = null;
    js.Lib.alert = function(v) {
    	$s.push("js.Lib::alert");
    	var $spos = $s.length;
    	alert(js.Boot.__string_rec(v,""));
    	$s.pop();
    }
    js.Lib.eval = function(code) {
    	$s.push("js.Lib::eval");
    	var $spos = $s.length;
    	var $tmp = eval(code);
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    js.Lib.setErrorHandler = function(f) {
    	$s.push("js.Lib::setErrorHandler");
    	var $spos = $s.length;
    	js.Lib.onerror = f;
    	$s.pop();
    }
    js.Lib.prototype.__class__ = js.Lib;
    js.Boot = function() { }
    js.Boot.__name__ = ["js","Boot"];
    js.Boot.__unhtml = function(s) {
    	$s.push("js.Boot::__unhtml");
    	var $spos = $s.length;
    	var $tmp = s.split("&").join("&").split("<").join("<").split(">").join(">");
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    js.Boot.__trace = function(v,i) {
    	$s.push("js.Boot::__trace");
    	var $spos = $s.length;
    	var msg = i != null?i.fileName + ":" + i.lineNumber + ": ":"";
    	msg += js.Boot.__unhtml(js.Boot.__string_rec(v,"")) + "<br/>";
    	var d = document.getElementById("haxe:trace");
    	if(d == null) alert("No haxe:trace element defined\n" + msg); else d.innerHTML += msg;
    	$s.pop();
    }
    js.Boot.__clear_trace = function() {
    	$s.push("js.Boot::__clear_trace");
    	var $spos = $s.length;
    	var d = document.getElementById("haxe:trace");
    	if(d != null) d.innerHTML = "";
    	$s.pop();
    }
    js.Boot.__closure = function(o,f) {
    	$s.push("js.Boot::__closure");
    	var $spos = $s.length;
    	var m = o[f];
    	if(m == null) {
    		$s.pop();
    		return null;
    	}
    	var f1 = function() {
    		$s.push("js.Boot::__closure@67");
    		var $spos = $s.length;
    		var $tmp = m.apply(o,arguments);
    		$s.pop();
    		return $tmp;
    		$s.pop();
    	};
    	f1.scope = o;
    	f1.method = m;
    	$s.pop();
    	return f1;
    	$s.pop();
    }
    js.Boot.__string_rec = function(o,s) {
    	$s.push("js.Boot::__string_rec");
    	var $spos = $s.length;
    	if(o == null) {
    		$s.pop();
    		return "null";
    	}
    	if(s.length >= 5) {
    		$s.pop();
    		return "<...>";
    	}
    	var t = typeof(o);
    	if(t == "function" && (o.__name__ != null || o.__ename__ != null)) t = "object";
    	switch(t) {
    	case "object":
    		if(o instanceof Array) {
    			if(o.__enum__ != null) {
    				if(o.length == 2) {
    					var $tmp = o[0];
    					$s.pop();
    					return $tmp;
    				}
    				var str = o[0] + "(";
    				s += "\t";
    				var _g1 = 2, _g = o.length;
    				while(_g1 < _g) {
    					var i = _g1++;
    					if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
    				}
    				var $tmp = str + ")";
    				$s.pop();
    				return $tmp;
    			}
    			var l = o.length;
    			var i;
    			var str = "[";
    			s += "\t";
    			var _g = 0;
    			while(_g < l) {
    				var i1 = _g++;
    				str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
    			}
    			str += "]";
    			$s.pop();
    			return str;
    		}
    		var tostr;
    		try {
    			tostr = o.toString;
    		} catch( e ) {
    			$e = [];
    			while($s.length >= $spos) $e.unshift($s.pop());
    			$s.push($e[0]);
    			$s.pop();
    			return "???";
    		}
    		if(tostr != null && tostr != Object.toString) {
    			var s2 = o.toString();
    			if(s2 != "[object Object]") {
    				$s.pop();
    				return s2;
    			}
    		}
    		var k = null;
    		var str = "{\n";
    		s += "\t";
    		var hasp = o.hasOwnProperty != null;
    		for( var k in o ) { ;
    		if(hasp && !o.hasOwnProperty(k)) {
    			continue;
    		}
    		if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__") {
    			continue;
    		}
    		if(str.length != 2) str += ", \n";
    		str += s + k + " : " + js.Boot.__string_rec(o[k],s);
    		}
    		s = s.substring(1);
    		str += "\n" + s + "}";
    		$s.pop();
    		return str;
    	case "function":
    		$s.pop();
    		return "<function>";
    	case "string":
    		$s.pop();
    		return o;
    	default:
    		var $tmp = String(o);
    		$s.pop();
    		return $tmp;
    	}
    	$s.pop();
    }
    js.Boot.__interfLoop = function(cc,cl) {
    	$s.push("js.Boot::__interfLoop");
    	var $spos = $s.length;
    	if(cc == null) {
    		$s.pop();
    		return false;
    	}
    	if(cc == cl) {
    		$s.pop();
    		return true;
    	}
    	var intf = cc.__interfaces__;
    	if(intf != null) {
    		var _g1 = 0, _g = intf.length;
    		while(_g1 < _g) {
    			var i = _g1++;
    			var i1 = intf[i];
    			if(i1 == cl || js.Boot.__interfLoop(i1,cl)) {
    				$s.pop();
    				return true;
    			}
    		}
    	}
    	var $tmp = js.Boot.__interfLoop(cc.__super__,cl);
    	$s.pop();
    	return $tmp;
    	$s.pop();
    }
    js.Boot.__instanceof = function(o,cl) {
    	$s.push("js.Boot::__instanceof");
    	var $spos = $s.length;
    	try {
    		if(o instanceof cl) {
    			if(cl == Array) {
    				var $tmp = o.__enum__ == null;
    				$s.pop();
    				return $tmp;
    			}
    			$s.pop();
    			return true;
    		}
    		if(js.Boot.__interfLoop(o.__class__,cl)) {
    			$s.pop();
    			return true;
    		}
    	} catch( e ) {
    		$e = [];
    		while($s.length >= $spos) $e.unshift($s.pop());
    		$s.push($e[0]);
    		if(cl == null) {
    			$s.pop();
    			return false;
    		}
    	}
    	switch(cl) {
    	case Int:
    		var $tmp = Math.ceil(o%2147483648.0) === o;
    		$s.pop();
    		return $tmp;
    	case Float:
    		var $tmp = typeof(o) == "number";
    		$s.pop();
    		return $tmp;
    	case Bool:
    		var $tmp = o === true || o === false;
    		$s.pop();
    		return $tmp;
    	case String:
    		var $tmp = typeof(o) == "string";
    		$s.pop();
    		return $tmp;
    	case Dynamic:
    		$s.pop();
    		return true;
    	default:
    		if(o == null) {
    			$s.pop();
    			return false;
    		}
    		var $tmp = o.__enum__ == cl || cl == Class && o.__name__ != null || cl == Enum && o.__ename__ != null;
    		$s.pop();
    		return $tmp;
    	}
    	$s.pop();
    }
    js.Boot.__init = function() {
    	$s.push("js.Boot::__init");
    	var $spos = $s.length;
    	js.Lib.isIE = typeof document!='undefined' && document.all != null && typeof window!='undefined' && window.opera == null;
    	js.Lib.isOpera = typeof window!='undefined' && window.opera != null;
    	Array.prototype.copy = Array.prototype.slice;
    	Array.prototype.insert = function(i,x) {
    		$s.push("js.Boot::__init@205");
    		var $spos = $s.length;
    		this.splice(i,0,x);
    		$s.pop();
    	};
    	Array.prototype.remove = Array.prototype.indexOf?function(obj) {
    		$s.push("js.Boot::__init@208");
    		var $spos = $s.length;
    		var idx = this.indexOf(obj);
    		if(idx == -1) {
    			$s.pop();
    			return false;
    		}
    		this.splice(idx,1);
    		$s.pop();
    		return true;
    		$s.pop();
    	}:function(obj) {
    		$s.push("js.Boot::__init@213");
    		var $spos = $s.length;
    		var i = 0;
    		var l = this.length;
    		while(i < l) {
    			if(this[i] == obj) {
    				this.splice(i,1);
    				$s.pop();
    				return true;
    			}
    			i++;
    		}
    		$s.pop();
    		return false;
    		$s.pop();
    	};
    	Array.prototype.iterator = function() {
    		$s.push("js.Boot::__init@225");
    		var $spos = $s.length;
    		var $tmp = { cur : 0, arr : this, hasNext : function() {
    			$s.push("js.Boot::__init@225@229");
    			var $spos = $s.length;
    			var $tmp = this.cur < this.arr.length;
    			$s.pop();
    			return $tmp;
    			$s.pop();
    		}, next : function() {
    			$s.push("js.Boot::__init@225@232");
    			var $spos = $s.length;
    			var $tmp = this.arr[this.cur++];
    			$s.pop();
    			return $tmp;
    			$s.pop();
    		}};
    		$s.pop();
    		return $tmp;
    		$s.pop();
    	};
    	if(String.prototype.cca == null) String.prototype.cca = String.prototype.charCodeAt;
    	String.prototype.charCodeAt = function(i) {
    		$s.push("js.Boot::__init@239");
    		var $spos = $s.length;
    		var x = this.cca(i);
    		if(x != x) {
    			$s.pop();
    			return null;
    		}
    		$s.pop();
    		return x;
    		$s.pop();
    	};
    	var oldsub = String.prototype.substr;
    	String.prototype.substr = function(pos,len) {
    		$s.push("js.Boot::__init@246");
    		var $spos = $s.length;
    		if(pos != null && pos != 0 && len != null && len < 0) {
    			$s.pop();
    			return "";
    		}
    		if(len == null) len = this.length;
    		if(pos < 0) {
    			pos = this.length + pos;
    			if(pos < 0) pos = 0;
    		} else if(len < 0) len = this.length + len - pos;
    		var $tmp = oldsub.apply(this,[pos,len]);
    		$s.pop();
    		return $tmp;
    		$s.pop();
    	};
    	$closure = js.Boot.__closure;
    	$s.pop();
    }
    js.Boot.prototype.__class__ = js.Boot;
    $_ = {}
    js.Boot.__res = {}
    $s = [];
    $e = [];
    js.Boot.__init();
    {
    	String.prototype.__class__ = String;
    	String.__name__ = ["String"];
    	Array.prototype.__class__ = Array;
    	Array.__name__ = ["Array"];
    	Int = { __name__ : ["Int"]};
    	Dynamic = { __name__ : ["Dynamic"]};
    	Float = Number;
    	Float.__name__ = ["Float"];
    	Bool = { __ename__ : ["Bool"]};
    	Class = { __name__ : ["Class"]};
    	Enum = { };
    	Void = { __ename__ : ["Void"]};
    }
    {
    	Math.__name__ = ["Math"];
    	Math.NaN = Number["NaN"];
    	Math.NEGATIVE_INFINITY = Number["NEGATIVE_INFINITY"];
    	Math.POSITIVE_INFINITY = Number["POSITIVE_INFINITY"];
    	Math.isFinite = function(i) {
    		$s.push("js.Boot::__init");
    		var $spos = $s.length;
    		var $tmp = isFinite(i);
    		$s.pop();
    		return $tmp;
    		$s.pop();
    	};
    	Math.isNaN = function(i) {
    		$s.push("js.Boot::__init");
    		var $spos = $s.length;
    		var $tmp = isNaN(i);
    		$s.pop();
    		return $tmp;
    		$s.pop();
    	};
    }
    {
    	js.Lib.document = document;
    	js.Lib.window = window;
    	onerror = function(msg,url,line) {
    		var stack = $s.copy();
    		var f = js.Lib.onerror;
    		$s.splice(0,$s.length);
    		if( f == null ) {
    			var i = stack.length;
    			var s = "";
    			while( --i >= 0 )
    				s += "Called from "+stack[i]+"\n";
    			alert(msg+"\n\n"+s);
    			return false;
    		}
    		return f(msg,stack);
    	}
    }
    js.Lib.onerror = null;
    Main.main()
    Jsem mimořádně obtížný případ
    11.10.2011 12:59 Wizard
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Ono když to převáděl do JS tak tam zahrnul všechny knihovny. Samozřejmě že kdyby si nastavil správné parametry tak mu to vygeneruje daleko jednoduší kód. Nehledě toho že to do budoucna budou více toto řešení optimalizovat a vylepšovat.
    11.10.2011 17:01 kralyk z abclinuxu | skóre: 29 | blog:  
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    12.10.2011 13:47 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
    Přiložím další polínko.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

    Založit nové vlákno • Nahoru


    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.