This is the third and main part of the patch refactoring.
Patch libraries, classes, and functions now have there separate element chain,
which is doubly-linked to their origin counterparts.
See the library comment in lib/compiler/patch_parser.dart for a detailed
description of the new patch system, the terminology and the invariants.
Review URL: https://codereview.chromium.org//10905305
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13163 260f80e4-7a28-3924-810f-c04153c831b5
This is the second try to my previous attempt to implement the
new abstract class handling. Instead of a compile-time error,
the VM now throws an AbstractClassInstantiationError at runtime
if an abstract class is instantiated. Added the new error class
to the core library.
For now I'm still using the rule that a class is abstract if it is explicitly
marked as abstract, or if it defines a new abstract method.
Review URL: https://chromiumcodereview.appspot.com//10916039
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11708 260f80e4-7a28-3924-810f-c04153c831b5