const ARRAYCOPY: &'static Fn(Vec<Value>) -> Option<Value> =
&(|args| {
if let Value::ArrayReference(ref src_rc) = args[0] {
if let Value::Int(Wrapping(src_offset)) = args[1] {
if let Value::ArrayReference(ref dest_rc) = args[2] {
if let Value::Int(Wrapping(dest_offset)) = args[3] {
if let Value::Int(Wrapping(len)) = args[4] {
let src = src_rc.borrow();
let mut dest = dest_rc.borrow_mut();
for i in 0..len {
let value = src.get(src_offset + i);
dest.put(dest_offset + i, value);
}
} else {
panic!("length must be an int");
}
} else {
panic!("dest_offset must be an int");
}
} else {
panic!("ArrayStoreException");
}
} else {
panic!("src_offset must be an int");
}
} else {
panic!("ArrayStoreException");
}
None
})