We should most likely assert when we have strict violations in chrome JS.
We should *definitely* assert when we have JS errors in chrome JS.
I don't see how there should be any excuse for either of these cases.

We certainly can't assert on non-browser JS errors, but we should keep our own 
scripts clean.

----- Original Message -----
From: "chiaki ISHIKAWA" <ishik...@yk.rim.or.jp>
To: dev-platform@lists.mozilla.org
Sent: Thursday, October 2, 2014 11:59:04 AM
Subject: JavaScript (strict) Warning from FF mochitest-plain test.

Hi,

I was looking at a large number of JavaScript (strict) warnings, and
errors from the recording of |make mozmill| test run of locall-built
DEBUG BUILD of TB last several days after a refresh of C-C source tree.

The number of such has increased very much both
 - due to the seemingly stricter checks done by JS infrastructure, and
 - new carelessly written code,
I think.

But the sheer number of them overwhelmed me and I began wondering is FF
faring better?

I don't think so.

Here are the list of such errors summarized from the
log of |./mach mochitest-plain| of locally-built DEBUG BUILD of FF (from
M-C portion of C-C source tree).

The # at the beginning of each line is the frequency of the occurrences.
[I was looking at "getter only" message which is printed for more than
3K times during |make mozmill| test for TB for "Services" when checking
the health of logs from FF tests came to my mind.)

I think we need a sort of "sheriff" to look at
these warnings and file bugzilla entries accordingly from time to time:
I say this because it seems not many people look at debug build run of
test suite often (well, at least on TB side. I don't know if TB debug
run is created regularly.)

Excerpt from summary of the log : ./mach mochitest-plain

 ========================================
 JavaScript strict warning
 jquery.js and jquery-ui.js are ignored.
 ========================================

    206 JavaScript error:
file:///home/ishikawa/ff-objdir-tb3/dist/bin/components/nsHandlerService.js,
line 891: NS_ERROR_FAILURE: Component returned failure code: 0x80004005
(NS_ERROR_FAILURE) [nsIProperties.get]
     99 JavaScript strict warning: , line 0: TypeError: setting
getter-only property "PrivateBrowsingUtils"
     66 JavaScript strict warning: , line 0: TypeError: setting
getter-only property "Services"
     33 JavaScript strict warning: , line 0: TypeError: setting
getter-only property "TelemetryStopwatch"
     33 JavaScript strict warning: , line 0: TypeError: setting
getter-only property "Task"
     33 JavaScript strict warning: , line 0: TypeError: setting
getter-only property "PlacesUtils"
     33 JavaScript strict warning: , line 0: TypeError: setting
getter-only property "NewTabUtils"
     11 JavaScript strict warning:
chrome://specialpowers/content/specialpowersAPI.js, line 214:
ReferenceError: reference to undefined property
x.SpecialPowers_wrappedObject
      4 JavaScript error: resource://gre/modules/XPCOMUtils.jsm, line
110: SyntaxError: missing ; before statement
      4 JavaScript error:
http://example.com/tests/content/base/test/bug696301-script-1.js, line
3: ReferenceError: c is not defined
      4 JavaScript error: , line 0: uncaught exception: 2147500033
      3 JavaScript strict warning:
resource://specialpowers/MockFilePicker.jsm, line 92: SyntaxError: octal
literals and octal escape sequences are deprecated
      3 JavaScript strict warning:
chrome://specialpowers/content/specialpowersAPI.js, line 662:
ReferenceError: reference to undefined property wrapPrivileged(...).classes
      3 JavaScript error: , line 0: uncaught exception: Permission
denied to add http://mochi.test:8888/%sas a protocol handler
      2 JavaScript strict warning:
chrome://specialpowers/content/specialpowersAPI.js, line 665:
ReferenceError: reference to undefined property wrapPrivileged(...).results
      2 JavaScript error: resource://gre/modules/vtt.jsm, line 1261:
TypeError: self.window.VTTRegion is not a constructor
      2 JavaScript error: , line 0: uncaught exception: Permission
denied to add http://remotehost:8888/%s as a content or protocol handler
      2 JavaScript error: , line 0: uncaught exception: Permission
denied to add ftp://mochi.test:8888/%s as a content or protocol handler
      2 JavaScript error: , line 0: uncaught exception: Permission
denied to add foo://mochi.test:8888/%s as a content or protocol handler
      2 JavaScript error: , line 0: uncaught exception: 2152923148
      1 JavaScript warning: resource://gre/modules/Preferences.jsm, line
381: mutating the [[Prototype]] of an object will cause your code to run
very slowly; instead create the object with the correct initial
[[Prototype]] value using Object.create
      1 JavaScript strict warning: resource://gre/modules/Webapps.jsm,
line 539: ReferenceError: reference to undefined property
Components.classes['@mozilla.org/app-migrator;1']
      1 JavaScript strict warning: resource://gre/modules/Webapps.jsm,
line 389: ReferenceError: reference to undefined property aManifest.type
      1 JavaScript strict warning: resource://gre/modules/Webapps.jsm,
line 361: ReferenceError: reference to undefined property aResult.redirects
      1 JavaScript strict warning: resource://gre/modules/Webapps.jsm,
line 2136: ReferenceError: reference to undefined property app.appStatus
      1 JavaScript strict warning: resource://gre/modules/Webapps.jsm,
line 1683: ReferenceError: reference to undefined property aApp.appStatus
      1 JavaScript strict warning: resource://gre/modules/Webapps.jsm,
line 1087: ReferenceError: reference to undefined property msg.app
      1 JavaScript strict warning:
resource://gre/modules/FormHistory.jsm, line 639: ReferenceError:
reference to undefined property change.guid
      1 JavaScript strict warning:
resource://gre/modules/DownloadUtils.jsm, line 79: SyntaxError: applying
the 'delete' operator to an unqualified name is deprecated
      1 JavaScript strict warning:
resource://gre/modules/BrowserElementPromptService.jsm, line 617:
ReferenceError: reference to undefined property
this._browserElementChildMap[this._getOuterWindowID(...)]
      1 JavaScript strict warning: resource://gre/modules/AppsUtils.jsm,
line 757: ReferenceError: reference to undefined property
this._manifest[aProp]
      1 JavaScript strict warning:
resource:///modules/PluginContent.jsm, line 718: ReferenceError:
reference to undefined property this.content
      1 JavaScript strict warning:
resource:///modules/BrowserUITelemetry.jsm, line 196: ReferenceError:
reference to undefined property input.id
      1 JavaScript strict warning:
file:///home/ishikawa/ff-objdir-tb3/dist/bin/components/nsSearchService.js,
line 3193: ReferenceError: reference to undefined property cache.directories
      1 JavaScript strict warning:
file:///home/ishikawa/ff-objdir-tb3/dist/bin/components/nsPrompter.js,
line 213: ReferenceError: assignment to undeclared variable port
   ... [ omission ] ...

These references to undefined whatever seem to have appeared suddenly
thanks to
the stricter checking of JS infrastructure.
Obviously, some intended actions of the code were NOP.
I wonder what the program was doing with incorrect references before
(!?) Obviously, some intended actions of the code were NOP or incorrect.
Hmm...

TIA
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to