Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Unified Diff: test/cctest/test-api-accessors.cc

Issue 1518703002: Re-re-land FastAccessorBuilder. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add test restrictions, as for test-api-fast-accessor-builder Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/cctest/cctest.gyp ('k') | test/cctest/test-api-fast-accessor-builder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-api-accessors.cc
diff --git a/test/cctest/test-api-accessors.cc b/test/cctest/test-api-accessors.cc
index 9afa776d25dbc578fab2efcd01aa63dfeea8cfc8..a8c0331c2e3e4d7a075d7f1d4f49411e6448e68c 100644
--- a/test/cctest/test-api-accessors.cc
+++ b/test/cctest/test-api-accessors.cc
@@ -5,35 +5,31 @@
#include "test/cctest/cctest.h"
#include "include/v8.h"
-#include "src/compiler/pipeline.h"
-#include "src/compiler/raw-machine-assembler.h"
+#include "include/v8-experimental.h"
namespace i = v8::internal;
-static void CppAccessor(const v8::FunctionCallbackInfo<v8::Value>& info) {
+static void CppAccessor42(const v8::FunctionCallbackInfo<v8::Value>& info) {
info.GetReturnValue().Set(42);
}
-v8::Local<v8::Value> RawAccessor(v8::Isolate* isolate) {
- i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
- i::Zone zone;
- i::compiler::RawMachineAssembler raw_machine_assembler(
- i_isolate, new (&zone) i::compiler::Graph(&zone),
- i::compiler::Linkage::GetJSCallDescriptor(
- &zone, false, 1, i::compiler::CallDescriptor::kNoFlags));
- raw_machine_assembler.Return(raw_machine_assembler.NumberConstant(41));
- i::CompilationInfo info("firstChildRaw", i_isolate, &zone);
- i::compiler::Schedule* schedule = raw_machine_assembler.Export();
- i::Handle<i::Code> code = i::compiler::Pipeline::GenerateCodeForTesting(
- &info, raw_machine_assembler.call_descriptor(),
- raw_machine_assembler.graph(), schedule);
- return v8::Utils::ToLocal(i::Handle<i::Object>::cast(code));
+static void CppAccessor41(const v8::FunctionCallbackInfo<v8::Value>& info) {
+ info.GetReturnValue().Set(41);
}
-TEST(JavascriptAccessors) {
+v8::experimental::FastAccessorBuilder* FastAccessor(v8::Isolate* isolate) {
+ auto builder = v8::experimental::FastAccessorBuilder::New(isolate);
+ builder->ReturnValue(builder->IntegerConstant(41));
+ return builder;
+}
+
+
+TEST(FastAccessors) {
+ if (i::FLAG_always_opt || i::FLAG_optimize_for_size) return;
+
v8::Isolate* isolate = CcTest::isolate();
v8::HandleScope scope(isolate);
LocalContext env;
@@ -53,15 +49,15 @@ TEST(JavascriptAccessors) {
// cpp accessor as "firstChild":
parent->PrototypeTemplate()->SetAccessorProperty(
v8_str("firstChild"),
- v8::FunctionTemplate::New(isolate, CppAccessor, v8::Local<v8::Value>(),
- signature));
+ v8::FunctionTemplate::New(isolate, CppAccessor42,
+ v8::Local<v8::Value>(), signature));
// JS accessor as "firstChildRaw":
- auto raw_accessor = RawAccessor(isolate);
parent->PrototypeTemplate()->SetAccessorProperty(
- v8_str("firstChildRaw"), v8::FunctionTemplate::NewWithFastHandler(
- isolate, CppAccessor, raw_accessor,
- v8::Local<v8::Value>(), signature));
+ v8_str("firstChildRaw"),
+ v8::FunctionTemplate::NewWithFastHandler(
+ isolate, CppAccessor41, FastAccessor(isolate),
+ v8::Local<v8::Value>(), signature));
}
// Setup child object ( =~ a specific DOM Node, e.g. a <div> ).
« no previous file with comments | « test/cctest/cctest.gyp ('k') | test/cctest/test-api-fast-accessor-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698