perf(view): inline and refactor view instantiation and hydration
- Don’t convert DOM array into JS array via `Array.slice` - Inline static methods for instantiation and hydration - Misc cleanup Closes #291
This commit is contained in:
@ -32,6 +32,7 @@ class IterableMap extends IterableBase<List> {
|
||||
|
||||
class MapWrapper {
|
||||
static HashMap create() => new HashMap();
|
||||
static HashMap clone(Map m) => new HashMap.from(m);
|
||||
static HashMap createFromStringMap(m) => m;
|
||||
static HashMap createFromPairs(List pairs) {
|
||||
return pairs.fold({}, (m, p){
|
||||
|
@ -6,6 +6,7 @@ export var Set = window.Set;
|
||||
|
||||
export class MapWrapper {
|
||||
static create():Map { return new Map(); }
|
||||
static clone(m:Map):Map { return new Map(m); }
|
||||
static createFromStringMap(stringMap):Map {
|
||||
var result = MapWrapper.create();
|
||||
for (var prop in stringMap) {
|
||||
@ -63,8 +64,8 @@ export class ListWrapper {
|
||||
static createFixedSize(size):List { return new List(size); }
|
||||
static get(m, k) { return m[k]; }
|
||||
static set(m, k, v) { m[k] = v; }
|
||||
static clone(array) {
|
||||
return Array.prototype.slice.call(array, 0);
|
||||
static clone(array:List) {
|
||||
return array.slice(0);
|
||||
}
|
||||
static map(array, fn) {
|
||||
return array.map(fn);
|
||||
|
@ -68,11 +68,8 @@ class DOM {
|
||||
static clone(Node node) {
|
||||
return node.clone(true);
|
||||
}
|
||||
static setProperty(Element element, String name, value) {
|
||||
new JsObject.fromBrowserObject(element)[name] = value;
|
||||
}
|
||||
static getProperty(Element element, String name) {
|
||||
return new JsObject.fromBrowserObject(element)[name];
|
||||
static hasProperty(Element element, String name) {
|
||||
return new JsObject.fromBrowserObject(element).hasProperty(name);
|
||||
}
|
||||
static getElementsByClassName(Element element, String name) {
|
||||
return element.getElementsByClassName(name);
|
||||
|
@ -63,11 +63,8 @@ export class DOM {
|
||||
static clone(node:Node) {
|
||||
return node.cloneNode(true);
|
||||
}
|
||||
static setProperty(element:Element, name:string, value) {
|
||||
element[name] = value;
|
||||
}
|
||||
static getProperty(element:Element, name:string) {
|
||||
return element[name];
|
||||
static hasProperty(element:Element, name:string) {
|
||||
return name in element;
|
||||
}
|
||||
static getElementsByClassName(element:Element, name:string) {
|
||||
return element.getElementsByClassName(name);
|
||||
|
Reference in New Issue
Block a user