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

Unified Diff: src/api.cc

Issue 26709011: Expose v8::Function::GetDisplayName to public API. (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: Created 7 years, 2 months 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 | « include/v8.h ('k') | test/cctest/test-api.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/api.cc
diff --git a/src/api.cc b/src/api.cc
index 469c7a1814df85e35e1e409684be5c22efa3437c..4e3d52b36fb8c5dba27e3960ac6dbab41948bd6b 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -4112,6 +4112,28 @@ Handle<Value> Function::GetInferredName() const {
}
+Handle<Value> Function::GetDisplayName() const {
yurys 2013/10/16 14:57:52 If you anyways return either empty handle or Strin
aandrey 2013/10/16 15:25:19 I guess we can, but there are 2 similar methods de
yurys 2013/10/17 07:40:19 That's because they will return Undefined when the
+ i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
+ ON_BAILOUT(isolate, "v8::Function::GetDisplayName()",
+ return Local<v8::Value>());
+ ENTER_V8(isolate);
+ i::HandleScope scope(isolate);
+ i::Handle<i::JSFunction> func = Utils::OpenHandle(this);
+ i::Handle<i::String> property_name =
+ isolate->factory()->InternalizeOneByteString(
+ STATIC_ASCII_VECTOR("displayName"));
+ i::LookupResult lookup(isolate);
+ func->LookupRealNamedProperty(*property_name, &lookup);
yurys 2013/10/16 14:57:52 Should we count displayName property declared on p
aandrey 2013/10/16 15:19:45 I think we should. And this code does look up on p
+ if (!lookup.IsFound()) return Local<v8::Value>();
+ i::Object* value = lookup.GetLazyValue();
+ if (value && value->IsString()) {
+ i::String* name = i::String::cast(value);
+ if (name->length() > 0) return Utils::ToLocal(i::Handle<i::String>(name));
+ }
+ return Local<v8::Value>();
+}
+
+
ScriptOrigin Function::GetScriptOrigin() const {
i::Handle<i::JSFunction> func = Utils::OpenHandle(this);
if (func->shared()->script()->IsScript()) {
« no previous file with comments | « include/v8.h ('k') | test/cctest/test-api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698