Index: client/html/src/_DOMTypeBase.dart |
diff --git a/client/html/src/_DOMTypeBase.dart b/client/html/src/_DOMTypeBase.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..85e4b2e0167da12b347dda50c7371b5b37ba688e |
--- /dev/null |
+++ b/client/html/src/_DOMTypeBase.dart |
@@ -0,0 +1,22 @@ |
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+class _DOMTypeBase { |
+ final _ptr; |
+ |
+ _DOMTypeBase._wrap(this._ptr) { |
nweiz
2012/03/01 21:18:03
Should this be in a dartium-specific directory or
|
+ // We should never be creating duplicate wrappers. |
+ // TODO(jacobr): this boolean value is evaluated outside of the assert |
+ // to work around a mysterious and flaky bug in tip of trunk versions of |
+ // chrome. |
+ bool hasExistingWrapper = _ptr.dartObjectLocalStorage === null; |
+ assert(hasExistingWrapper); |
+ _ptr.dartObjectLocalStorage = this; |
+ } |
+} |
+ |
+/** This function is provided for unittest purposes only. */ |
+unwrapDomObject(_DOMTypeBase wrapper) { |
+ return wrapper._ptr; |
+} |