зеркало из https://github.com/mozilla/pjs.git
Fix for bug 585714 (crash (assert) in nanojit: "LIR type error (start of writer pipeline): arg 1 of 'eqi' is 'callq' which has type int64 (expected int32): 0"). r=luke.
This commit is contained in:
Родитель
515675867c
Коммит
e0240fbc11
|
@ -202,7 +202,7 @@ def removeStubMember(memberId, member):
|
|||
|
||||
def addStubMember(memberId, member, traceable):
|
||||
mayTrace = False
|
||||
if member.kind == 'method' and not member.implicit_jscontext:
|
||||
if member.kind == 'method' and not member.implicit_jscontext and not isVariantType(member.realtype):
|
||||
# This code MUST match writeTraceableQuickStub
|
||||
haveCallee = memberNeedsCallee(member)
|
||||
# Traceable natives support up to MAX_TRACEABLE_NATIVE_ARGS
|
||||
|
@ -1062,28 +1062,31 @@ defaultReturnTraceType = ("JSObject *", "OBJECT_OR_NULL", "nsnull")
|
|||
defaultParamTraceType = ("js::ValueArgType ", "VALUE")
|
||||
|
||||
def getTraceParamType(type):
|
||||
assert type is not '[jsval]'
|
||||
type = getBuiltinOrNativeTypeName(type)
|
||||
assert type is not '[jsval]'
|
||||
return traceParamTypeMap.get(type, defaultParamTraceType)[0]
|
||||
|
||||
def getTraceReturnType(type):
|
||||
assert type is not '[jsval]'
|
||||
assert not isVariantType(type)
|
||||
type = getBuiltinOrNativeTypeName(type)
|
||||
assert type is not '[jsval]'
|
||||
return traceReturnTypeMap.get(type, defaultReturnTraceType)[0]
|
||||
|
||||
def getTraceInfoParamType(type):
|
||||
assert type is not '[jsval]'
|
||||
type = getBuiltinOrNativeTypeName(type)
|
||||
assert type is not '[jsval]'
|
||||
return traceParamTypeMap.get(type, defaultParamTraceType)[1]
|
||||
|
||||
def getTraceInfoReturnType(type):
|
||||
assert type is not '[jsval]'
|
||||
assert not isVariantType(type)
|
||||
type = getBuiltinOrNativeTypeName(type)
|
||||
assert type is not '[jsval]'
|
||||
return traceReturnTypeMap.get(type, defaultReturnTraceType)[1]
|
||||
|
||||
def getTraceInfoDefaultReturn(type):
|
||||
assert type is not '[jsval]'
|
||||
assert not isVariantType(type)
|
||||
type = getBuiltinOrNativeTypeName(type)
|
||||
assert type is not '[jsval]'
|
||||
return traceReturnTypeMap.get(type, defaultReturnTraceType)[2]
|
||||
|
||||
def getFailureString(retval, indent):
|
||||
|
|
Загрузка…
Ссылка в новой задаче