private boolean isAssignedToGlobal(CoffeeScope scope, CoffeeToken token) {
        if (!isAssigned(scope, token)) {
            return false;
        }

        CoffeeToken after = scope.after(token);
        while(null != after && !isTerminator(after)) {
            if (isExports(after) || isAt(after) || isThis(after) || isWindow(after) || hasGlobalAssignment(scope, after)) {
                after = scope.after(after);
                if (!isDot(after)) {
                    return true;
                }
                continue;
            }
            after = scope.after(after);
        }

        return true;
    }