This documentation is intended to provide developers with a guide to developing rendering objects. = Tips and Techniques = * Your implementation of `RenderObject::layout()` should guarantee that object and its descendants do not need '''any''' layout when you leave the method. * In your `RenderObject::layout()` method, add a `ASSERT(needsLayout())` at the beginning and a `setNeedsLayout(false)` at the end. * If your render object needs to access DOM attributes and use them to set properties or construct other objects in the tree, you need to use ''mapped attributes'' or `updateFromElement` to control such behavior.