tiktok_source/df_miniapp/classes/com/he/jsbinding/JsContext.java
2020-07-11 13:32:14 -07:00

203 lines
6.2 KiB
Java

package com.he.jsbinding;
import java.lang.reflect.Method;
import java.nio.ByteBuffer;
public class JsContext {
protected final int id;
protected final boolean scoped;
protected final long vm;
JsContext(long paramLong, int paramInt) {
boolean bool;
if (getClass() == JsScopedContext.class) {
bool = true;
} else {
bool = false;
}
this.scoped = bool;
this.vm = paramLong;
this.id = paramInt;
}
public JsContext(JsEngine paramJsEngine) {
boolean bool;
if (getClass() == JsScopedContext.class) {
bool = true;
} else {
bool = false;
}
this.scoped = bool;
this.vm = paramJsEngine.vm;
this.id = JsEngine.createContext(this.vm);
}
private static byte getTypeCode(Class<?> paramClass) {
if (paramClass == void.class)
return 118;
if (paramClass == boolean.class)
return 122;
if (paramClass == byte.class)
return 98;
if (paramClass == char.class)
return 99;
if (paramClass == short.class)
return 115;
if (paramClass == int.class)
return 105;
if (paramClass == float.class)
return 102;
if (paramClass == double.class)
return 100;
if (paramClass == long.class)
return 106;
if (paramClass == String.class)
return 36;
if (paramClass == ByteBuffer.class)
return 66;
if (paramClass == JsObject.class)
return 79;
if (paramClass == JsScopedContext.class)
return 64;
StringBuilder stringBuilder = new StringBuilder("unsupported type ");
stringBuilder.append(paramClass.getCanonicalName());
throw new RuntimeException(stringBuilder.toString());
}
public int compile(byte[] paramArrayOfbyte, String paramString, boolean paramBoolean) {
return JsEngine.compileBytes(this.vm, this.id, paramArrayOfbyte, paramString, paramBoolean);
}
public JsObject createArray(int paramInt) {
long l = this.vm;
int i = this.id;
return new JsObject(l, i, JsEngine.createArray(l, i, paramInt));
}
public JsObject createArrayBuffer(int paramInt) {
long l = this.vm;
int i = this.id;
return new JsObject(l, i, JsEngine.createArrayBuffer(l, i, paramInt));
}
public JsObject createFunction(JsFunctionCallback paramJsFunctionCallback) {
long l = this.vm;
int i = this.id;
return new JsObject(l, i, JsEngine.createFunction(l, i, paramJsFunctionCallback));
}
public JsObject createFunction(Object paramObject, String paramString, Class<?>... paramVarArgs) throws NoSuchMethodException {
if (paramVarArgs.length <= 8) {
Method method = paramObject.getClass().getMethod(paramString, paramVarArgs);
int i = 0;
long l1 = 0L;
while (i < paramVarArgs.length) {
l1 |= getTypeCode(paramVarArgs[i]) << i << 3;
i++;
}
long l2 = this.vm;
i = this.id;
return new JsObject(l2, i, JsEngine.newMethodWrap(l2, i, paramObject, method, l1, getTypeCode(method.getReturnType())));
}
paramObject = new RuntimeException("we only support methods with no more than 8 arguments");
throw paramObject;
}
public JsObject createFunction(Object paramObject, Method paramMethod) {
Class[] arrayOfClass = paramMethod.getParameterTypes();
if (arrayOfClass.length <= 8) {
int i = 0;
long l1 = 0L;
while (i < arrayOfClass.length) {
l1 |= getTypeCode(arrayOfClass[i]) << i << 3;
i++;
}
long l2 = this.vm;
i = this.id;
return new JsObject(l2, i, JsEngine.newMethodWrap(l2, i, paramObject, paramMethod, l1, getTypeCode(paramMethod.getReturnType())));
}
paramObject = new RuntimeException("we only support methods with no more than 8 arguments");
throw paramObject;
}
public JsObject createObject() {
long l = this.vm;
int i = this.id;
return new JsObject(l, i, JsEngine.createObject(l, i));
}
public JsObject deserialize(ByteBuffer paramByteBuffer) {
int i = JsEngine.deserialize(this.vm, this.id, paramByteBuffer);
if (i != -1)
return new JsObject(this.vm, this.id, i);
throw new RuntimeException("wrong buffer format");
}
public void eval(String paramString1, String paramString2) {
if (paramString1 != null) {
JsEngine.eval(this.vm, this.id, paramString1, paramString2, this.scoped);
return;
}
throw new NullPointerException("code is null");
}
public void eval(ByteBuffer paramByteBuffer, String paramString) {
if (paramByteBuffer != null) {
JsEngine.evalByteBuffer(this.vm, this.id, paramByteBuffer, paramString, this.scoped);
return;
}
throw new NullPointerException("code is null");
}
public void eval(byte[] paramArrayOfbyte, String paramString) {
if (paramArrayOfbyte != null) {
JsEngine.evalBytes(this.vm, this.id, paramArrayOfbyte, paramString, this.scoped);
return;
}
throw new NullPointerException("code is null");
}
public void execute(int paramInt, boolean paramBoolean) {
JsEngine.executeScript(this.vm, this.id, paramInt, this.scoped, paramBoolean);
}
public final JsEngine getEngine() {
return new JsEngine(this.vm);
}
public final JsObject global() {
long l = this.vm;
int i = this.id;
return new JsObject(l, i, JsEngine.getGlobal(l, i));
}
public void release() {
JsEngine.releaseContext(this.vm, this.id);
}
public void releaseCompiledScript(int paramInt) {
JsEngine.releaseScript(this.vm, this.id, paramInt);
}
public JsObject retain(JsObject paramJsObject) {
long l = this.vm;
int i = this.id;
return new JsObject(l, i, JsEngine.retain(l, i, paramJsObject.ctx_id, paramJsObject.id));
}
public void run(ScopeCallback paramScopeCallback) {
JsEngine.run(this.vm, this.id, paramScopeCallback);
}
public static interface ScopeCallback {
void run(JsScopedContext param1JsScopedContext);
}
}
/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsContext.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 1.1.3
*/