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

Side by Side Diff: LayoutTests/webexposed/resources/global-interface-listing.js

Issue 1220793002: Make webexposed/global-interface-listing tests skip JS builtins (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 5 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
« no previous file with comments | « LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 if (self.importScripts) { 1 if (self.importScripts) {
2 importScripts('../../resources/js-test.js'); 2 importScripts('../../resources/js-test.js');
3 3
4 if (!self.postMessage) { 4 if (!self.postMessage) {
5 // Shared worker. Make postMessage send to the newest client, which in 5 // Shared worker. Make postMessage send to the newest client, which in
6 // our tests is the only client. 6 // our tests is the only client.
7 7
8 // Store messages for sending until we have somewhere to send them. 8 // Store messages for sending until we have somewhere to send them.
9 self.postMessage = function(message) { 9 self.postMessage = function(message) {
10 if (typeof self.pendingMessages === "undefined") 10 if (typeof self.pendingMessages === "undefined")
11 self.pendingMessages = []; 11 self.pendingMessages = [];
12 self.pendingMessages.push(message); 12 self.pendingMessages.push(message);
13 }; 13 };
14 self.onconnect = function(event) { 14 self.onconnect = function(event) {
15 self.postMessage = function(message) { 15 self.postMessage = function(message) {
16 event.ports[0].postMessage(message); 16 event.ports[0].postMessage(message);
17 }; 17 };
18 // Offload any stored messages now that someone has connected to us. 18 // Offload any stored messages now that someone has connected to us.
19 if (typeof self.pendingMessages === "undefined") 19 if (typeof self.pendingMessages === "undefined")
20 return; 20 return;
21 while (self.pendingMessages.length) 21 while (self.pendingMessages.length)
22 event.ports[0].postMessage(self.pendingMessages.shift()); 22 event.ports[0].postMessage(self.pendingMessages.shift());
23 }; 23 };
24 } 24 }
25 } 25 }
26 26
27 function isConstructor(propertyName) { 27 // List of builtin JS constructors; Blink is not controlling what properties the se
28 // objects have, so exercising them in a Blink test doesn't make sense.
29 var jsBuiltins = new Set([
30 'Array',
31 'ArrayBuffer',
32 'Boolean',
33 'Date',
34 'Error',
35 'EvalError',
36 'Float32Array',
37 'Float64Array',
38 'Function',
39 'Int16Array',
40 'Int32Array',
41 'Int8Array',
42 'Map',
43 'Number',
44 'Object',
45 'Promise',
46 'RangeError',
47 'ReferenceError',
48 'RegExp',
49 'Set',
50 'String',
51 'Symbol',
52 'SyntaxError',
53 'TypeError',
54 'Uint16Array',
55 'Uint32Array',
56 'Uint8Array',
57 'Uint8ClampedArray',
58 'URIError',
59 'WeakMap',
60 'WeakSet',
61 ]);
62
63 function isWebIDLConstructor(propertyName) {
64 if (jsBuiltins.has(propertyName))
65 return false;
28 var descriptor = Object.getOwnPropertyDescriptor(this, propertyName); 66 var descriptor = Object.getOwnPropertyDescriptor(this, propertyName);
29 if (descriptor.value == undefined || descriptor.value.prototype == undefined ) 67 if (descriptor.value == undefined || descriptor.value.prototype == undefined )
30 return false; 68 return false;
31 return descriptor.writable && !descriptor.enumerable && descriptor.configura ble; 69 return descriptor.writable && !descriptor.enumerable && descriptor.configura ble;
32 } 70 }
33 71
34 // FIXME: List interfaces with NoInterfaceObject specified in their IDL file. 72 // FIXME: List interfaces with NoInterfaceObject specified in their IDL file.
35 debug('[INTERFACES]') 73 debug('[INTERFACES]')
36 var interfaceNames = Object.getOwnPropertyNames(this).filter(isConstructor); 74 var interfaceNames = Object.getOwnPropertyNames(this).filter(isWebIDLConstructor );
37 interfaceNames.sort(); 75 interfaceNames.sort();
38 interfaceNames.forEach(function(interfaceName) { 76 interfaceNames.forEach(function(interfaceName) {
39 debug('interface ' + interfaceName); 77 debug('interface ' + interfaceName);
40 var propertyStrings = []; 78 var propertyStrings = [];
41 var prototype = this[interfaceName].prototype; 79 var prototype = this[interfaceName].prototype;
42 Object.getOwnPropertyNames(prototype).forEach(function(propertyName) { 80 Object.getOwnPropertyNames(prototype).forEach(function(propertyName) {
43 var descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName ); 81 var descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName );
44 if ('value' in descriptor) { 82 if ('value' in descriptor) {
45 var type = typeof descriptor.value === 'function' ? 'method' : 'attr ibute'; 83 var type = typeof descriptor.value === 'function' ? 'method' : 'attr ibute';
46 propertyStrings.push(' ' + type + ' ' + propertyName); 84 propertyStrings.push(' ' + type + ' ' + propertyName);
47 } else { 85 } else {
48 if (descriptor.get) 86 if (descriptor.get)
49 propertyStrings.push(' getter ' + propertyName); 87 propertyStrings.push(' getter ' + propertyName);
50 if (descriptor.set) 88 if (descriptor.set)
51 propertyStrings.push(' setter ' + propertyName); 89 propertyStrings.push(' setter ' + propertyName);
52 } 90 }
53 }); 91 });
54 propertyStrings.sort().forEach(debug); 92 propertyStrings.sort().forEach(debug);
55 }); 93 });
56 94
57 if (isWorker()) 95 if (isWorker())
58 finishJSTest(); 96 finishJSTest();
OLDNEW
« no previous file with comments | « LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698