Skip to content

Instantly share code, notes, and snippets.

@uupaa
Created July 18, 2013 21:21
Show Gist options
  • Select an option

  • Save uupaa/6033202 to your computer and use it in GitHub Desktop.

Select an option

Save uupaa/6033202 to your computer and use it in GitHub Desktop.
Mixin.jsx
// JSX

var obj = null:Map.<variant>;

obj = Mixin.mixin({}:Map.<variant>, { a: 123 }:Map.<variant>);
// JSX
// ----------------------------------------------
class Mixin {
    static function mixin(base:variant,
                          user:variant):variant {
        var constructorFunction = (Object as variant)["constructor"]; // Object.constructor function

        for (var key in user as Map.<variant>) {
            var value = user[key];

            if (constructorFunction == (value as variant)["constructor"]) {
                Mixin.mixin(base[key], value);
            } else {
                base[key] = value;
            }
        }
        return base;
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment