Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Side by Side Diff: lib/dom/templates/html/dartium/impl_Document.darttemplate

Issue 9732019: dart:html perf optimization based on runing Dromaeo benchmarks (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixes Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 class $CLASSNAME extends _ElementImpl
6 implements Document {
7 $!MEMBERS
8
9 final dom.HTMLDocument _documentPtr;
10 final _NodeImpl _wrappedDocumentPtr;
11
12 _DocumentImpl._wrap(ptr) :
13 super._wrap(ptr),
14 _documentPtr = ptr.parentNode,
15 _wrappedDocumentPtr = ptr.parentNode != null ?
16 new _SecretHtmlDocumentImpl._wrap(ptr.parentNode) : null;
17
18 // For efficiency and simplicity, we always use the HtmlElement as the
19 // Document but sometimes internally we need the real JS document object.
20 _NodeImpl get _rawDocument() => _wrappedDocumentPtr;
21
22 // The document doesn't have a parent element.
23 _ElementImpl get parent() => null;
24 }
25
26 // This class should not be externally visible. If a user ever gets access to
27 // a _SecretHtmlDocumentImpl object that is a bug. This object is hidden by
28 // adding checks to all methods that could an HTMLDocument. We believe that
29 // list is limited to Event.target, and HTMLHtmlElement.parent.
30 // In a wrapper based world there isn't a need for this complexity but we
31 // use this design for consistency with the wrapperless implementation so
32 // that bugs show up in both cases.
33 class _SecretHtmlDocumentImpl extends _NodeImpl implements Node {
34
35 _SecretHtmlDocumentImpl._wrap(ptr) : super._wrap(ptr);
36
37 _DocumentImpl get _documentElement() => _wrap(_ptr.documentElement);
38 }
39
40 EventTarget _FixHtmlDocumentReference(EventTarget eventTarget) {
41 if (eventTarget is _SecretHtmlDocumentImpl) {
42 _SecretHtmlDocumentImpl secretDocument = eventTarget;
43 return secretDocument._documentElement;
44 } else {
45 return eventTarget;
46 }
47 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698