Closure

Today we finally announced and released Closure (or Closure Library as the JS library is officially known as). History Me and Dan Pupius started the JS library at Google a long time ago. At the time there was a lot of good JS code at Google but there was really no order to it and ...

EcmaScript Edition 5 is final

After a lot of back and forth in the TC and the failure of ES4 the TC was focused on ES3.1. The final spec for ES3.1 is now called EcmaScript, Fifth Edition. The most exciting thing in ES5 is that it finally standardize getters and setters. It also allows us to control the enumerability as ...

New Explorer Canvas Release

Over at the newly created Explorer Canvas Blog we announced the new release.

Playing around with WebKit Animations

Ever since WebKit started to introduce all these fancy new CSS properties like 2D and 3D transformations, transitions and declarative animations I’ve been drooling like a script kiddie from the year 2000. I’ve been thinking about how I can use them in some Google property but unfortunately the whole world is not using nightly builds ...

Offline Gmail

Last week we launched Offline Gmail. After releasing Gears I moved to the Gmail team to work on Offline Gmail. I think it was pretty obvious that we were working on this and Offline Gmail was the first and possibly the hardest task we wanted to be able to solve with Gears. A lot of ...

Using catch-alls to implement super in SpiderMonkey

Another thing that always been bothering me about OOP in JS is that calling super is such a pain. Some libraries do ugly hacks like checking the source (by calling toString on their constructor and method function objects) and then wrap the original function in another function that encapsulates a variable called super. Other libraries ...

Instance private, class private, package and friends

Update: This is flawed. See details at the end. This post was inspired by a post that Robert Nyman wrote a while back. At the same time I was thinking about how to achieve private fields without the memory issues. JavaScript does not have private members as understood by a lot of other object oriented programming ...

Just Married

Just Married
Photo by our friend Stella Loh.

Google Chrome

I guess you all have downloaded Chrome already. If not, what are you waiting for? I’d like to congratulate my friends who have been working so hard on this. Congratulations Glen and Ojan. Also, I’d like to add that Chrome is totally awesome, and I’m not saying that because I work at Google. I’m saying ...

IE8 and box-sizing

One of my top feature request for IE8 was for it to support box-sizing. I’m happy to see that IE8 does support box-sizing although it has a annoying quirk. The DOM property name is not correct. The rule for translating CSS property names to DOM property names is to replace a dash followed by a ...