| OLD | NEW |
| 1 // Run all the code in a local scope. |
| 2 (function(globalObject) { |
| 3 |
| 4 // Save the list of property names of the global object before loading other scr
ipts. |
| 5 var propertyNamesInGlobal = globalObject.propertyNamesInGlobal || Object.getOwnP
ropertyNames(globalObject); |
| 6 |
| 1 if (self.importScripts) { | 7 if (self.importScripts) { |
| 2 importScripts('../../resources/js-test.js'); | 8 importScripts('../../resources/js-test.js'); |
| 3 | 9 |
| 4 if (!self.postMessage) { | 10 if (!self.postMessage) { |
| 5 // Shared worker. Make postMessage send to the newest client, which in | 11 // Shared worker. Make postMessage send to the newest client, which in |
| 6 // our tests is the only client. | 12 // our tests is the only client. |
| 7 | 13 |
| 8 // Store messages for sending until we have somewhere to send them. | 14 // Store messages for sending until we have somewhere to send them. |
| 9 self.postMessage = function(message) { | 15 self.postMessage = function(message) { |
| 10 if (typeof self.pendingMessages === "undefined") | 16 if (typeof self.pendingMessages === "undefined") |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 var jsBuiltins = new Set([ | 38 var jsBuiltins = new Set([ |
| 33 'Array', | 39 'Array', |
| 34 'ArrayBuffer', | 40 'ArrayBuffer', |
| 35 'Boolean', | 41 'Boolean', |
| 36 'Date', | 42 'Date', |
| 37 'Error', | 43 'Error', |
| 38 'EvalError', | 44 'EvalError', |
| 39 'Float32Array', | 45 'Float32Array', |
| 40 'Float64Array', | 46 'Float64Array', |
| 41 'Function', | 47 'Function', |
| 48 'Infinity', |
| 42 'Int16Array', | 49 'Int16Array', |
| 43 'Int32Array', | 50 'Int32Array', |
| 44 'Int8Array', | 51 'Int8Array', |
| 52 'Intl', |
| 53 'JSON', |
| 45 'Map', | 54 'Map', |
| 55 'Math', |
| 56 'NaN', |
| 46 'Number', | 57 'Number', |
| 47 'Object', | 58 'Object', |
| 48 'Promise', | 59 'Promise', |
| 49 'RangeError', | 60 'RangeError', |
| 50 'ReferenceError', | 61 'ReferenceError', |
| 51 'RegExp', | 62 'RegExp', |
| 52 'Set', | 63 'Set', |
| 53 'String', | 64 'String', |
| 54 'Symbol', | 65 'Symbol', |
| 55 'SyntaxError', | 66 'SyntaxError', |
| 56 'TypeError', | 67 'TypeError', |
| 68 'URIError', |
| 57 'Uint16Array', | 69 'Uint16Array', |
| 58 'Uint32Array', | 70 'Uint32Array', |
| 59 'Uint8Array', | 71 'Uint8Array', |
| 60 'Uint8ClampedArray', | 72 'Uint8ClampedArray', |
| 61 'URIError', | |
| 62 'WeakMap', | 73 'WeakMap', |
| 63 'WeakSet', | 74 'WeakSet', |
| 75 'decodeURI', |
| 76 'decodeURIComponent', |
| 77 'encodeURI', |
| 78 'encodeURIComponent', |
| 79 'escape', |
| 80 'eval', |
| 81 'isFinite', |
| 82 'isNaN', |
| 83 'parseFloat', |
| 84 'parseInt', |
| 85 'undefined', |
| 86 'unescape', |
| 64 ]); | 87 ]); |
| 65 | 88 |
| 66 function isWebIDLConstructor(propertyName) { | 89 function isWebIDLConstructor(propertyName) { |
| 67 if (jsBuiltins.has(propertyName)) | 90 if (jsBuiltins.has(propertyName)) |
| 68 return false; | 91 return false; |
| 69 var descriptor = Object.getOwnPropertyDescriptor(this, propertyName); | 92 var descriptor = Object.getOwnPropertyDescriptor(this, propertyName); |
| 70 if (descriptor.value == undefined || descriptor.value.prototype == undefined
) | 93 if (descriptor.value == undefined || descriptor.value.prototype == undefined
) |
| 71 return false; | 94 return false; |
| 72 return descriptor.writable && !descriptor.enumerable && descriptor.configura
ble; | 95 return descriptor.writable && !descriptor.enumerable && descriptor.configura
ble; |
| 73 } | 96 } |
| 74 | 97 |
| 98 function collectPropertyInfo(object, propertyName, output) { |
| 99 var descriptor = Object.getOwnPropertyDescriptor(object, propertyName); |
| 100 if ('value' in descriptor) { |
| 101 var type = typeof descriptor.value === 'function' ? 'method' : 'attribut
e'; |
| 102 output.push(' ' + type + ' ' + propertyName); |
| 103 } else { |
| 104 if (descriptor.get) |
| 105 output.push(' getter ' + propertyName); |
| 106 if (descriptor.set) |
| 107 output.push(' setter ' + propertyName); |
| 108 } |
| 109 } |
| 110 |
| 75 // FIXME: List interfaces with NoInterfaceObject specified in their IDL file. | 111 // FIXME: List interfaces with NoInterfaceObject specified in their IDL file. |
| 76 debug('[INTERFACES]') | 112 debug('[INTERFACES]'); |
| 77 var interfaceNames = Object.getOwnPropertyNames(this).filter(isWebIDLConstructor
); | 113 var interfaceNames = Object.getOwnPropertyNames(this).filter(isWebIDLConstructor
); |
| 78 interfaceNames.sort(); | 114 interfaceNames.sort(); |
| 79 interfaceNames.forEach(function(interfaceName) { | 115 interfaceNames.forEach(function(interfaceName) { |
| 80 debug('interface ' + interfaceName); | 116 debug('interface ' + interfaceName); |
| 81 var propertyStrings = []; | 117 var propertyStrings = []; |
| 82 var prototype = this[interfaceName].prototype; | 118 var prototype = this[interfaceName].prototype; |
| 83 Object.getOwnPropertyNames(prototype).forEach(function(propertyName) { | 119 Object.getOwnPropertyNames(prototype).forEach(function(propertyName) { |
| 84 var descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName
); | 120 collectPropertyInfo(prototype, propertyName, propertyStrings); |
| 85 if ('value' in descriptor) { | |
| 86 var type = typeof descriptor.value === 'function' ? 'method' : 'attr
ibute'; | |
| 87 propertyStrings.push(' ' + type + ' ' + propertyName); | |
| 88 } else { | |
| 89 if (descriptor.get) | |
| 90 propertyStrings.push(' getter ' + propertyName); | |
| 91 if (descriptor.set) | |
| 92 propertyStrings.push(' setter ' + propertyName); | |
| 93 } | |
| 94 }); | 121 }); |
| 95 propertyStrings.sort().forEach(debug); | 122 propertyStrings.sort().forEach(debug); |
| 96 }); | 123 }); |
| 97 | 124 |
| 125 debug('[GLOBAL OBJECT]'); |
| 126 var propertyStrings = []; |
| 127 var memberNames = propertyNamesInGlobal.filter(function(propertyName) { |
| 128 return !jsBuiltins.has(propertyName) && !isWebIDLConstructor(propertyName); |
| 129 }); |
| 130 memberNames.forEach(function(propertyName) { |
| 131 collectPropertyInfo(globalObject, propertyName, propertyStrings); |
| 132 }); |
| 133 propertyStrings.sort().forEach(debug); |
| 134 |
| 98 if (isWorker()) | 135 if (isWorker()) |
| 99 finishJSTest(); | 136 finishJSTest(); |
| 137 |
| 138 })(this); // Run all the code in a local scope. |
| OLD | NEW |