mozilla :: #jsapi

18 Apr 2017
00:47gandalfshu: need someone from the seamonkey team to confirm that I can update DefaultLocale in JS engine on fly - bug 1356066. Any chance you'd be willing to do that?
00:47firebothttps://bugzil.la/1356066 ASSIGNED, gandalf@aviary.pl JS_SetDefaultLocale should be updated on intl:app-locales-changed
00:48shuwhat
00:49shuto do what, talk to seamonkey people?
00:50gandalfto review this patch from the seamonkey side
00:53shugandalf: i don't know a thing about seamonkey
00:53shugandalf: how would i review it from the seamonkey side?
00:54gandalfI thought you know everything about seamonkey!
00:54gandalfyour phonebook entry states "JS engine in general"
00:54shugandalf: what
00:54shugandalf: isn't seamonkey that weird suite of apps
00:55gandalfspidermonkey! :D
00:55gandalfdamn me
00:55gandalflol
00:55shugandalf: ooh, sure i can review then, r? me
00:55gandalfI need coffee :)
00:55gandalfthanks!
02:52shuis inbound open
02:52mrgigglesshu: mozilla-inbound: open
03:02philorshould inbound be open?
03:10philorsigh, more test262 bustage when 55 goes to beta, I never should have set the precedent of fixing one of them
03:10* philor wonders what an async-generator is, when it's not disabled by release_or_beta
03:12tillshu: ping
03:13tillshu: what's the state of proxy optimizations, and what're the plans for them? In particular, will we ever get to a state where if you only have a set hook, every other operation on the proxy will be roughly as fast as for normal objects?
03:13tillshu: or at least not orders of magnitude slower
03:22bztill: what problem are you trying to solve?
03:22bztill: or put another way, what's this proxy with only a set hook?
03:22tillbz: in this case, potentially DOM array-likes
03:23* bz is keenly interested in proxy optimizations, but isn't aware of proxies we have that just have set hooks
03:23bztill: Those have get hooks too, right?
03:23tillbz: I'm at the CSS WG f2f, and performance concerns came up as a reason to not have some collection be a proxy, but be an actual Array subclass
03:23bztill: 1) bunk
03:24bztill: 2) We should totally have array subclasses definable via IDL
03:24tillbz: I don't disagree on 2), for sure
03:24bztill: "bunk" in the sense that I think I know what collection is being talked about here and I just don't see it being that big a deal in this case
03:25bztill: Were any actual numbers presented?
03:25tillbz: the specific case was https://drafts.css-houdini.org/css-typed-om/#transformvalue-objects
03:25tillbz: no
03:25bzmmhm
03:26bzWere any specific use cases presented?
03:28shutill: i don't think generic proxies are very optimized?
03:28shutill: there are DOM proxy optimizations thuogh
03:29tillbz: probably best to just post the presentation and discussion https://docs.google.com/presentation/d/1pXoJ4vqRfjww7xJ8DYTYk8LBu0kGyGyg0yZm88w8xBw/edit#slide=id.p
03:29jackis it possible that spidermonkey proxies are better for this than v8 ones?
03:29jackit is google people who were objecting
03:29bzI just timed
03:29tillshu: I guess I'm mostly asking about what we can reasonably expect
03:29bza DOM list get is about 30-40ns on my Mac laptop
03:29bzin both Firefox and Chrome
03:29tillshu: assuming more optimizations happen
03:30tillbz, shu: discussion https://github.com/w3c/css-houdini-drafts/issues/239#issuecomment-294662121
03:30crowbotIssue #239: [css-typed-om]: There's no nice way to represent CSSUnparsedValue as a "list-plus" style object. - https://github.com/w3c/css-houdini-drafts/issues/239
03:30bzSo fwiw, it would not be insane to have something where the return value here is an Array subclass
03:31bzAs long as we can all agree how the extra properties (is2D, matrix) should behave in that case
03:31bzand how to spec it
03:32bzIt wouldn't be that hard to spec it, actually
03:32tillright
03:32bzAs long as you were willing to have your is2D getter be kinda slow
03:33bz(in that it would have to walk the entire list and something)
03:33bz.matrix already always returns a new matrix
03:33tillISTM that an array-like can actually be optimized better than an array subclass
03:33bzwhich is so busted, btw
03:33bztill: It depends on what you're doing with it
03:33tillbecause you can invalidate on a set in the list
03:33* bz files bug about "matrix" thing
03:34bzWell, as specced right now there is no "set" operation
03:34bzand hence no invalidation needed
03:34bzIt's an immutable list
03:34tillright. In that case an Array subclass is clearly the thing to do
03:34bzYou could try to do that to an array, but then it would fall off all the fast paths
03:34tillbut see the discussion, the concern was about validation of set operations
03:34bz(reconfigure all the indexed bits and length as readonly and nonconfigurable)
03:35tillyeah
03:35* bz has read this discussion before, fwiw
03:35bzTab wants semantics different from Array but performance like Array
03:35bzTough
03:37bzAnyway
03:37tillright, but it does seem like at least in theory you'd only need to have a [[Set]] hook, and be able to optimize everything else
03:37bzI've had a hard time getting Tab to explain which of his mutually conflicting priorities are actually important to him
03:37bztill: no, you need a [[DefineProperty]] hook...
03:37tilloh, true
03:37bztill: if you want to control writes
03:38bztill: But yes, in theory you could have something that acts just normal unless you try to [[DefineProperty]]
03:38* till tries to think of what else the Romans have ever done for us
03:38bzheh
03:39bzThe other thing that would be cool is if we could do a proxy for only indices, not names... ;)
03:39bzor something
03:39tillbz: fwiw, I'm pretty sure the overhead of proxy operations for this particular collection would be entirely dwarfed by actually using the collection for anything useful
03:39tillyes, that would be nice
03:39bztill: yes, I'm pretty sure of that too.
03:40bztill: which is why I am 100% unsympathetic to the expressed performance concerns...
03:40* till nods
03:42bzfwiw, if people really want to try defining this as an array subclass, I would be happy to give that a shot
03:42bzIn terms of creating Gecko infrastructure for it
03:43bz(shouldn't take too much, actually, esp if I can write self-hosting stuff in Gecko code, which I think I can now)
03:46tillbz: cool, I'll mention that
03:46bzAnyway, I should sleep
03:46tillbz: I'll have to land bug 1224722, but I should really do that regardless
03:46firebothttps://bugzil.la/1224722 ASSIGNED, till@tillschneidereit.net Enable executing multiple embedding-provided inputs as self-hosted JS during runtime startup
03:46bz_sleeptill: Ah, I didn't realize that hadn't landed yet!
03:47bz_sleepIt had patches. And reviews. ;)
03:47bz_sleepOh, it got backed out, I see....
03:47tillbz_sleep: there wasn't a real use case so far, so I deprioritized it after it bounced
03:47bz_sleepRight
03:47bz_sleepWell, this would be a use case
03:47tillbz_sleep: but I want to get back to it for other reasons anyway
03:47tillyes
03:47bz_sleepBecause if people want performance, getting array bits using JS_GetElement is ... yeah
03:48tilltrue :(
03:49tillbz_sleep: anyway, thanks for the discussion, and have a good night
08:18tilllth: "it should get reverted like any other requirement which failed the consensus process" - I wonder if that applies to tail calls, too
08:18lthtill: hah, a good one!
08:18tillalso, lth++
09:14shuyes that comment was both biting and funny
09:19anbashu: I actually have a patch to reduce the FindReservedWord calls, I can attach it to patch bug 1351913 if you're okay with that.
09:19firebothttps://bugzil.la/1351913 NEW, nobody@mozilla.org Optimize ReservedWord searching
09:19shuanba: that would be lovely
09:19shuanba: did it have any impact on performance?
09:19anbashu: great!
09:19shuanba: i was disappointed that my efforts to do peeking on reservedwords not only didn't help, but made it slower
09:20anbashu: well, it depends on the input. Let's say there are 2mio "var target" identifiers in strict-mode, the performance improves by 15% for me when calling syntaxParse.
09:20shuanba: 2mio?
09:20anbashu: ("target" is a parsed as contextual keyword, so we find a match in FindReservedWord)
09:21shuanba: oh, 2mil
09:21anbashu: I increased the numbers to get a reasonable time spent parsing
09:22anbashu: yes, millions (different abbreviation in German :-)
09:22shuanba: looking forward to reading the patch; heading to bed now
09:23anbashu: Have a good night!
11:56Yoricstandups: Giving up on attempting to parse several times in a row for benchmarking purposes.
11:56standupsOk, submitted #44888 for https://www.standu.ps/user/Yoric/
12:36Yoricstandups: Strike that, thanks to nbp.
12:36standupsOk, submitted #44892 for https://www.standu.ps/user/Yoric/
14:03h4writerbbouvier: ping
14:19bbouvierh4writer: pong
17:15erahmjimb: can you respond to the ni? in that debugger prclist bug?
17:16jimberahm: Yes, I'm sorry. What's the bug number?
17:17jimberahm: bug 935809?
17:17erahmjimb: bug 935809
17:17firebothttps://bugzil.la/935809 NEW, nobody@mozilla.org Kill JSCList usage in the JS debugger
17:17jimbk
17:18erahmjimb: my thought is we need bug 1277725, but maybe you have a less drastic idea
17:18firebothttps://bugzil.la/1277725 ASSIGNED, erahm@mozilla.com Implement a linked list primitive supporting singly linked lists and flexible link storage
17:18jimberahm: Thanks very much for all your work explaining things in that bug!
17:19erahmjimb: Yeah I felt bad marking it good first bug after that :(
17:26jorendorffbz: changing how compartments work does *not* let us remove any ReparentWrapper complexity, because document.domain means we can still have cross-compartment reparenting. right?
17:33jorendorff...maybe document.open(), too, I can't tell by looking only at this code
17:37bzjorendorff: document.open shouldn't result in anything cross-compartment
17:38bzjorendorff: but adoption can still do cross-compartment reparenting, yes...
17:38jorendorffThanks.
17:41jorendorffbholley: ping
17:42djvjnaveed: ping
17:43naveeddjvj: pong
17:44djvjnaveed: PM
17:48djvjshu: ping
17:49jorendorffThis change will make a bunch of code "always same-compartment except if document.domain" that today is often cross-compartment
17:49jorendorffThat's a little scary.
17:50ptomato-Mpursuant to our discussion of release tarballs yesterday, I got a question from one of the Ubuntu maintainers
17:50ptomato-Mhe repackaged a tarball of spidermonkey 38 from the firefox esr38.8.0 sources: https://git.launchpad.net/~jbicha/ubuntu/+source/mozjs38/
17:51ptomato-MI was wondering if it could find an official home on the mozilla ftp eventually
17:52ptomato-Mit's important to Ubuntu because they are switching to GNOME in their next release, which means they will use GNOME Shell, which uses GJS, which uses SM ESR38, which everybody packages from the one standalone tarball of 38.2.1 :-)
17:53ptomato-Mbut their security team are now on the hook for security updates
17:53bholleyjorendorff: what's up
17:53ptomato-Mand for the rest of us it would be good to get the latest ESR releases as well
17:54ptomato-Mof course, I hope this problem will go away in a few months, when I can get GNOME onto ESR52
17:54jorendorff-> PM
17:57erahmWaldo: any chance you could take a look at bug 1277725
17:57firebothttps://bugzil.la/1277725 ASSIGNED, erahm@mozilla.com Implement a linked list primitive supporting singly linked lists and flexible link storage
17:57Waldoum, possibly
17:57erahmWaldo: or can you redirect?
17:58Waldoone or the other
17:58erahmWaldo: you good w/ froydnj r+'ing it?
17:58WaldoI want to at least skim it
17:58Waldogimme a sec, in the middle of something
17:58erahmWaldo: k, I'll ping you later
18:00bzWhat's a good header in which to place a struct I want to share between Promise.cpp and Debugger.cpp ?
18:01bzSpecifically, a struct that can be used to report an exception?
18:02djvjYoric: ping
18:05shudjvj: about to walk to work, pong in a bit
18:15Waldobz: vm/ErrorReporting.h is probably the place these days
18:18bzWaldo: Thanks!
18:18Waldo|pro-search-and-replacer\m/
18:19Waldo|pro-search-and-replacerthat header/corresponding .cpp need more stuff moved into them, but it hasn't been incidental to anything yet
18:20bzOh, this one is very new
18:20* bz pulls so he will have this header
18:21bzWaldo|pro-search-and-replacer: Would you prefer an explicit global argument, or it being ambient via the JSContext?
18:22Waldo|pro-search-and-replacerbz: eibti usually, but that instinct isn't a hard-and-fast rule, of course
18:23bzGreat
18:28Yoricdjvj: Pong in ~20 minutes.
18:34bzWaldo: Are you the right reviewer for this, btw?
18:36jorendorffbz: good news, I think. chatting with bobby holley it looks like Location doesn't have to be a proxy after all, because the security checks that were spec'd are what gecko already does
18:37jorendorffbz: i was worried about situations where multiple same-compartment globals might get access to some Location object that should be observably different somehow... but I now can't think of a case where this actually happens
18:37jorendorffanyway -- afk, but will read scrollback, in case you know a counterexample
18:39shudjvj: pong
18:40djvjshu: see PM
18:44bzjorendorff: um
18:45bzjorendorff: let me check something
18:45jimberahm: Okay, I replied in bug 935809. Thanks for the ping.
18:45firebothttps://bugzil.la/935809 NEW, nobody@mozilla.org Kill JSCList usage in the JS debugger
18:46bzjorendorff: So how would we implement https://html.spec.whatwg.org/multipage/browsers.html#location-getprototypeof ?
18:46bzjorendorff: as a simple example
18:46erahmjimb: ty
18:46bzjorendorff: In a testcase where we have two same-origin pages, then one of them sets document.domain and then pokes the other's location?
18:48shuWaldo|pro-search-and-replacer: what bug are you working in for the lexer
18:49shuWaldo|pro-search-and-replacer: can you have them block on bug 1345703
18:49firebothttps://bugzil.la/1345703 NEW, nobody@mozilla.org [meta] Byte stream-specialized tokenizer
19:16Waldo|pro-search-and-replacershu: just bug 1351107
19:16firebothttps://bugzil.la/1351107 REOPENED, jwalden+bmo@mit.edu Make TokenStream parse both single-byte (whichever of Latin-1/UTF-8 is simpler, for a first pass) an
19:21bzWaldo|pro-search-and-replacer: you never said no, so that means yes, right?
19:22Waldo|pro-search-and-replacerbz: um, sure, or I'll punt it quickly
19:22bzWaldo|pro-search-and-replacer: Works for me
19:22bzWaldo|pro-search-and-replacer: Patches are up in https://bugzilla.mozilla.org/show_bug.cgi?id=1306200
19:22firebotBug 1306200 ASSIGNED, bzbarsky@mit.edu Promise code should log original exception when it sanitizes exceptions
19:25jorendorffbz: Back. I see. I've been taking "same-origin" to mean that that security check would pass, but apparently not.
19:25jorendorffYes, that is a counterexample then
19:26bzjorendorff: right, that security check is "same origin-domain"...
19:26bzjorendorff: Sorry. :(
19:30jorendorffbz: i am meeting with bholley about this right now in my vidyo room - can you join us?
19:34Waldo|pro-search-and-replaceruintptr_t tsAddr = uintptr_t(ts); uintptr_t parserAddr = tsAddr - offsetof(Parser, tokenStream); uintptr_t anyCharsAddr parserAddr + offsetof(Parser, anyChars); return *reinterpret_cast<TokenStreamAnyChars*>(anyCharsAddr);
19:38* Waldo|pro-search-and-replacer is increasingly skeptical that TokenStream and Parser should be truly independent beasts
19:39bzjorendorff: sorry, yes
19:39Yoricdjvj: pong
19:40djvjYoric: thanks for getting back. Was just gonna ping you about some stuff Vladan asked me about, but he said he already pinged you about it directly.
19:40djvjYoric: namely about size of binary ast format
19:40djvjand gzipped size as compared to gzipped source
19:40Yoricdjvj: Ah, yeah, I just hacked together a script to compare file sizes.
19:40evilpiewow those flights from SFO are horrible
19:41djvjYoric: but I&#39;m curious too, what&#39;s the comparison like?
19:41bzjorendorff: http://searchfox.org/mozilla-central/source/testing/web-platform/tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
19:41Yoricdjvj: Without run-length encoding or any attempt to optimize yet, but also without regexps or any specific header for functions: https://pastebin.mozilla.org/9019367
19:42YoricI&#39;ll try and make this a bit more readable.
19:42YoricThat&#39;s from the Facebook files.
19:43shuYoric: is this info put in a bug somewhere?
19:43shuYoric: it should if not
19:43YoricGive me a sec, I&#39;m computing it real-time :)
19:44shuYoric: related question is what bug is this happening in?
19:44djvjwell those numbers aren&#39;n that encouraging..
19:45djvjI suspect a constant name table + converting all names to table offsets would be helpful with this. Cleanly splits out the text and binary parts.. gzip would probably do a better job.
19:49Yoricdjvj: Slightly more readable: https://pastebin.mozilla.org/9019368
19:50Yoricshu: bug 1349917
19:50firebothttps://bugzil.la/1349917 NEW, dteller@mozilla.com Experiment with a binary AST format
19:50Yoricdjvj: Yes, me too.
19:50shui wish the BMO dashboard thing let me pin bugs
19:53YoricNote that to reach these numbers, I removed the fat debugging headers/footers that are currently present in my patch, but everything else is unoptimized, so all numbers are 32/64 bits, even when stuff would trivially fit in 8 bits.
19:53YoricSo this could probably be reduced quite a bit by fine-tuning the format itself.
19:54YoricBut yeah, I think that a table of names would be useful.
19:59jawsdo we run Kraken through the browser on AWFY? do we do the same for other browsers?
19:59jawshave we looked at running it in a chromeless window?
20:00Yoricshu: djvj: Ok, attached all the statistics I have atm to the bug.
20:04ehoogeveenjaws: I don&#39;t know about the last question, but https://arewefastyet.com/#machine=17 and https://arewefastyet.com/#machine=35 run on the browser
20:05jawsehoogeveen: right now Kraken shows a slowdown if we make a change to how tabs are rendered in the browser. to me that seems like a code smell
20:05jawsehoogeveen: that is why i&#39;m asking about Kraken. i&#39;d like to get it to run outside of the normal browser and more directly on spidermonkey
20:05ehoogeveenjaws: I see - the other machines do run it in the shell
20:06jawsehoogeveen: yeah, this is bad because it means anything that spidermonkey makes faster may not be as noticeable since other machinery may be slow
20:06jawsand kraken isn&#39;t representative of normal browsing behavior anyways, so it doesn&#39;t make much sense to me to run it through the browser
20:09ehoogeveenjaws: We mostly use the shell numbers since they&#39;re more stable. The browser numbers are mostly to make sure nothing is badly wrong, but I don&#39;t think anyone has compared them to the shell numbers in a while
20:09jawsehoogeveen: the browser numbers are used on talos i think
20:09jawsi&#39;m only concerned with talos :)
20:10jawsright now kraken is one of the major reasons that we can&#39;t use a new tab loading indicator
20:10jandemit does make sense to run it in the browser, as that&#39;s the environment content JS runs in - we don&#39;t want it to be fast in the shell and slow in the browser
20:10jawsyeah i get that
20:10jandemhave we done profiling to figure out why that regresses kraken?
20:11jawsi haven&#39;t run the profiler against it, but we believe that it is due to many network requests that are triggering the loading indicator to appear and disappear very quickly
20:11ehoogeveenTalos is its own separate thing, but if you want shell numbers to compare against in Talos maybe you can share code with AWFY
20:12jandemit does seem like something that could affect (poorly written) websites?
20:13bznetwork requests shouldn&#39;t cause anything to appear/disappear unless they&#39;re navigations....
20:13* bz would love to see profiles here
20:13anbagandalf: ping
20:14gandalfanba: pong
20:14jandemjaws: i&#39;m happy to help investigate btw, or reduce it to a smaller testcase
20:14jawsjandem: okay thanks, i&#39;ll ping you when i get around to it
20:14anbagandalf: Hi, I&#39;ve got a question about the ICU59 update. Do you know who can check for me if the Unicode updates in ICU59 need to be coordinated with other parts of Gecko?
20:15gandalfyou mean, except of Waldo?
20:15jawsehoogeveen / jandem: i may need to ask you how to run kraken. if you have a link you can point me to that would be great
20:16anbagandalf: I&#39;m not sure Waldo|pro-search-and-replacer knows about the other Unicode data files in Gecko
20:16gandalfanba: ok, you want to let :m_kato and :jfkthame know
20:16Waldo|pro-search-and-replacernot particularly
20:16gandalfbut you don&#39;t need to block on them
20:16Waldo|pro-search-and-replacerthey would be the ones, yes
20:16gandalfm_kato is the intl module owner
20:16gandalfand jfkthame is a peer
20:16ehoogeveenjaws: h4writer would be your best bet if you run into trouble, the AWFY repo is here: https://github.com/h4writer/arewefastyet/
20:17Waldo|pro-search-and-replacergandalf: well, we got reamed out for updating ICU separate from revving Gecko&#39;s Intl stuff last time around, because it resulted in a Unicode version number disagreement
20:17jandemjaws: https://krakenbenchmark.mozilla.org/ - Talos may use a different harness but can&#39;t hurt to check the official version first
20:17Waldo|pro-search-and-replacergandalf: so coordination is probably a prerequisite now
20:17gandalfok
20:17gandalfI know jfkthame can&#39;t wait for us to update
20:17ehoogeveenjaws: (I didn&#39;t have much luck running Kraken locally, but that may have been a Windows thing)
20:17anbagandalf: The last ICU update caused some issues because Gecko uses own and ICU Unicode data. So when I updated to ICU 58 with Unicode 9, some problems arose.
20:17djvjso as far as I can tell, all of our current GC &quot;Scheduling&quot; logic revolves around two dozen or static variables inside nsJSEnvironment.cpp, which include various timers which turn on and off, and a bunch of different methods that all touch/read this state directly
20:18gandalfok, I get it. this time ICU doesn&#39;t update Unicode so it should be smoother
20:18ehoogeveenjaws: Oh, but for running it in the browser the official website should work
20:18djvjmccr8: ^-- correct?
20:19anbagandalf: Not quite, they update some Unicode related stuff (bidi data files and segmentation data files - http://site.icu-project.org/download/59)
20:19h4writerjaws: we run it in browser and in shells (depends on the machine, you can select one at the left)
20:19mccr8djvj: well, for the browser. The JS engine has its own reasons it runs a GC
20:19gandalfanba: NI :m_kato and :jfkthame - they&#39;re responding within 24h usually
20:19djvjyeah, just the browser end for now.
20:19jawsehoogeveen: okay, good to know there&#39;s more Windows people out there like us :)
20:19anbagandalf: Okay, great. I&#39;ll NI them.
20:19jawsh4writer: thanks
20:19mccr8djvj: (also that&#39;s just for the main thread)
20:19gandalfthanks! :)
20:19djvjmccr8: not even thinkin about workers ATM
20:19mccr8DOM workers do something even sillier, like they just run it all the time if the worker did anything, or something.
20:20mccr8no IGC or ICC on workers
20:20djvjlet&#39;s skin that cat when we get it. main thread is main problem right now.
20:20ehoogeveenjaws: It&#39;s a trial sometimes, but mostly my needs are pretty simple ;)
20:20mccr8djvj: yeah part of the reason worker stuff is as basic as it is is that nobody has ever complained about the GC or CC on workers
20:23djvjmccr8: tell me if this makes sense. My starting point is to have a basic state machine that describes the current GC mode.
20:23djvjwhich will be one of: NoGC, BetweenGCSlice, or BetweenCCSlice
20:23mccr8djvj: yeah that&#39;s a good idea. smaug started implementing something like that. You should ask him for the bug number.
20:23jandemjaws: might be good to check sunspider as well, roughly the same harness but it runs way faster, so the slowdown might be bigger and easier to analyze
20:23jawsthanks!
20:24mccr8I think I r-&#39;d it because he was trying to define some language for specifying state machines or something that seemed overengineered...
20:24djvjmccr8: and maybe some extras like AfterCCSlices, AfterGCSlices, PreGCSlices, PreCCSlices
20:24djvjto capture the state where we either have prep or finalization work to do
20:24mccr8djvj: yeah. there&#39;s very little &quot;parallelism&quot; in the timers. Maybe just like the full GC timer and compacting timer.
20:25djvjand depending on if we can split up collection of various tables into incremental bits, some state for when we&#39;re in between those too
20:25mccr8djvj: bug 1168990 is smaug&#39;s bug. It might be worth at least reading over things.
20:25firebothttps://bugzil.la/1168990 NEW, bugs@pettay.fi Scheduler for slow asynchronous tasks
20:25djvjmccr8: thanks,taking a look.
20:25mccr8Probably easier to understand what is going on from reading that patch than digging around through the million timers.
20:25smaugold stuff
20:26smaugsome timer usage has changed
20:26smaugor at least CC is triggered after paint etc.
20:29jzkWhat is really the best way to make java-style classes in JS/ES6 -- because the class syntax seems to require binding members to this in the constructor -- doesn&#39;t that defeat the purpose of the syntax?
20:29jzkI hope i&#39;m just doing it wrong
20:31djvjjzk: by &quot;members&quot; do you mean instance fields requireing &quot;this.fieldName = ...&quot; in constructor?
20:31jzkwell if i define a es6-shorthand member function foo() it seems that in the constructor i need this.foo.bind(this)?
20:43anbaAre there plans to update the UsedNameTracker to better work with arrow function parameters? So we avoid marking names as used when the name is actually an arrow parameter?
20:45evilpiejzk: depends on how you call foo right?
21:10jimbSo, we&#39;re back to multiple JSContext per JSRuntime, right?
21:14mrgigglesthe mozilla-inbound tree is now closed (bustage from bug 1357549)
21:14firebothttps://bugzil.la/1357549 NEW, jmuizelaar@mozilla.com Remove unused includes
21:15evilpieso I want to use a method defined in JSString in IsDefinitelyIndex defined in jsnum.h
21:15evilpieshould I just include vm/String.h ?
21:20mrgigglesthe mozilla-inbound tree is now open
22:00vladanYoric & djvj: i averaged the numbers Yoric posted, it&#39;s a 90% size regression currently (after both formats are gzipped), hopefully that&#39;s fixable with your guys ideas :)
22:01vladani.e 1.90x
22:06shuvladan: yeah, we believe so
22:07shuvladan: the size numbers are very rough with a lot of bloat
22:09jbichahi, I&#39;m building mozjs38 on Ubuntu (for gnome-shell) and 3 tests fail on the ppc64el, arm64 and s390x architectures (all 64-bit)
22:09evilpiethose are not architectures we test
22:09jbichajs/src/tests/js1_5/Regress/regress-422348.js skips the test if run on amd64 but how should we handle this for the other architectures
22:10evilpieand this is not a secure or updated version of spidermonkey
22:10jbichayes, yes, I know it&#39;s not a not supported version of spidermonkey, GNOME will be switching to mozjs52 probably within a few months
22:11jbichabut the test is basically the same in the current code, I checked before I posted here
22:11evilpiejbicha: do you just want to disable that test?
22:12araihow do they fail?
22:12evilpie/ |reftest| skip ?
22:12jbichaI&#39;d like to fix this test upstream instead of distro-patching it :)
22:12jbichahttps://launchpadlibrarian.net/316147204/buildlog_ubuntu-zesty-arm64.mozjs38_38.2.1~rc0-0ubuntu6_BUILDING.txt.gz
22:12jbichasearch for UNEXPECTED-FAIL
22:12evilpiethis is not a real error though
22:12evilpiethis is trying to allocate a huge chunk of memory and you oom
22:13arai&quot;allocation size overflow&quot; vs &quot;out of memory&quot;
22:13araion all
22:13evilpieyeah don&#39;t think this is a big deal
22:13jbichashould we just remove the tests if they aren&#39;t useful?
22:14araiwe should test them to verify they don&#39;t crash
22:14araiperhaps we could allow &quot;out of memory&quot; as well
22:14evilpieyes that seems like a good solution
22:14arai(haven&#39;t checked where the oom is thrown tho
22:15evilpieas the line says, this just hangs on x64
22:15araioh
22:17araijbicha: can you figure out where the oom happens?
22:18araiif it happens in correct path, modifying the test to allow oom should fix the issue
22:18jbichaif you give me a patch, I can run another mozjs38 build on those architectures in an Ubuntu PPA
22:18araipatch for the test fix?
22:19jbichaI
22:19jbicha&#39;m not really a JavaScript programmer so I don&#39;t know to figure out where the oom happens
22:21arairunning single test on debugger, and setting a breakpoint on maybe js::ReportOutOfMemory or somewhere
22:21araiI guess --debug option works on 38 as well
22:22jbichaI only have an amd64 machine, but I can build packages for other architectures using the PPAs
22:22arai`./jstests.py --debug PATH_TO_JS_SHELL js1_5/Regress/regress-422348.js` in js/src/tests
22:23jbicharight now, it&#39;s just running make -k check-jstests
22:26jbichahttps://bugzilla.mozilla.org/561354
22:28araithat&#39;s different thing
22:28araias long as it throws some error without hitting timeout, we can test it
22:30jbichacan we change it to allow &quot;out of memory&quot; too? that was one of the first things I thought of, but I didn&#39;t know how to implement that
22:33araiyeah, we can
22:35jbichado you want me to file a bug or something?
22:54araithat would be nice :)
22:55araiif you can provide the back trace of js::ReportOutOfMemory for the test failure, that would be great
23:06jbichahttps://bugzilla.mozilla.org/1357593
23:40shumrbkap: ping
23:40mrbkapshu: pong
23:40shumrbkap: when can an nsIObserver&#39;s Observe method be called?
23:40shumrbkap: does it interrupt arbitrary JS execution?
23:41shu(or cycle collection)
23:41mrbkapshu: it can be called whenever we call NotifyObservers.
23:41mrbkapshu: during cycle collection would be surprising but during JS execution seems reasonable.
23:42shumrbkap: okay thanks
19 Apr 2017
No messages
   
Last message: 69 days and 8 hours ago