custom_function_bridge.cpp 812 B

123456789101112131415161718192021222324252627
  1. #include <nan.h>
  2. #include <stdexcept>
  3. #include "custom_function_bridge.h"
  4. #include "sass_types/factory.h"
  5. #include "sass_types/value.h"
  6. Sass_Value* CustomFunctionBridge::post_process_return_value(v8::Local<v8::Value> _val) const {
  7. SassTypes::Value *value = SassTypes::Factory::unwrap(_val);
  8. if (value) {
  9. return value->get_sass_value();
  10. } else {
  11. return sass_make_error("A SassValue object was expected.");
  12. }
  13. }
  14. std::vector<v8::Local<v8::Value>> CustomFunctionBridge::pre_process_args(std::vector<void*> in) const {
  15. std::vector<v8::Local<v8::Value>> argv = std::vector<v8::Local<v8::Value>>();
  16. for (void* value : in) {
  17. Sass_Value* x = static_cast<Sass_Value*>(value);
  18. SassTypes::Value* y = SassTypes::Factory::create(x);
  19. argv.push_back(y->get_js_object());
  20. }
  21. return argv;
  22. }