Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.dynjs.runtime.builtins.types.array.prototype;
 
public class ReduceRight extends AbstractNativeFunction {
    public ReduceRight(GlobalContext globalContext) {
        super(globalContext"callbackFn");
    }
    @Override
    public Object call(ExecutionContext contextObject selfObject... args) {
        // 15.4.4.22
        JSObject o = Types.toObject(contextself);
        long len = Types.toUint32(contexto.get(context"length"));
        if (!(args[0] instanceof JSFunction)) {
            throw new ThrowException(contextcontext.createTypeError("callbackFn must be a function"));
        }
        JSFunction callbackFn = (JSFunctionargs[0];
        if (len == 0 && args.length < 2) {
            throw new ThrowException(contextcontext.createTypeError("length is 0 and no initial value provided"));
        }
        Object accumulator = null;
        long k = len - 1;
        if (args.length >= 2) {
            accumulator = args[1];
        } else {
            boolean kPresent = false;
            while (k >= 0 && !kPresent) {
                kPresent = o.hasProperty(context"" + k);
                if (kPresent) {
                    accumulator = o.get(context"" + k);
                }
                --k;
            }
            if (!kPresent) {
                throw new ThrowException(contextcontext.createTypeError("no initial value and no first value in array"));
            }
        }
        while (k >= 0) {
            if (o.hasProperty(context"" + k)) {
                final Object kValue = o.get(context"" + k);
                accumulator = context.call(callbackFn.accumulatorkValueko);
            }
            --k;
        }
        return accumulator;
    }
    
    @Override
    public void setFileName() {
        this. = "org/dynjs/runtime/builtins/types/array/prototype/ReduceRight.java";
    }
    @Override
    public void setupDebugContext() {
        this. = "<native function: reduceRight>";
    }
New to GrepCode? Check out our FAQ X