Q:

Apply Site Policy using JSOM

I’m trying to apply a site policy from a SharePoint hosted add-in using JSOM. SharePoint Online.
I have referenced the SP.Policy.js library and tried to use the static methods in the SP.InformationPolicy.ProjectPolicy namespace.
If I manually apply a site policy using the web interface I can use doesProjectHavePolicy and getProjectCloseDate to get some information about the applied policy.
I can even close the site using closeProject.
However, if I try to get a list of available site policies using getProjectPolicies I get an empty list even though I know that I have three available policies. No error or similar, just an empty list. I need this list to be able to apply a site policy, that is my goal.
I have also tried to use getCurrentlyAppliedProjectPolicyOnWeb to get the current policy but receive an error when I try to load the object saying:
a.get_$19_0 is not a function from sp.runtime and SP.DataRetrievalWithExpressionString.load.
Code example:
context = SP.ClientContext.get_current();
appContext = new SP.AppContextSite(context, hostweburl);
hostWeb = appContext.get_web();

context.load(hostWeb);

context.executeQueryAsync(function () {

    policies = SP.InformationPolicy.ProjectPolicy.getProjectPolicies(context, hostWeb);
    policy = SP.InformationPolicy.ProjectPolicy.getCurrentlyAppliedProjectPolicyOnWeb(context, hostWeb);
    hasPolicy = SP.InformationPolicy.ProjectPolicy.doesProjectHavePolicy(context, hostWeb);
    date = SP.InformationPolicy.ProjectPolicy.getProjectCloseDate(context, hostWeb);
    context.load(policies); // Variant 1. Return an object but no policies.
    context.load(policy); // Variant 2, generate an error.

    context.executeQueryAsync(function () {
            policyEnumerator = policies.getEnumerator();

Anyone out there with a working example of a script that apply a site policy in a SharePoint hosted app? 
I can also add that I have done the same thing using PowerShell and it works perfectly.

A:

I eventually found the problem and also the solution. I accidently failed to load the library sp.runtime.js in a proper way. Everything else in my app still worked so I didn’t notice this apparent problem until I got some support from Microsoft.

