kangax (Juriy Zaytsev)

Name
Juriy Zaytsev
Email
Website/Blog
http://thinkweb2.com/projects/prototype/
Company
BitSonnet
Location
New York
Member Since
Feb 18, 2008 (about 1 year)

Following 15 githubbers and watching 67 repositories view all →

Public Repositories (21)

  • sputniktests-webrunner

    sputniktests web runner

    legend

    Last updated Mon Nov 09 08:46:29 -0800 2009

  • nfe

    "Named function expressions demystified" article

    legend

    Last updated Sun Nov 01 22:56:03 -0800 2009

  • js-checker

    ECMAScript/DOM conformance tests

    legend

    Last updated Sat Oct 31 09:45:13 -0700 2009

  • cft

    Common Feature Tests

    legend

    Last updated Thu Oct 08 08:08:22 -0700 2009

  • iseventsupported

    A function for analyzing event support in browsers (using feature detection)

    legend

    Last updated Sat Sep 12 20:33:53 -0700 2009

  • safarify

    Bookmarklet to display safari version numbers next to webkit build numbers in GA

    legend

    Last updated Wed Sep 09 09:21:38 -0700 2009

  • domlint

    Test suite against HTML/DOM conflicts

    legend

    Last updated Sun Aug 16 10:47:44 -0700 2009

  • detect-global

    Bookmarklet for listing global variables (helps prevent accidental leaks)

    legend

    Last updated Fri Aug 14 07:50:38 -0700 2009

  • unittest_js

    legend

    Forked from tobie/unittest_js Tue Jul 07 13:43:58 -0700 2009

    Last updated Sat Jun 27 20:07:44 -0700 2009

  • prototype

    Prototype JavaScript framework

    legend

    Forked from sstephenson/prototype Mon Apr 06 07:57:17 -0700 2009

    Last updated Fri Jun 26 15:22:00 -0700 2009

  • taskspeed

    Library / Functional benchmark suite

    legend

    Forked from phiggins42/taskspeed Fri Jun 26 14:47:18 -0700 2009

    Last updated Fri Jun 26 15:14:55 -0700 2009

  • noSWFUpload

    Multiple Files Upload For Every Browser - No SWF Object Required

    legend

    Forked from WebReflection/noSWFUpload Mon Jun 22 21:31:40 -0700 2009

    Last updated Mon Jun 22 21:46:54 -0700 2009

  • protolicious

    prototype.js tidbits

    legend

    Last updated Wed Jun 10 11:11:34 -0700 2009

  • ape-javascript-library

    Minimal JavaScript library for writing and developing widgets.

    legend

    Forked from GarrettS/ape-javascript-library Tue Apr 14 17:06:54 -0700 2009

    Last updated Sat May 09 11:25:49 -0700 2009

  • ape

    APE Javascript Library

    legend

    Last updated Mon Apr 20 14:09:26 -0700 2009

  • nwevents

    Javascript Event Manager for handlers, listeners and delegates

    legend

    Forked from dperini/nwevents Sun Apr 19 08:56:51 -0700 2009

    Last updated Sun Apr 19 09:57:40 -0700 2009

  • colorpicker

    A fork of an excellent ColorPicker by John Dyer

    legend

    Last updated Mon Feb 09 22:35:56 -0800 2009

  • css-tidbits

    legend

    Last updated Fri Jul 18 06:49:25 -0700 2008

  • proto.menu

    prototype.js based context menu

    legend

    Last updated Sat May 31 04:25:59 -0700 2008

  • prototype-tmbundle

    legend

    Last updated Wed Mar 26 12:30:47 -0700 2008

  • html-tmbundle

    HTML TextMate bundle

    legend

    Forked from drnic/html-tmbundle Fri May 15 21:29:13 -0700 2009

    Last updated Wed Mar 26 12:23:47 -0700 2008

Public Activity feed

kangax open sourced sputniktests-webrunner Mon Nov 09 11:04:20 -0800 2009
sputniktests web runner
kangax commented on GarrettS/ape-javascript-library Sat Nov 07 22:18:34 -0800 2009
Comment on build/drag/Draggable.js L70 in f56a50e:

How come some of these variables are lowercased and others — uppercased?

kangax commented on GarrettS/ape-javascript-library Wed Nov 04 08:27:00 -0800 2009
Comment in 3b93b70:

Makes sense. Thanks for explanation.

kangax commented on GarrettS/ape-javascript-library Wed Nov 04 08:23:13 -0800 2009
Comment on src/drag/Draggable.js L1130 in aa5a877:

Might be better to use pseudo-constant instead of a comment.

kangax commented on GarrettS/ape-javascript-library Tue Nov 03 14:41:50 -0800 2009
Comment on build/drag/Draggable.js L442 in 3b93b70:

Why explicit comparison?

kangax commented on kriskowal/jquery Tue Nov 03 14:38:12 -0800 2009
Comment on src/outro.js L6 in bb1de36:

Why check for window and then fall back to this if it's undefined? Isn't it a global code? Wouldn't this be enough — typeof exports !== 'undefined' ? exports : this or even this.exports || this (not sure what exports is)

kangax commented on sstephenson/prototype Tue Nov 03 13:31:41 -0800 2009
Comment in 97ea37d:

@dperini What about:

function isRootElement(element) { 
  return element.tagName.toUpperCase() === 'HTML'; 
}
// is BODY a root element?
if (document.documentElement.clientWidth === 0) {
  isRootElement = function(element){ 
    return element.tagName.toUpperCase() === 'BODY'; 
  };
}

However, I think this won't really work with multiple documents (where an element whose tagName is "HTML" might not be a root ancestor of an element in question).

kangax commented on sstephenson/prototype Tue Nov 03 05:36:59 -0800 2009
Comment on src/dom/layout.js L144 in 97ea37d:

This is pretty slow and eats memory. The sugar is not worth perf. loss here, imo. Can we replace this with — var nodeName = element.nodeName.toUpperCase(); return nodeName === 'BODY' || nodeName === 'HTML'? I would also rename this method to — isRootElement, following CSS terminology.

kangax commented on dperini/nwmatcher Mon Nov 02 10:17:16 -0800 2009
Comment in 62ba621:

Expandos lead to page reflows in IE? That's news to me. Diego, do you have any more information about this?

kangax commented on GarrettS/ape-javascript-library Mon Nov 02 10:13:05 -0800 2009
Comment on build/drag/Draggable.js L56 in 8fde5b9:

But can we rely on this being spec-compliant? : )

kangax pushed to master at kangax/nfe Sun Nov 01 22:56:03 -0800 2009
HEAD is 1a15389d0fc053388e586e6d711666a9284af929
kangax pushed to master at kangax/nfe Sun Nov 01 22:46:54 -0800 2009
HEAD is b505c22790cc5032bea0a0203bd84083947e902f

7 commits »

kangax commented on dperini/nwmatcher Sun Nov 01 15:06:01 -0800 2009
Comment on src/nwmatcher.js L120 in 73275b0:

Is this actually related to the case of tagNames?

kangax pushed to master at kangax/js-checker Sat Oct 31 09:45:14 -0700 2009
HEAD is f1be3d8a9914b193c41db4c14842ab83d4032a83
  • kangax committed f1be3d8a:
    Add test for KHTML engine (e.g. Konqueror).
kangax pushed to master at kangax/js-checker Fri Oct 30 18:38:04 -0700 2009
HEAD is 72142802de9a525f049c161ce69056cead293573
kangax commented on sstephenson/prototype Sat Oct 24 18:10:19 -0700 2009
Comment on vendor/legacy/selector_engine.js L24 in 8382682:

Doesn't Legacy sound ambiguous? Why not name it LegacySelector?

kangax commented on sstephenson/prototype Fri Oct 23 19:22:16 -0700 2009
Comment in 5f85799:

I would go with results.push(Element.extend(element)) too.

kangax commented on sstephenson/prototype Fri Oct 23 19:19:41 -0700 2009
Comment in 7f5ce1e:

@RStankov Element.extend is essentially Prototype.K (function returning first argument) in browsers that support host objects' prototype extensions.

kangax started watching jquery/jquery Fri Oct 23 19:12:10 -0700 2009
jquery's description:
jQuery JavaScript Library
kangax commented on sstephenson/prototype Wed Oct 21 20:45:04 -0700 2009
Comment in 4dd878f:

@tobie, both links are here — http://twitter.com/kangax/status/4617283006

kangax commented on sstephenson/prototype Wed Oct 21 13:19:17 -0700 2009
Comment on src/dom/dom.js L927 in d10aad7:

Would be nice to mention what descendantOfreturns when given same element — element.descendantOf(element); // true or false?

kangax commented on sstephenson/prototype Wed Oct 21 13:11:12 -0700 2009
Comment on src/dom/dom.js L1130 in f1f6fca:

Isn't "0", "1" access deprecated? We should mention it here.

kangax commented on sstephenson/prototype Wed Oct 21 13:08:52 -0700 2009
Comment on src/dom/dom.js L110 in d6d3ab1:

Is this "broken" line here on purpose (setAttribute('class', ...) will fail in IE)? If it is, it would make sense to mention it in a comment (since someone can actually copy-paste this "old way" and end up with broken functionality).

kangax commented on sstephenson/prototype Wed Oct 21 13:04:38 -0700 2009
Comment on src/dom/dom.js L775 in 7783240:

Do we want to make multiple class addition part of public api? e.g.: someElement.addClassName('foo bar');

kangax commented on sstephenson/prototype Wed Oct 21 13:01:07 -0700 2009
Comment on src/dom/dom.js L480 in e3c89c0:

This is not exactly true. "html will always be last element" only if original element is contained within document. Orphaned elements, for example, might not have "html" as the last member of their ancestors; they might not even have parent node in the first place ;)

kangax commented on kangax/nfe Wed Oct 21 05:11:28 -0700 2009
Comment in 81994cd:

@GarrettS Yeah, I have local repository on my machine where I can do any changes (sometimes even few commits). It's really convenient to be able to edit things locally — its fast and flexible, I can stop in the middle of editing and then continue later, etc.

Once done, I push it to origin/master (github), ssh to my server and pull from there (there's same repo there too, of course, although only ever used for pulling).

kangax pushed to master at kangax/nfe Tue Oct 20 20:58:45 -0700 2009
HEAD is 81994cda2907e734924d5102cfe700eb73d57cee

2 commits »

kangax commented on GarrettS/ape-javascript-library Thu Oct 15 21:07:44 -0700 2009
Comment in 8fe271c:

I am assigning the onload to global object for a test page. That test does not go into production. The user is the developer who is running the test. The failure of global onload not firing would be something that that user would be interested in.

But why does it matter if code is in production or not? We don't use "document.all" or sniffing in dev. environment, we still use best practices, don't we?

Essentially, that says (in code) that the WindowProxy is the global object.

Yep, window == Global seems to be an inherent assumption in all browsers. If browser was to break that, it would break most of the web. Btw, speaking of inner/outer windows (that we couldn't figure out before), here's an article describing them in more details — https://developer.mozilla.org/En/SpiderMonkey/Split_object

kangax commented on madrobby/scripty2 Thu Oct 15 13:25:01 -0700 2009
Comment on src/extensions/element.js L171 in fed0d0b:

That's a very weak inference. If clients is Gecko, does it mean it supports "MozTransform"? Most likely not. Testing for presence of certain style is trivial and is more robust.

Same with IE sniff further down. Need to test presence of filter, not user agent.

kangax commented on dperini/nwmatcher Tue Oct 13 15:39:01 -0700 2009
Comment on src/nwmatcher.js L286 in f52e6a4:

Btw, theoretically, we don't know if native trim considers all of the — \x20, \t, n, \r, \f as whitespace — which means that it would be safer to feature test it first. E.g.:

if (String.prototype.trim && '\x20\t\n\r\f'.trim().length === 0)
  trim = String.prototype.trim;
}
else {
  ...
}

But this might be just overly paranoid : )

kangax commented on dperini/nwmatcher Tue Oct 13 15:33:35 -0700 2009
Comment in 8abe85b:

Wouldn't it be less repetitive (and more maintainable) to store \t\n\f\r\x20 in a string and then use that string everywhere for regex building? Or am I missing something?

kangax commented on dperini/nwmatcher Mon Oct 12 14:02:55 -0700 2009
Comment in 0c60263:

No unit tests?

kangax commented on dperini/nwmatcher Mon Oct 12 14:02:27 -0700 2009
Comment on src/nwmatcher.js L301 in d4c635b:

This will not match something like ".foo-bar", even though it's just as simple as ".foo" : )

Perhaps, /^[.#]?[-\w]+$/ ?

kangax commented on GarrettS/ape-javascript-library Sun Oct 11 22:21:27 -0700 2009
Comment in 8fe271c:

The link you listed is 404.

That's because github erroneously appended ")" to the link itself. It's http://yura.thinkweb2.com/test.html

Garrett, never mind me. I just realized that I was talking about Palm Pre all this time : / I do see that Blackberry returns false even in my own test. Sigh...

githubsource bookmarklet might come handy. Thanks.

Could you explain how "assign a global onload is not harmful" when you assign it as undeclared variable (onload = ...)? I am, btw, not aware of cases where global onload doesn't fire.

kangax commented on GarrettS/ape-javascript-library Sun Oct 11 22:20:47 -0700 2009

The comment has since been removed.