| 399 | } |
| 400 | |
| 401 | JSValueRef V8JavaScriptContext::newArrayWithValues(const JSValue* values, |
| 402 | size_t size, |
| 403 | JSExceptionTracker& exceptionTracker) { |
| 404 | v8::HandleScope handleScope(_isolate); |
| 405 | |
| 406 | auto* valuesUnpacked = static_cast<v8::Local<v8::Value>*>(alloca(sizeof(v8::Local<v8::Value>) * size)); |
| 407 | |
| 408 | for (size_t i = 0; i < size; i++) { |
| 409 | auto val = fromValdiJSValue(_isolate, values[i], exceptionTracker); |
| 410 | if (!exceptionTracker) { |
| 411 | return JSValueRef(); |
| 412 | } |
| 413 | valuesUnpacked[i] = val; |
| 414 | } |
| 415 | |
| 416 | auto val = v8::Array::New(_isolate, valuesUnpacked, size); |
| 417 | return toRetainedJSValueRef(IndirectV8Persistent::make(_isolate, val)); |
| 418 | } |
| 419 | |
| 420 | JSValueRef V8JavaScriptContext::newArrayBuffer(const BytesView& buffer, JSExceptionTracker& exceptionTracker) { |
| 421 | v8::HandleScope handleScope(_isolate); |