Commit Graph

22 Commits

Author SHA1 Message Date
Ray Greenwell fc6d6350f4 Flash drives me nuts.
Doing a loop on a null object works:
   for (s in null)
But checking to see if a property is in a null object throws an error:
   (s in null)
They're so similar!

So, protect against the NPE.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5233 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-11 02:07:04 +00:00
Par Winzell 4442cb7bc4 Try a different way of assessing the plainness of an object that doesn't rely on describeType(). This could potentially break games and such in somewhat non-obvious ways. I've tested a number of things locally but the next step is www.dev.whirled.com.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5044 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-07 00:34:23 +00:00
Ray Greenwell b279ef6eb8 Added Util.isPlainObject().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4952 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-03-04 23:33:59 +00:00
Ray Greenwell 8ccdf19a42 Fix docs, clarify.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4934 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-02-05 23:57:57 +00:00
Ray Greenwell 3d2166cd8d Added utility methods for safe XML operations.
So broken! The XML class is not specified in the ECMA-262 standard.
Now I know why they needed the guidelines of ECMAscript: when left
to their own devices they design broken-ass shit.
Adobe needs a cork on their fork.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4932 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-02-05 23:47:20 +00:00
Ray Greenwell 2bf1c107d1 Added a simple utility method to initialize an object with properties specified
in an initObject. This is a fairly common practice in flash and let's go ahead
and use it sometimes, even though it's prone to runtime errors.
Our version of this has a defaults Object as well as another Object that can be
specified to mask properties from the initObject.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4908 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-13 23:25:29 +00:00
Par Winzell 195f78376b Haha, there was already one in StringUtil. I was sure I'd checked...
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4881 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-24 21:50:54 +00:00
Par Winzell 9a8df29c8e I'm afraid we really do need a hashcode method...
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4880 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-24 21:41:53 +00:00
Ray Greenwell 20e9eb66bd Broke out array equals() into its own method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4661 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-14 02:59:51 +00:00
Michael Bayne 09f0bee0f3 Yet more header patrol.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-24 00:39:27 +00:00
Ray Greenwell e404b83531 This was never used.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4547 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-10 01:27:52 +00:00
Ray Greenwell e6c38e81c6 - Some deflexing of the low-level narya stuff. More to come, as we're
going to want the minimum client to be flex-free.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4507 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-01-22 19:58:24 +00:00
Ray Greenwell a9e60be7c7 Another well-thought out actionscript feature: varags!
In java, if you override a varargs method you can easily call super, you just
have to do a wee cast:

    @Override
    public Stuff getStuff (int thing, Object... args)
    {
        return super.getStuff(thing, (Object[]) args);
    }

In abjectscript:

    override public function getStuff (thing :int, ... args) :Stuff
    {
        // This doesn't work, because now 'args' to super is an array
        // containing OUR args array as its first element.
        return super.getStuff(thing, args);

        // We can fix things for super by 'apply'ing the function to
        // all the args in one array...
        args.unshift(thing);
        return super.apply(this, args);

        // But it could also be the case that someone is intentionally
        // passing an array to this method (many flash library methods take
        // varargs but also accept arrays and do this same thing).
        if (args.length == 1 && (args[0] is Array)) {
            args = (args[0] as Array);
        }
        return super.getStuff(thing, args); // super must ALSO do the unjimmying

        // OR, we could combine the two so that super doesn't have to
        // do unjimmying.
    }

As a note, there is an 'arguments' object that is secretly placed in every
function call, presumably so that callers can test whether an arg is
the default value because the user didn't pass it in or whether it's
the default because the user happened to pass in the default.
Guess yourself, because that doesn't seem worth adding as a language feature.
Anyway, the 'arguments' is not an array! You can't use it to call super
via 'apply'. It's another associative hash. God bless you actionscript,
you just make so much fucking sense.

So I made a utility method for unfucking vargs.

I bitch a lot, yes, but my bitching takes only a fraction of the time
that was wasted discovering whatever it is I'm bitching about
(this was fun to trace backwards to the source, oh yes), and maybe I
can save others some time as a result.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4477 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-12-09 00:08:09 +00:00
Ray Greenwell e973c00b50 Made equals() compare arrays by value.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4364 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-09-08 17:42:58 +00:00
Ray Greenwell 2c84eb9251 Added hexlate() and unhexlate() to StringUtil.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4363 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-09-08 02:30:12 +00:00
Ray Greenwell 2f3584adf7 Various small fixes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4258 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-12 02:22:18 +00:00
Ray Greenwell 694152013c Added toHex(uint).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4199 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-20 19:21:10 +00:00
Ray Greenwell e100ef4faf Updated to match API changes in Beta3.
InvocationRegistration had a constructor called Registration. I wonder if
that was causing the compile error with beta2.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4104 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-05-09 23:03:47 +00:00
Ray Greenwell 091c7d2401 Checkpoint. This is not compiling right now due to three annoying problems:
- There seems to be a compiler bug that causes classes to be
  imported spuriously, or something. Classes that import only one of the Log
  classes are complaining about visibility of more than one of them.
- static constants are not inherited by subclasses, which is super annoying.
  I will try switching to prototype consts, but there seems to be a problem
  initializing those, and we don't want to make them vars...
- The fact that there are no inner classes combined with no method overloading
  is making things very inconvenient. I've been experimenting with faking
  an anonymous class by instantiating a dynamic object and attaching
  functions to it, but it's not working. I'll continue experimenting, because
  if we can't do this then someone shoot me.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3957 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-17 02:19:53 +00:00
Ray Greenwell ca66f91ac7 Started work on the 'crowd' package.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3935 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-03-10 03:05:37 +00:00
Ray Greenwell 43f956c32d Lowercase letters so that it matches StringUtil.hexlate() output.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3881 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-23 01:43:56 +00:00
Ray Greenwell 5a9a018867 Commented a few classes as abstract,
debugging..


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3878 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-02-22 06:28:27 +00:00