1vanK said:
Why it's need to write @obj = @obj2 in AS if user almost always want to copy a reference?
Just a minor observation. You don't need to use @ on both sides. Just on the left is enough to indicate that it is a handle assignment, i.e. @obj = obj2;