01:38:19  * cha0squit (Quit: Viva La Revoluci´┐Żn!)
02:46:53  * C-Manquit (Quit: Connection reset by beer)
04:14:50  * c4miloquit (Remote host closed the connection)
04:57:49  * [[zz]]quit (Ping timeout: 246 seconds)
05:10:55  * [[zz]]joined
07:32:01  * Vbitzquit (Quit: Computer has gone to sleep.)
07:52:35  * jeweljoined
07:55:20  * jewelquit (Remote host closed the connection)
09:08:59  * Net147joined
09:51:07  * C-Manjoined
11:21:52  * Vbitzjoined
11:21:58  * Vbitzquit (Max SendQ exceeded)
11:22:30  * Vbitzjoined
11:23:55  * C-Manquit (Ping timeout: 256 seconds)
11:24:28  * C-Manjoined
11:29:12  * bnoordhuisjoined
13:33:41  * Net147quit (Quit: HydraIRC -> http://www.hydrairc.com <- In tests, 0x09 out of 0x0A l33t h4x0rz prefer it :))
13:59:41  * c4milojoined
15:35:04  * RT|Chatzillaquit (Quit: ChatZilla 0.9.86.1 [Firefox 2.0.0.22pre/2009081014])
17:37:02  * C-Manquit (Quit: Connection reset by beer)
18:30:32  * bnoordhuisquit (Ping timeout: 256 seconds)
18:49:49  * solublejoined
19:03:52  <soluble>Can someone explain to me how exactly < operator works when evaluating this expression [1] < [2]. I'd wish to understand why it evaluates to false as per ecma specification. Here http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3. What are the results of the calls to GetValue(lref) and GetValue(rref) and why does say [] == [] fail here when it too relies on the same results?
19:04:05  <soluble>evaluates to true*
19:04:58  <soluble>s/fail here/evaluates to false
19:06:56  <soluble>the trouble is that I can't understand the spec yet :( it's overwhelming but I'm curious
19:07:01  * jamespage_joined
19:11:46  <mraleph>soluble: [] == [] evaluates to false because it reaches step 10 because none of previous step matches (Type(x) is Object and Type(y) is Object, there is no such clause)
19:12:27  <soluble>but there's If "Type(x) is the same as Type(y)"
19:13:07  <mraleph>yeah, my eyes fail me.
19:13:13  <soluble>and as for < operator, how that works? The thing that would clear all to me is really the result of GetValue(ref) on array
19:13:32  <soluble>but I have trouble understanding it, I just started reading the spec
19:13:44  <mraleph>then it returns false per 1. f that says return false when objects are not the same.
19:14:10  <mraleph>x and y refer to different objects.
19:15:59  <mraleph>GetValue(ref) returns value that reference (e.g. variable name, or expression like o.f) points to.
19:16:40  <mraleph>so in this case GetValue(lref) is precisely [1] and GetValue(rref) is [2].
19:17:00  <soluble>but where then is the lexical comparison described?
19:17:06  <soluble>for arrays
19:17:16  * jamespage_quit (Quit: Ex-Chat)
19:18:42  <soluble>lexicographical, pardon me
19:18:55  <mraleph>I don't think JavaScript arrays are compared lexicographically.
19:19:01  <soluble>it's well described for strings
19:19:28  <mraleph>both left and right sides are converted to primitive values which are then compared
19:20:02  <soluble>and the value being a number (as per default hint?) ?
19:20:36  <mraleph>ah, it might be that it gets converted to String and then strings are compared lexicographically
19:21:13  <soluble>that's what I was thinking, but then [1] == [1] should evaluate to true
19:21:19  <soluble>but it doesn't
19:21:50  <mraleph>soluble: [1] == [1] evaluated to false per 1 f in the section you linked to.
19:22:37  <soluble>but there's d)
19:22:38  <soluble>If Type(x) is String, then return true if x and y are exactly the same sequence of characters (same length and same characters in corresponding positions). Otherwise, return false.
19:22:53  <soluble>under step 1
19:23:07  <mraleph>but type of x is Object
19:24:57  <soluble>Ah, okay, I see it now ;)
19:24:59  <mraleph>< calls ToPrimitive([1], hint Number) which calls [[DefaultValue]]([1], Number) which first calls valueOf on the array (that does not return primitive value) and then does toString and returns that.
19:25:16  <soluble>Thank you very much mraleph
19:25:21  <mraleph>so [1] < [2] is the same as "1" < "2"
19:25:29  <mraleph>it is pretty obscure.
19:54:53  * Vbitzquit (Quit: Computer has gone to sleep.)
20:04:14  * jamespage_joined
20:27:00  * jamespage_quit (Quit: Ex-Chat)
20:27:23  * Vbitzjoined
20:27:26  * Vbitzquit (Max SendQ exceeded)
20:27:52  * Vbitzjoined
20:27:57  * Vbitzquit (Max SendQ exceeded)
20:28:33  * Vbitzjoined
20:41:42  * carifjoined
20:59:49  * carifquit (Ping timeout: 248 seconds)
21:30:52  <soluble>mraleph, are you still there?
21:33:02  <mraleph>yes, soluble
21:33:52  <soluble>why is the expression [0][0] evaluated to 0? where's that described?
21:34:32  <mraleph>I think you need to look at the grammar. My guess it is parsed as ([0])[0]
21:34:51  <mraleph>which would be the first element of the array, which is 0
21:35:00  <mraleph>[1][0] would be 1, I guess.
21:35:17  <soluble>yes, that's it :) thank you
21:35:34  <mraleph>you look at some really strange corner cases :-)
21:36:00  <soluble>I'm having fun :)
21:44:54  * [[zz]]quit (Read error: Connection reset by peer)
21:51:17  * carifjoined
22:01:18  * c4miloquit (Remote host closed the connection)
22:07:41  * [[zz]]joined
22:09:31  <soluble>mraleph, I just stumbled across your website, incredible - small world indeed :) I love the asm.js article and I completely agree with you
22:16:50  * RT|Chatzillajoined
22:30:47  * jonaslundquit (Read error: Connection reset by peer)
22:31:11  * jonaslundjoined
22:42:35  * c4milojoined
22:45:02  * bnoordhuisjoined
23:45:48  * C-Manjoined