OLD | NEW |
1 /* Adopted from LayoutTests/webexposed/resources/global-interface-listing.js */ | 1 /* Adopted from LayoutTests/webexposed/resources/global-interface-listing.js */ |
2 | 2 |
3 var globals = []; | 3 var globals = []; |
4 | 4 |
5 function is_constructor(property_name) { | 5 // List of builtin JS constructors; Blink is not controlling what properties the
se |
| 6 // objects have, so exercising them in a Blink test doesn't make sense. |
| 7 // |
| 8 // This list should be kept in sync with the one at LayoutTests/webexposed/resou
rces/global-interface-listing.js |
| 9 var js_builtins = new Set([ |
| 10 'Array', |
| 11 'ArrayBuffer', |
| 12 'Boolean', |
| 13 'Date', |
| 14 'Error', |
| 15 'EvalError', |
| 16 'Float32Array', |
| 17 'Float64Array', |
| 18 'Function', |
| 19 'Int16Array', |
| 20 'Int32Array', |
| 21 'Int8Array', |
| 22 'Map', |
| 23 'Number', |
| 24 'Object', |
| 25 'Promise', |
| 26 'RangeError', |
| 27 'ReferenceError', |
| 28 'RegExp', |
| 29 'Set', |
| 30 'String', |
| 31 'Symbol', |
| 32 'SyntaxError', |
| 33 'TypeError', |
| 34 'Uint16Array', |
| 35 'Uint32Array', |
| 36 'Uint8Array', |
| 37 'Uint8ClampedArray', |
| 38 'URIError', |
| 39 'WeakMap', |
| 40 'WeakSet', |
| 41 ]); |
| 42 |
| 43 function is_web_idl_constructor(property_name) { |
| 44 if (js_builtins.has(property_name)) |
| 45 return false; |
6 var descriptor = Object.getOwnPropertyDescriptor(this, property_name); | 46 var descriptor = Object.getOwnPropertyDescriptor(this, property_name); |
7 if (descriptor.value === undefined || | 47 if (descriptor.value === undefined || |
8 descriptor.value.prototype === undefined) { | 48 descriptor.value.prototype === undefined) { |
9 return false; | 49 return false; |
10 } | 50 } |
11 return descriptor.writable && !descriptor.enumerable && | 51 return descriptor.writable && !descriptor.enumerable && |
12 descriptor.configurable; | 52 descriptor.configurable; |
13 } | 53 } |
14 | 54 |
15 var interface_names = Object.getOwnPropertyNames(this).filter(is_constructor); | 55 var interface_names = Object.getOwnPropertyNames(this).filter(is_web_idl_constru
ctor); |
16 interface_names.sort(); | 56 interface_names.sort(); |
17 interface_names.forEach(function(interface_name) { | 57 interface_names.forEach(function(interface_name) { |
18 globals.push('interface ' + interface_name); | 58 globals.push('interface ' + interface_name); |
19 var property_strings = []; | 59 var property_strings = []; |
20 var prototype = this[interface_name].prototype; | 60 var prototype = this[interface_name].prototype; |
21 Object.getOwnPropertyNames(prototype).forEach(function(property_name) { | 61 Object.getOwnPropertyNames(prototype).forEach(function(property_name) { |
22 var descriptor = Object.getOwnPropertyDescriptor( | 62 var descriptor = Object.getOwnPropertyDescriptor( |
23 prototype, property_name); | 63 prototype, property_name); |
24 if ('value' in descriptor) { | 64 if ('value' in descriptor) { |
25 var type; | 65 var type; |
26 if (typeof descriptor.value === 'function') { | 66 if (typeof descriptor.value === 'function') { |
27 type = 'method'; | 67 type = 'method'; |
28 } else { | 68 } else { |
29 type = 'attribute'; | 69 type = 'attribute'; |
30 } | 70 } |
31 property_strings.push(' ' + type + ' ' + property_name); | 71 property_strings.push(' ' + type + ' ' + property_name); |
32 } else { | 72 } else { |
33 if (descriptor.get) | 73 if (descriptor.get) |
34 property_strings.push(' getter ' + property_name); | 74 property_strings.push(' getter ' + property_name); |
35 if (descriptor.set) | 75 if (descriptor.set) |
36 property_strings.push(' setter ' + property_name); | 76 property_strings.push(' setter ' + property_name); |
37 } | 77 } |
38 }); | 78 }); |
39 globals.push.apply(globals, property_strings.sort()); | 79 globals.push.apply(globals, property_strings.sort()); |
40 }); | 80 }); |
41 | 81 |
42 self.addEventListener('message', function(event) { | 82 self.addEventListener('message', function(event) { |
43 event.ports[0].postMessage({ result: globals }); | 83 event.ports[0].postMessage({ result: globals }); |
44 }); | 84 }); |
OLD | NEW |