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

Side by Side Diff: runtime/include/dart_api.h

Issue 3003583002: [VM, Precompiler] PoC Obfuscator (Closed)
Patch Set: Fix bad refactoring in NewAtomicRename Created 3 years, 3 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 unified diff | Download patch
« no previous file with comments | « runtime/bin/main.cc ('k') | runtime/tests/vm/vm.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 * for details. All rights reserved. Use of this source code is governed by a 3 * for details. All rights reserved. Use of this source code is governed by a
4 * BSD-style license that can be found in the LICENSE file. 4 * BSD-style license that can be found in the LICENSE file.
5 */ 5 */
6 6
7 #ifndef RUNTIME_INCLUDE_DART_API_H_ 7 #ifndef RUNTIME_INCLUDE_DART_API_H_
8 #define RUNTIME_INCLUDE_DART_API_H_ 8 #define RUNTIME_INCLUDE_DART_API_H_
9 9
10 /** \mainpage Dart Embedding API Reference 10 /** \mainpage Dart Embedding API Reference
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 568
569 /** 569 /**
570 * Gets the version string for the Dart VM. 570 * Gets the version string for the Dart VM.
571 * 571 *
572 * The version of the Dart VM can be accessed without initializing the VM. 572 * The version of the Dart VM can be accessed without initializing the VM.
573 * 573 *
574 * \return The version string for the embedded Dart VM. 574 * \return The version string for the embedded Dart VM.
575 */ 575 */
576 DART_EXPORT const char* Dart_VersionString(); 576 DART_EXPORT const char* Dart_VersionString();
577 577
578 typedef struct {
579 const char* library_uri;
580 const char* class_name;
581 const char* function_name;
582 } Dart_QualifiedFunctionName;
583
578 /** 584 /**
579 * Isolate specific flags are set when creating a new isolate using the 585 * Isolate specific flags are set when creating a new isolate using the
580 * Dart_IsolateFlags structure. 586 * Dart_IsolateFlags structure.
581 * 587 *
582 * Current version of flags is encoded in a 32-bit integer with 16 bits used 588 * Current version of flags is encoded in a 32-bit integer with 16 bits used
583 * for each part. 589 * for each part.
584 */ 590 */
585 591
586 #define DART_FLAGS_CURRENT_VERSION (0x00000003) 592 #define DART_FLAGS_CURRENT_VERSION (0x00000004)
587 593
588 typedef struct { 594 typedef struct {
589 int32_t version; 595 int32_t version;
590 bool enable_type_checks; 596 bool enable_type_checks;
591 bool enable_asserts; 597 bool enable_asserts;
592 bool enable_error_on_bad_type; 598 bool enable_error_on_bad_type;
593 bool enable_error_on_bad_override; 599 bool enable_error_on_bad_override;
594 bool use_field_guards; 600 bool use_field_guards;
595 bool use_osr; 601 bool use_osr;
596 bool use_dart_frontend; 602 bool use_dart_frontend;
603 bool obfuscate;
604 Dart_QualifiedFunctionName* entry_points;
597 } Dart_IsolateFlags; 605 } Dart_IsolateFlags;
598 606
599 /** 607 /**
608 * Initialize Dart_IsolateFlags with correct version and default values.
609 */
610 DART_EXPORT void Dart_IsolateFlagsInitialize(Dart_IsolateFlags* flags);
611
612 /**
600 * An isolate creation and initialization callback function. 613 * An isolate creation and initialization callback function.
601 * 614 *
602 * This callback, provided by the embedder, is called when the vm 615 * This callback, provided by the embedder, is called when the vm
603 * needs to create an isolate. The callback should create an isolate 616 * needs to create an isolate. The callback should create an isolate
604 * by calling Dart_CreateIsolate and load any scripts required for 617 * by calling Dart_CreateIsolate and load any scripts required for
605 * execution. 618 * execution.
606 * 619 *
607 * When the function returns false, it is the responsibility of this 620 * When the function returns false, it is the responsibility of this
608 * function to ensure that Dart_ShutdownIsolate has been called if 621 * function to ensure that Dart_ShutdownIsolate has been called if
609 * required (for example, if the isolate was created successfully by 622 * required (for example, if the isolate was created successfully by
(...skipping 2575 matching lines...) Expand 10 before | Expand all | Expand 10 after
3185 * - are running the same Dart program 3198 * - are running the same Dart program
3186 * - are built from the same version of the VM 3199 * - are built from the same version of the VM
3187 * - agree on whether type checks and assertions are enabled 3200 * - agree on whether type checks and assertions are enabled
3188 * 3201 *
3189 * \return Returns an error handler if the VM was built in a mode that does not 3202 * \return Returns an error handler if the VM was built in a mode that does not
3190 * support saving JIT feedback. 3203 * support saving JIT feedback.
3191 */ 3204 */
3192 DART_EXPORT Dart_Handle Dart_SaveJITFeedback(uint8_t** buffer, 3205 DART_EXPORT Dart_Handle Dart_SaveJITFeedback(uint8_t** buffer,
3193 intptr_t* buffer_length); 3206 intptr_t* buffer_length);
3194 3207
3195 typedef struct {
3196 const char* library_uri;
3197 const char* class_name;
3198 const char* function_name;
3199 } Dart_QualifiedFunctionName;
3200
3201 /** 3208 /**
3202 * Compiles all functions reachable from the provided entry points and marks 3209 * Compiles all functions reachable from the provided entry points and marks
3203 * the isolate to disallow future compilation. 3210 * the isolate to disallow future compilation.
3204 * 3211 *
3205 * \param entry_points A list of functions that may be invoked through the 3212 * \param entry_points A list of functions that may be invoked through the
3206 * embedding API, e.g. Dart_Invoke/GetField/SetField/New/InvokeClosure. 3213 * embedding API, e.g. Dart_Invoke/GetField/SetField/New/InvokeClosure.
3207 * 3214 *
3208 * \param reset_fields Controls whether static fields are reset. Fields without 3215 * \param reset_fields Controls whether static fields are reset. Fields without
3209 * an initializer will be set to null, and fields with an initializer will have 3216 * an initializer will be set to null, and fields with an initializer will have
3210 * their initializer run the next time they are accessed. 3217 * their initializer run the next time they are accessed.
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
3317 uint8_t** vm_snapshot_data_buffer, 3324 uint8_t** vm_snapshot_data_buffer,
3318 intptr_t* vm_snapshot_data_size, 3325 intptr_t* vm_snapshot_data_size,
3319 uint8_t** vm_snapshot_instructions_buffer, 3326 uint8_t** vm_snapshot_instructions_buffer,
3320 intptr_t* vm_snapshot_instructions_size, 3327 intptr_t* vm_snapshot_instructions_size,
3321 uint8_t** isolate_snapshot_data_buffer, 3328 uint8_t** isolate_snapshot_data_buffer,
3322 intptr_t* isolate_snapshot_data_size, 3329 intptr_t* isolate_snapshot_data_size,
3323 uint8_t** isolate_snapshot_instructions_buffer, 3330 uint8_t** isolate_snapshot_instructions_buffer,
3324 intptr_t* isolate_snapshot_instructions_size); 3331 intptr_t* isolate_snapshot_instructions_size);
3325 3332
3326 /** 3333 /**
3334 * Get obfuscation map for precompiled code.
3335 *
3336 * Obfuscation map is encoded as a JSON array of pairs (original name,
3337 * obfuscated name).
3338 *
3339 * \return Returns an error handler if the VM was built in a mode that does not
3340 * support obfuscation.
3341 */
3342 DART_EXPORT Dart_Handle Dart_GetObfuscationMap(uint8_t** buffer,
3343 intptr_t* buffer_length);
3344
3345 /**
3327 * Returns whether the VM only supports running from precompiled snapshots and 3346 * Returns whether the VM only supports running from precompiled snapshots and
3328 * not from any other kind of snapshot or from source (that is, the VM was 3347 * not from any other kind of snapshot or from source (that is, the VM was
3329 * compiled with DART_PRECOMPILED_RUNTIME). 3348 * compiled with DART_PRECOMPILED_RUNTIME).
3330 */ 3349 */
3331 DART_EXPORT bool Dart_IsPrecompiledRuntime(); 3350 DART_EXPORT bool Dart_IsPrecompiledRuntime();
3332 3351
3333 /** 3352 /**
3334 * Print a native stack trace. Used for crash handling. 3353 * Print a native stack trace. Used for crash handling.
3335 */ 3354 */
3336 DART_EXPORT void Dart_DumpNativeStackTrace(void* context); 3355 DART_EXPORT void Dart_DumpNativeStackTrace(void* context);
3337 3356
3338 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */ 3357 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */
OLDNEW
« no previous file with comments | « runtime/bin/main.cc ('k') | runtime/tests/vm/vm.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698