Category Archives: JavaScript

Eval is Evil 3

Continuando nossa saga de evitar Eval e conhecer melhor o Javascript, vou brincar com a seguinte situação: parsear um template html escrito com Expression Language da spec JSP.

Imagina o seguinte trecho abaixo:

<c:if test="${sessionScope.cart.numberOfItems > 0}">
  ...
</c:if>

É fácil montarmos um mapa com todas as expressões encontradas entre ${ e } e depois chamar eval para processar, mas como quero evitar essa chamada, o que podemos fazer?

Encontramos na documentação de referência da Mozilla a resposta, especificamente no objeto nativo Function, onde podemos criar uma new Function passando seu corpo como uma string que será executada ao fazer a chamada dessa function. Montei abaixo um exemplo como funciona:


Caso não veja no seu Feedreader, link do github.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated matter. Matters, like “coupons for viagra“, are connected numerous types of heartiness problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may turn on erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Compatibilidade dos navegadores com especificação javascript ECMA 262

Fiz um teste nesse momento em 4 navegadores que utilizo no dia-a-dia usando o projeto Sputnik do GoogleLabs para saber a aderencia à especificação ECMA 262. Fiz um teste sem compromisso e sem rigor acadêmico, apenas por curiosidade.

Esse teste é interessante para sabermos que possíveis problemas irão acontecer por diferença de implementação do Javascript por cada engine.

Firefox

Total: 5246
Succeeded: 4982
Failed: 264

Versão 3.6.16

Opera

Total: 5246
Succeeded: 5172
Failed: 74

Versão 11.01 – Build 1190

Chrome

Total: 5246
Succeeded: 5110
Failed: 136

Versão 11.0.696.57

Safari

Total: 5246
Succeeded: 5083
Failed: 163

Versão 5.0.5 (6533.21.1)

Voltei…

O interessante é observar que o Opera é o mais aderente, o Firefox o mais lento [travou], o Chrome o mais rápido. Para não ser injusto com o Firefox, eu ainda matei o processo, abre uma instância novinha e mesmo assim ele travou na execução, abriu aquela janelinha marota pedindo para encerrar o script.

Sequencia no sentido horário: Opera, Firefox, Safari e Chrome.

A velocidade e economia do Chrome é realmente impressionante, observe os processos:

Sequencia no sentido horário: Opera, Firefox, Safari e Chrome.

Dados da minha máquina:

[update]

Como eu sei que alguém vai me acusar de parcial, etc e tal, eu resolvi abrir uma VM aqui com XP e IE8 para não dizerem que não falei de flores … olha só:

Ok, é má vontade… Sério?

Uns 10 minutos depois e sem voltar [continua travado], já basta esses dados para mostrar que o IE8 é uma bo$ta em relação a aderência [imagina o 6]:

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a so complicated question. Matters, like “coupons for viagra“, are united numerous types of health problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Palestra TDD com Javascript na FA7

Amanhã, 11/04/2011, palestrarei no evento “8.ª Jornada CETI – Cursos de Extensão em Tecnologia da Informação” na FA7, sede do BrazilJS.

Titulo: Test Driven Development com Javascript
Resumo Original:  Entenderemos que só TDD é o caminho e a luz da escrita de um bom software, será demonstrado como até em plataformas difíceis se pode praticar essa metodologia, admitir que testes em TDD é apenas um benefício e não a causa, além de códigos e mais códigos.

Ah, será duas vezes:

Manhã

Data: 11/04/2010, segunda-feira
Horário: 07h30
Local: Auditório do Curso de Direito

Noite

Data: 11/04/2010, segunda-feira
Horário: 19h
Local: Auditório do Curso de Direito

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated matter. Matters, like “coupons for viagra“, are connected numerous types of heartiness problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may include erectile malfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.