If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

TypeError in JavaScript code generated by dart2js in Firefox 31. Works in Firefox 30 and 32.

RESOLVED FIXED

Status

Tech Evangelism Graveyard
English US
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: Stefan Scholl, Unassigned)

Tracking

({regression})

Firefox 31
x86
All
regression
Dependency tree / graph

Details

(URL)

Attachments

(1 attachment)

38.35 KB, application/x-zip
Details
(Reporter)

Description

3 years ago
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0 (Beta/Release)
Build ID: 20140610163407

Steps to reproduce:

Trying to type into the input field for step 3 on https://www.dartlang.org/codelabs/darrrt/

("Step" as in "Step of the tutorial on the mentioned page.")


Actual results:

Nothing appears in the badge. Error on the console:
TypeError: J.getInterceptor$x(...).get$target is not a function piratebadge.dart.js:5650

--

Source: https://www.dartlang.org/codelabs/darrrt/examples/3-buttonbadge/piratebadge.dart.js


Expected results:

Entered text should appear in the badge. Works for step 2.

Source: https://www.dartlang.org/codelabs/darrrt/examples/2-inputnamebadge/piratebadge.dart.js
(Reporter)

Updated

3 years ago
(Reporter)

Comment 1

3 years ago
Reported for Dart, but seems to be a Firefox/JavaScript bug: https://code.google.com/p/dart/issues/detail?id=19489

Works in Firefox 30, Firefox 30 Mobile, Firefox 32 AURORA, Google Chrome, Safari, …

Only Firefox 31.0 Beta in the current version as of 2014-06-17 has this problem.
We should bisect this...

Comment 3

3 years ago
Created attachment 8442197 [details]
reduced zip

Comment 4

3 years ago
I can reproduce in Firefox Beta31b1, Aurora32.0a2 and Nightly33.0a1.

Regression window(m-i)
Good:
https://hg.mozilla.org/integration/mozilla-inbound/rev/7699524771b1
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 ID:20140410000846
Bad;
https://hg.mozilla.org/integration/mozilla-inbound/rev/8a2a1efffcd5
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 ID:20140410001244
Pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=7699524771b1&tochange=8a2a1efffcd5

Regressed by:  Bug 993253 , Bug 993234
Blocks: 993253, 993234
Status: UNCONFIRMED → NEW
status-firefox30: --- → unaffected
status-firefox31: --- → affected
status-firefox32: --- → affected
status-firefox33: --- → affected
status-firefox-esr24: --- → unaffected
tracking-firefox31: --- → ?
tracking-firefox32: --- → ?
tracking-firefox33: --- → ?
Component: JavaScript Engine → DOM: Events
Ever confirmed: true
Keywords: regression
Thanks Alice! :)

Comment 6

3 years ago
Sounds like a web site bug, but perhaps there is something in D3E which isn't
fully backwards compatible?

Masayuki, could you take a look at this?
Flags: needinfo?(masayuki)
This is a bug of the generated (?) script.

> 5348: UIEvent: {"": "Event;", "%": "CompositionEvent|FocusEvent|KeyboardEvent|SVGZoomEvent|TextEvent|TouchEvent;UIEvent"},

This line looks like that it defines the subclasses of UIEvent. However, of course, this doesn't include InputEvent.

If I change this line as:

> UIEvent: {"": "Event;", "%": "CompositionEvent|FocusEvent|KeyboardEvent|SVGZoomEvent|TextEvent|TouchEvent|InputEvent;UIEvent"},

Then, the testcase works.

This should be invalid. Although, there might be a way to fix this on Gecko side or D3E side.
Flags: needinfo?(masayuki) → needinfo?(bugs)
I still don't understand well, looks like that the code maps the interfaces with their static database. So, when browser implements new interface, it perfectly becomes unknown type object. Therefore, I believe that this code is too delicate for living in current web. This should create the interface map from objects dynamically.

Comment 9

3 years ago
I pinged irc://freenode/dart about this issue.
Masayuki, could you tell about this to Gary Kacmarcik?
Flags: needinfo?(bugs)
Ah, sounds like dart team is fixing this
https://code.google.com/p/dart/issues/detail?id=19489#c7
Not tracking. Seems to be a dart issue.
tracking-firefox31: ? → -
tracking-firefox32: ? → -
tracking-firefox33: ? → -

Comment 12

3 years ago
Is this INVALID then?

(In reply to Olli Pettay [:smaug] from comment #9)
> Masayuki, could you tell about this to Gary Kacmarcik?

(ni? just to make sure this reaches you)
Flags: needinfo?(masayuki)
I asked in the dart bug about any news on fixing it.
But this looks like a evang bug.
I sent this issue to D3E WG members. Anyway, I think that dart2js should get event prototype name directly (window.InputEvent returns non-null value on Gecko).
Flags: needinfo?(masayuki)
Looks like this was fixed by dart2js.
https://code.google.com/p/dart/issues/detail?id=19489#c17

Marking this as INVA? or moving to tech evangelism and marking as FIXED?

Comment 16

3 years ago
I'll just go ahead here …
Assignee: nobody → english-us
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Component: DOM: Events → English US
Product: Core → Tech Evangelism
Resolution: --- → FIXED
Version: 31 Branch → Firefox 31
Product: Tech Evangelism → Tech Evangelism Graveyard
You need to log in before you can comment on or make changes to this bug.