OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2014 The Chromium Authors. All rights reserved. | 2 * Copyright 2014 The Chromium Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 /** | 7 /** |
8 * @unrestricted | 8 * @unrestricted |
9 */ | 9 */ |
10 SDK.Target = class extends Protocol.TargetBase { | 10 SDK.Target = class extends Protocol.TargetBase { |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
136 | 136 |
137 /** | 137 /** |
138 * @param {function(new:T, !SDK.Target)} modelClass | 138 * @param {function(new:T, !SDK.Target)} modelClass |
139 * @return {?T} | 139 * @return {?T} |
140 * @template T | 140 * @template T |
141 */ | 141 */ |
142 model(modelClass) { | 142 model(modelClass) { |
143 if (!this._modelByConstructor.get(modelClass)) { | 143 if (!this._modelByConstructor.get(modelClass)) { |
144 var capabilities = SDK.SDKModel._capabilitiesByModelClass.get(modelClass); | 144 var capabilities = SDK.SDKModel._capabilitiesByModelClass.get(modelClass); |
145 if (capabilities === undefined) | 145 if (capabilities === undefined) |
146 throw 'Model class is not registered'; | 146 throw 'Model class is not registered @' + new Error().stack; |
lushnikov
2017/03/20 23:50:09
`Model class '${modelClass}' is not registered @`
dgozman
2017/03/21 21:04:09
I tried that, but modelClass is a function, and do
| |
147 if ((this._capabilitiesMask & capabilities) === capabilities) { | 147 if ((this._capabilitiesMask & capabilities) === capabilities) { |
148 var model = new modelClass(this); | 148 var model = new modelClass(this); |
149 this._modelByConstructor.set(modelClass, model); | 149 this._modelByConstructor.set(modelClass, model); |
150 this._targetManager.modelAdded(this, modelClass, model); | 150 this._targetManager.modelAdded(this, modelClass, model); |
151 } | 151 } |
152 } | 152 } |
153 return this._modelByConstructor.get(modelClass) || null; | 153 return this._modelByConstructor.get(modelClass) || null; |
154 } | 154 } |
155 | 155 |
156 /** | 156 /** |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
256 * @param {number} capabilities | 256 * @param {number} capabilities |
257 */ | 257 */ |
258 SDK.SDKModel.register = function(modelClass, capabilities) { | 258 SDK.SDKModel.register = function(modelClass, capabilities) { |
259 if (!SDK.SDKModel._capabilitiesByModelClass) | 259 if (!SDK.SDKModel._capabilitiesByModelClass) |
260 SDK.SDKModel._capabilitiesByModelClass = new Map(); | 260 SDK.SDKModel._capabilitiesByModelClass = new Map(); |
261 SDK.SDKModel._capabilitiesByModelClass.set(modelClass, capabilities); | 261 SDK.SDKModel._capabilitiesByModelClass.set(modelClass, capabilities); |
262 }; | 262 }; |
263 | 263 |
264 /** @type {!Map<function(new:SDK.SDKModel, !SDK.Target), number>} */ | 264 /** @type {!Map<function(new:SDK.SDKModel, !SDK.Target), number>} */ |
265 SDK.SDKModel._capabilitiesByModelClass; | 265 SDK.SDKModel._capabilitiesByModelClass; |
OLD | NEW |