Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: LayoutTests/http/tests/serviceworker/webexposed/resources/global-interface-listing-worker.js

Issue 1289753005: ServiceWorker webexposed tests should skip JS builtins (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698