예제 #1
0
        virtual bool refersToGlobal(const std::string &name) {
            if (isCompilerCreatedName(name))
                return false;

            //assert(name[0] != '#' && "should test this");
            return true;
        }
예제 #2
0
 VarScopeType getScopeTypeOfName(InternedString name) override {
     if (isCompilerCreatedName(name))
         return VarScopeType::FAST;
     else if (forced_globals.find(name) != forced_globals.end())
         return VarScopeType::GLOBAL;
     else
         return VarScopeType::NAME;
 }
예제 #3
0
        virtual bool refersToGlobal(const std::string &name) {
            // HAX
            if (isCompilerCreatedName(name))
                return false;

            if (usage->forced_globals.count(name))
                return true;
            return usage->written.count(name) == 0 && usage->got_from_closure.count(name) == 0;
        }
예제 #4
0
 virtual bool saveInClosure(const std::string name) {
     // HAX
     if (isCompilerCreatedName(name))
         return false;
     return usage->referenced_from_nested.count(name) != 0;
 }
예제 #5
0
 virtual bool refersToClosure(const std::string name) {
     // HAX
     if (isCompilerCreatedName(name))
         return false;
     return usage->got_from_closure.count(name) != 0;
 }
예제 #6
0
 VarScopeType getScopeTypeOfName(InternedString name) override {
     if (isCompilerCreatedName(name))
         return VarScopeType::FAST;
     else
         return VarScopeType::GLOBAL;
 }