May 2012 Lua Article Problems

The lua examples in the May 2012 article "Object-Oriented Programming with Lua" do not seem to work as presented in either version 5.4.1 or 5.2. In particular using:

function, o)
local p = o or {x=0, y=0}
return p

and the print method given. Then using:

p1 ={x=10, y=10})


Gives (0,0) instead of (10,10).

The problem appears to be the "self" in the constructor makes to ctor fail to process the object {x=10, y=10}. Is something missing from the article?