(selector, definition)
| 231 | return (config[selector] || attributes).o; |
| 232 | }; |
| 233 | var define = function define(selector, definition) { |
| 234 | if (-1 < query.indexOf(selector)) throw new Error('duplicated: ' + selector); |
| 235 | flush(); |
| 236 | var listeners = []; |
| 237 | var retype = create(null); |
| 238 | |
| 239 | for (var k = keys(definition), i = 0, length = k.length; i < length; i++) { |
| 240 | var key = k[i]; |
| 241 | |
| 242 | if (/^on/.test(key) && !/Options$/.test(key)) { |
| 243 | var options = definition[key + 'Options'] || false; |
| 244 | var lower = key.toLowerCase(); |
| 245 | var type = lower.slice(2); |
| 246 | listeners.push({ |
| 247 | t: type, |
| 248 | o: options |
| 249 | }); |
| 250 | retype[type] = key; |
| 251 | |
| 252 | if (lower !== key) { |
| 253 | type = key.slice(2, 3).toLowerCase() + key.slice(3); |
| 254 | retype[type] = key; |
| 255 | listeners.push({ |
| 256 | t: type, |
| 257 | o: options |
| 258 | }); |
| 259 | } |
| 260 | } |
| 261 | } |
| 262 | |
| 263 | if (listeners.length) { |
| 264 | definition.handleEvent = function (event) { |
| 265 | this[retype[event.type]](event); |
| 266 | }; |
| 267 | } |
| 268 | |
| 269 | query.push(selector); |
| 270 | config[selector] = { |
| 271 | m: new WeakMap(), |
| 272 | l: listeners, |
| 273 | o: definition |
| 274 | }; |
| 275 | parse(document.querySelectorAll(selector)); |
| 276 | whenDefined(selector); |
| 277 | if (!lazy.has(selector)) defined[selector]._(); |
| 278 | }; |
| 279 | var defineAsync = function defineAsync(selector, callback, _) { |
| 280 | lazy.add(selector); |
| 281 | define(selector, { |
no test coverage detected