dist/regular/strict/dejavu.js
function protectConstructor(constructor) {
        var key,
            target,
            meta,
            prototype = constructor.prototype;

        obfuscateProperty(constructor, cacheKeyword, { properties: {}, methods: {} });

        for (key in constructor[$class].staticMethods) {
            protectStaticMethod(key, constructor[$class].staticMethods[key], constructor);
        }

        for (key in constructor[$class].staticProperties) {
            protectStaticProperty(key, constructor[$class].staticProperties[key], constructor);
        }

        // Prevent any properties/methods from being added and deleted to the constructor/prototype
        if (isFunction(Object.seal) && constructor[$class].locked && !constructor[$class].forceUnlocked) {
            Object.seal(constructor);
            Object.seal(prototype);
        }
    }
function protectConstructor(constructor) {
        var key,
            target,
            meta,
            prototype = constructor.prototype;

        obfuscateProperty(constructor, cacheKeyword, { properties: {}, methods: {} });

        for (key in constructor[$class].staticMethods) {
            protectStaticMethod(key, constructor[$class].staticMethods[key], constructor);
        }

        for (key in constructor[$class].staticProperties) {
            protectStaticProperty(key, constructor[$class].staticProperties[key], constructor);
        }

        // Prevent any properties/methods from being added and deleted to the constructor/prototype
        if (isFunction(Object.seal) && constructor[$class].locked && !constructor[$class].forceUnlocked) {
            Object.seal(constructor);
            Object.seal(prototype);
        }
    }
function protectConstructor ( constructor ) { var key , target , meta , prototype = constructor . prototype ; obfuscateProperty ( constructor , cacheKeyword , { properties : { } , methods : { } } ) ; for ( key in constructor [ $class ] . staticMethods ) { protectStaticMethod ( key , constructor [ $class ] . staticMethods [ key ] , constructor ) ; } for ( key in constructor [ $class ] . staticProperties ) { protectStaticProperty ( key , constructor [ $class ] . staticProperties [ key ] , constructor ) ; } // Prevent any properties/methods from being added and deleted to the constructor/prototype if ( isFunction ( Object . seal ) && constructor [ $class ] . locked && ! constructor [ $class ] . forceUnlocked ) { Object . seal ( constructor ) ; Object . seal ( prototype ) ; } }
Protects a constructor.

All its methods and properties will be secured according to their visibility.

@param {Function} constructor The constructor to be protected
Protects a constructor .