Merge commit 'origin/master'
This commit is contained in:
commit
5f3f94a8ae
|
@ -45,6 +45,9 @@
|
||||||
'make-vector
|
'make-vector
|
||||||
'equal?
|
'equal?
|
||||||
'member
|
'member
|
||||||
|
'memq
|
||||||
|
'memv
|
||||||
|
'memf
|
||||||
'append
|
'append
|
||||||
'reverse
|
'reverse
|
||||||
'length
|
'length
|
||||||
|
|
|
@ -137,14 +137,20 @@
|
||||||
MACHINE.exclusiveLock.acquire(
|
MACHINE.exclusiveLock.acquire(
|
||||||
"js-as-closure",
|
"js-as-closure",
|
||||||
function(releaseLock) {
|
function(releaseLock) {
|
||||||
succ = succ || function () {};
|
var wrappedSucc = function() {
|
||||||
fail = fail || function () {};
|
releaseLock();
|
||||||
|
(succ || function () {}).apply(null, arguments);
|
||||||
|
};
|
||||||
|
var wrappedFail = function(err) {
|
||||||
|
releaseLock();
|
||||||
|
(fail || function () {})(err);
|
||||||
|
};
|
||||||
if (!(baselib.arity.isArityMatching(v.racketArity, args.length - 2))) {
|
if (!(baselib.arity.isArityMatching(v.racketArity, args.length - 2))) {
|
||||||
var msg = baselib.format.format(
|
var msg = baselib.format.format(
|
||||||
"arity mismatch: ~s expected ~s argument(s) but received ~s",
|
"arity mismatch: ~s expected ~s argument(s) but received ~s",
|
||||||
[v.displayName, v.racketArity, args.length - 2]);
|
[v.displayName, v.racketArity, args.length - 2]);
|
||||||
releaseLock();
|
releaseLock();
|
||||||
return fail(new baselib.exceptions.RacketError(
|
return wrappedFail(new baselib.exceptions.RacketError(
|
||||||
msg,
|
msg,
|
||||||
baselib.exceptions.makeExnFailContractArity(msg,
|
baselib.exceptions.makeExnFailContractArity(msg,
|
||||||
MACHINE.captureContinuationMarks())));
|
MACHINE.captureContinuationMarks())));
|
||||||
|
@ -163,7 +169,7 @@
|
||||||
MACHINE.v = oldVal;
|
MACHINE.v = oldVal;
|
||||||
MACHINE.a = oldArgcount;
|
MACHINE.a = oldArgcount;
|
||||||
MACHINE.p = oldProc;
|
MACHINE.p = oldProc;
|
||||||
succ(returnValue);
|
wrappedSucc(returnValue);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
afterGoodInvoke.mvr = function (MACHINE) {
|
afterGoodInvoke.mvr = function (MACHINE) {
|
||||||
|
@ -177,7 +183,7 @@
|
||||||
MACHINE.v = oldVal;
|
MACHINE.v = oldVal;
|
||||||
MACHINE.a = oldArgcount;
|
MACHINE.a = oldArgcount;
|
||||||
MACHINE.p = oldProc;
|
MACHINE.p = oldProc;
|
||||||
succ.apply(null, returnValues);
|
wrappedSucc.apply(null, returnValues);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -194,7 +200,7 @@
|
||||||
MACHINE.v = oldVal;
|
MACHINE.v = oldVal;
|
||||||
MACHINE.a = oldArgcount;
|
MACHINE.a = oldArgcount;
|
||||||
MACHINE.p = oldProc;
|
MACHINE.p = oldProc;
|
||||||
fail(e);
|
wrappedFail(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
MACHINE._trampoline(v.label, false, releaseLock);
|
MACHINE._trampoline(v.label, false, releaseLock);
|
||||||
|
@ -217,8 +223,8 @@
|
||||||
baselib.exceptions.raise(MACHINE,
|
baselib.exceptions.raise(MACHINE,
|
||||||
baselib.exceptions.makeExnFailContract(
|
baselib.exceptions.makeExnFailContract(
|
||||||
baselib.format.format(
|
baselib.format.format(
|
||||||
"Not a procedure: ~e",
|
"not a procedure: ~e",
|
||||||
v),
|
[v]),
|
||||||
MACHINE.captureContinuationMarks()));
|
MACHINE.captureContinuationMarks()));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -248,7 +254,7 @@
|
||||||
fail(baselib.exceptions.makeExnFail(
|
fail(baselib.exceptions.makeExnFail(
|
||||||
baselib.format.format(
|
baselib.format.format(
|
||||||
"Not a procedure: ~e",
|
"Not a procedure: ~e",
|
||||||
proc),
|
[proc]),
|
||||||
MACHINE.captureContinuationMarks()));
|
MACHINE.captureContinuationMarks()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
'caarable value');
|
'caarable value');
|
||||||
var checkCadrPair = baselib.check.makeCheckArgumentType(
|
var checkCadrPair = baselib.check.makeCheckArgumentType(
|
||||||
function(x) {
|
function(x) {
|
||||||
return isPair(x) && isPair(x.first);
|
return isPair(x) && isPair(x.rest);
|
||||||
},
|
},
|
||||||
'cadrable value');
|
'cadrable value');
|
||||||
var checkList = baselib.check.checkList;
|
var checkList = baselib.check.checkList;
|
||||||
|
@ -615,7 +615,7 @@
|
||||||
1,
|
1,
|
||||||
function (M) {
|
function (M) {
|
||||||
var firstArg = checkCadrPair(M, 'cadr', 0);
|
var firstArg = checkCadrPair(M, 'cadr', 0);
|
||||||
return firstArg.first.rest;
|
return firstArg.rest.first;
|
||||||
});
|
});
|
||||||
|
|
||||||
installPrimitiveProcedure(
|
installPrimitiveProcedure(
|
||||||
|
|
|
@ -100,6 +100,7 @@
|
||||||
if
|
if
|
||||||
cond
|
cond
|
||||||
else
|
else
|
||||||
|
=>
|
||||||
case
|
case
|
||||||
quote
|
quote
|
||||||
unquote
|
unquote
|
||||||
|
|
Loading…
Reference in New Issue
Block a user